startapi

package
v0.0.0-...-5819449 Latest Latest
Warning

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

Go to latest
Published: Sep 30, 2022 License: MIT Imports: 13 Imported by: 0

README ¶

Go API Server for startapi

This is the API for Equinix Metal. The API allows you to programmatically interact with all of your Equinix Metal resources, including devices, networks, addresses, organizations, projects, and your user account.

The official API docs are hosted at https://metal.equinix.com/developers/api.

Overview

This server was generated by the [openapi-generator] (https://openapi-generator.tech) project. By using the OpenAPI-Spec from a remote server, you can easily generate a server stub.

To see how to make this your own, look here:

README

  • API version: 1.0.0
  • Build date: 2022-09-15T12:04:07.474973Z[Etc/UTC]
Running the server

To run the server, follow these simple steps:

go run main.go

To run the server in a docker container

docker build --network=host -t startapi .

Once the image is built, just run

docker run --rm -it startapi
Known Issue

Endpoints sharing a common path may result in issues. For example, /v2/pet/findByTags and /v2/pet/:petId will result in an issue with the Gin framework. For more information about this known limitation, please refer to gin-gonic/gin#388 for more information.

A workaround is to manually update the path and handler. Please refer to gin-gonic/gin/issues/205#issuecomment-296155497 for more information.

Documentation ¶

Index ¶

Constants ¶

This section is empty.

Variables ¶

This section is empty.

Functions ¶

func AcceptInvitation ¶

func AcceptInvitation(c *gin.Context)

AcceptInvitation - Accept an invitation

func AcceptTransferRequest ¶

func AcceptTransferRequest(c *gin.Context)

AcceptTransferRequest - Accept a transfer request

func AssignNativeVlan ¶

func AssignNativeVlan(c *gin.Context)

AssignNativeVlan - Assign a native VLAN

func AssignPort ¶

func AssignPort(c *gin.Context)

AssignPort - Assign a port to virtual network

func BondPort ¶

func BondPort(c *gin.Context)

BondPort - Enabling bonding

func CORSMiddleware ¶

func CORSMiddleware() gin.HandlerFunc

func CheckCapacityForFacility ¶

func CheckCapacityForFacility(c *gin.Context)

CheckCapacityForFacility - Check capacity

func CheckCapacityForMetro ¶

func CheckCapacityForMetro(c *gin.Context)

CheckCapacityForMetro - Check capacity for a metro

func ConsumeVerificationRequest ¶

func ConsumeVerificationRequest(c *gin.Context)

ConsumeVerificationRequest - Verify a user using an email verification token

func ConvertLayer2 ¶

func ConvertLayer2(c *gin.Context)

ConvertLayer2 - Convert to Layer 2

func ConvertLayer3 ¶

func ConvertLayer3(c *gin.Context)

ConvertLayer3 - Convert to Layer 3

func CreateAPIKey ¶

func CreateAPIKey(c *gin.Context)

CreateAPIKey - Create a API key

func CreateBgpSession ¶

func CreateBgpSession(c *gin.Context)

CreateBgpSession - Create a BGP session

func CreateDevice ¶

func CreateDevice(c *gin.Context)

CreateDevice - Create a device

func CreateDeviceBatch ¶

func CreateDeviceBatch(c *gin.Context)

CreateDeviceBatch - Create a devices batch

func CreateEmail ¶

func CreateEmail(c *gin.Context)

CreateEmail - Create an email

func CreateIPAssignment ¶

func CreateIPAssignment(c *gin.Context)

CreateIPAssignment - Create an ip assignment

func CreateInterconnectionPortVirtualCircuit ¶

func CreateInterconnectionPortVirtualCircuit(c *gin.Context)

CreateInterconnectionPortVirtualCircuit - Create a new Virtual Circuit

func CreateLicense ¶

func CreateLicense(c *gin.Context)

CreateLicense - Create a License

func CreateMetalGateway ¶

func CreateMetalGateway(c *gin.Context)

CreateMetalGateway - Create a metal gateway

func CreateOrganization ¶

func CreateOrganization(c *gin.Context)

CreateOrganization - Create an organization

func CreateOrganizationInterconnection ¶

func CreateOrganizationInterconnection(c *gin.Context)

CreateOrganizationInterconnection - Request a new interconnection for the organization

func CreateOrganizationInvitation ¶

func CreateOrganizationInvitation(c *gin.Context)

CreateOrganizationInvitation - Create an invitation for an organization

func CreateOrganizationProject ¶

func CreateOrganizationProject(c *gin.Context)

CreateOrganizationProject - Create a project for the organization

func CreatePasswordResetToken ¶

func CreatePasswordResetToken(c *gin.Context)

CreatePasswordResetToken - Create a password reset token

func CreatePaymentMethod ¶

func CreatePaymentMethod(c *gin.Context)

CreatePaymentMethod - Create a payment method for the given organization

func CreatePortVlanAssignmentBatch ¶

func CreatePortVlanAssignmentBatch(c *gin.Context)

CreatePortVlanAssignmentBatch - Create a new Port-VLAN Assignment management batch

func CreateProject ¶

func CreateProject(c *gin.Context)

CreateProject - Create a project

func CreateProjectAPIKey ¶

func CreateProjectAPIKey(c *gin.Context)

CreateProjectAPIKey - Create an API key for a project.

func CreateProjectInterconnection ¶

func CreateProjectInterconnection(c *gin.Context)

CreateProjectInterconnection - Request a new interconnection for the project's organization

func CreateProjectInvitation ¶

func CreateProjectInvitation(c *gin.Context)

CreateProjectInvitation - Create an invitation for a project

func CreateProjectSSHKey ¶

func CreateProjectSSHKey(c *gin.Context)

CreateProjectSSHKey - Create a ssh key for the given project

func CreateSSHKey ¶

func CreateSSHKey(c *gin.Context)

CreateSSHKey - Create a ssh key for the current user

func CreateSelfServiceReservation ¶

func CreateSelfServiceReservation(c *gin.Context)

CreateSelfServiceReservation - Create a reservation

func CreateSpotMarketRequest ¶

func CreateSpotMarketRequest(c *gin.Context)

CreateSpotMarketRequest - Create a spot market request

func CreateTransferRequest ¶

func CreateTransferRequest(c *gin.Context)

CreateTransferRequest - Create a transfer request

func CreateUser ¶

func CreateUser(c *gin.Context)

CreateUser - Create a user

func CreateValidationRequest ¶

func CreateValidationRequest(c *gin.Context)

CreateValidationRequest - Create an email verification request

func CreateVirtualNetwork ¶

func CreateVirtualNetwork(c *gin.Context)

CreateVirtualNetwork - Create a virtual network

func CreateVrf ¶

func CreateVrf(c *gin.Context)

CreateVrf - Create a new VRF in the specified project

func DeclineInvitation ¶

func DeclineInvitation(c *gin.Context)

DeclineInvitation - Decline an invitation

func DeclineTransferRequest ¶

func DeclineTransferRequest(c *gin.Context)

DeclineTransferRequest - Decline a transfer request

func DeleteAPIKey ¶

func DeleteAPIKey(c *gin.Context)

DeleteAPIKey - Delete the API key

func DeleteBatch ¶

func DeleteBatch(c *gin.Context)

DeleteBatch - Delete the Batch

func DeleteBgpSession ¶

func DeleteBgpSession(c *gin.Context)

DeleteBgpSession - Delete the BGP session

func DeleteDevice ¶

func DeleteDevice(c *gin.Context)

DeleteDevice - Delete the device

func DeleteEmail ¶

func DeleteEmail(c *gin.Context)

DeleteEmail - Delete the email

func DeleteIPAddress ¶

func DeleteIPAddress(c *gin.Context)

DeleteIPAddress - Unassign an ip address

func DeleteInterconnection ¶

func DeleteInterconnection(c *gin.Context)

DeleteInterconnection - Delete interconnection

func DeleteLicense ¶

func DeleteLicense(c *gin.Context)

DeleteLicense - Delete the license

func DeleteMembership ¶

func DeleteMembership(c *gin.Context)

DeleteMembership - Delete the membership

func DeleteMetalGateway ¶

func DeleteMetalGateway(c *gin.Context)

DeleteMetalGateway - Deletes the metal gateway

func DeleteNativeVlan ¶

func DeleteNativeVlan(c *gin.Context)

DeleteNativeVlan - Remove native VLAN

func DeleteOrganization ¶

func DeleteOrganization(c *gin.Context)

DeleteOrganization - Delete the organization

func DeletePaymentMethod ¶

func DeletePaymentMethod(c *gin.Context)

DeletePaymentMethod - Delete the payment method

func DeleteProject ¶

func DeleteProject(c *gin.Context)

DeleteProject - Delete the project

func DeleteSSHKey ¶

func DeleteSSHKey(c *gin.Context)

DeleteSSHKey - Delete the ssh key

func DeleteSpotMarketRequest ¶

func DeleteSpotMarketRequest(c *gin.Context)

DeleteSpotMarketRequest - Delete the spot market request

func DeleteUserAPIKey ¶

func DeleteUserAPIKey(c *gin.Context)

DeleteUserAPIKey - Delete the API key

func DeleteVirtualCircuit ¶

func DeleteVirtualCircuit(c *gin.Context)

DeleteVirtualCircuit - Delete a virtual circuit

func DeleteVirtualNetwork ¶

func DeleteVirtualNetwork(c *gin.Context)

DeleteVirtualNetwork - Delete a virtual network

func DeleteVrf ¶

func DeleteVrf(c *gin.Context)

DeleteVrf - Delete the VRF

func DisableTfaApp ¶

func DisableTfaApp(c *gin.Context)

DisableTfaApp - Disable two factor authentication

func DisableTfaSms ¶

func DisableTfaSms(c *gin.Context)

DisableTfaSms - Disable two factor authentication

func DisbondPort ¶

func DisbondPort(c *gin.Context)

DisbondPort - Disabling bonding

func EnableTfaApp ¶

func EnableTfaApp(c *gin.Context)

EnableTfaApp - Enable two factor auth using app

func EnableTfaSms ¶

func EnableTfaSms(c *gin.Context)

EnableTfaSms - Enable two factor auth using sms

func ErrorCheck ¶

func ErrorCheck(err error, r *http.Response, c *gin.Context) bool

func FindAPIKeys ¶

func FindAPIKeys(c *gin.Context)

FindAPIKeys - Retrieve all user API keys

func FindBatchById ¶

func FindBatchById(c *gin.Context)

FindBatchById - Retrieve a Batch

func FindBatchesByProject ¶

func FindBatchesByProject(c *gin.Context)

FindBatchesByProject - Retrieve all batches by project

func FindBgpConfigByProject ¶

func FindBgpConfigByProject(c *gin.Context)

FindBgpConfigByProject - Retrieve a bgp config

func FindBgpSessionById ¶

func FindBgpSessionById(c *gin.Context)

FindBgpSessionById - Retrieve a BGP session

func FindBgpSessions ¶

func FindBgpSessions(c *gin.Context)

FindBgpSessions - Retrieve all BGP sessions

func FindCapacityForFacility ¶

func FindCapacityForFacility(c *gin.Context)

FindCapacityForFacility - View capacity

func FindCapacityForMetro ¶

func FindCapacityForMetro(c *gin.Context)

FindCapacityForMetro - View capacity for metros

func FindCurrentUser ¶

func FindCurrentUser(c *gin.Context)

FindCurrentUser - Retrieve the current user

func FindDeviceById ¶

func FindDeviceById(c *gin.Context)

FindDeviceById - Retrieve a device

func FindDeviceCustomdata ¶

func FindDeviceCustomdata(c *gin.Context)

FindDeviceCustomdata - Retrieve the custom metadata of an instance

func FindDeviceEvents ¶

func FindDeviceEvents(c *gin.Context)

FindDeviceEvents - Retrieve device's events

func FindDeviceMetadataByID ¶

func FindDeviceMetadataByID(c *gin.Context)

FindDeviceMetadataByID - Retrieve metadata

func FindDeviceSSHKeys ¶

func FindDeviceSSHKeys(c *gin.Context)

FindDeviceSSHKeys - Retrieve a device's ssh keys

func FindDeviceUsages ¶

func FindDeviceUsages(c *gin.Context)

FindDeviceUsages - Retrieve all usages for device

func FindDeviceUserdataByID ¶

func FindDeviceUserdataByID(c *gin.Context)

FindDeviceUserdataByID - Retrieve userdata

func FindEmailById ¶

func FindEmailById(c *gin.Context)

FindEmailById - Retrieve an email

func FindEnsureOtp ¶

func FindEnsureOtp(c *gin.Context)

FindEnsureOtp - Verify user by providing an OTP

func FindEventById ¶

func FindEventById(c *gin.Context)

FindEventById - Retrieve an event

func FindEvents ¶

func FindEvents(c *gin.Context)

FindEvents - Retrieve current user's events

func FindFacilities ¶

func FindFacilities(c *gin.Context)

FindFacilities - Retrieve all facilities

func FindFacilitiesByOrganization ¶

func FindFacilitiesByOrganization(c *gin.Context)

FindFacilitiesByOrganization - Retrieve all facilities visible by the organization

func FindFacilitiesByProject ¶

func FindFacilitiesByProject(c *gin.Context)

FindFacilitiesByProject - Retrieve all facilities visible by the project

func FindGlobalBgpRanges ¶

func FindGlobalBgpRanges(c *gin.Context)

FindGlobalBgpRanges - Retrieve all global bgp ranges

func FindHardwareReservationById ¶

func FindHardwareReservationById(c *gin.Context)

FindHardwareReservationById - Retrieve a hardware reservation

func FindIPAddressById ¶

func FindIPAddressById(c *gin.Context)

FindIPAddressById - Retrieve an ip address

func FindIPAddressCustomdata ¶

func FindIPAddressCustomdata(c *gin.Context)

FindIPAddressCustomdata - Retrieve the custom metadata of an IP Reservation or IP Assignment

func FindIPAssignmentCustomdata ¶

func FindIPAssignmentCustomdata(c *gin.Context)

FindIPAssignmentCustomdata - Retrieve the custom metadata of an IP Assignment

func FindIPAssignments ¶

func FindIPAssignments(c *gin.Context)

FindIPAssignments - Retrieve all ip assignments

func FindIPAvailabilities ¶

func FindIPAvailabilities(c *gin.Context)

FindIPAvailabilities - Retrieve all available subnets of a particular reservation

func FindIPReservationCustomdata ¶

func FindIPReservationCustomdata(c *gin.Context)

FindIPReservationCustomdata - Retrieve the custom metadata of an IP Reservation

func FindIPReservations ¶

func FindIPReservations(c *gin.Context)

FindIPReservations - Retrieve all ip reservations

func FindIncidents ¶

func FindIncidents(c *gin.Context)

FindIncidents - Retrieve the number of incidents

func FindInstanceBandwidth ¶

func FindInstanceBandwidth(c *gin.Context)

FindInstanceBandwidth - Retrieve an instance bandwidth

func FindInterconnectionEvents ¶

func FindInterconnectionEvents(c *gin.Context)

FindInterconnectionEvents - Retrieve interconnection events

func FindInterconnectionPortEvents ¶

func FindInterconnectionPortEvents(c *gin.Context)

FindInterconnectionPortEvents - Retrieve interconnection port events

func FindInvitationById ¶

func FindInvitationById(c *gin.Context)

FindInvitationById - View an invitation

func FindInvitations ¶

func FindInvitations(c *gin.Context)

FindInvitations - Retrieve current user invitations

func FindLicenseById ¶

func FindLicenseById(c *gin.Context)

FindLicenseById - Retrieve a license

func FindMembershipById ¶

func FindMembershipById(c *gin.Context)

FindMembershipById - Retrieve a membership

func FindMetalGatewayById ¶

func FindMetalGatewayById(c *gin.Context)

FindMetalGatewayById - Returns the metal gateway

func FindMetalGatewaysByProject ¶

func FindMetalGatewaysByProject(c *gin.Context)

FindMetalGatewaysByProject - Returns all metal gateways for a project

func FindMetroSpotMarketPrices ¶

func FindMetroSpotMarketPrices(c *gin.Context)

FindMetroSpotMarketPrices - Get current spot market prices for metros

func FindMetros ¶

func FindMetros(c *gin.Context)

FindMetros - Retrieve all metros

func FindOperatingSystemVersion ¶

func FindOperatingSystemVersion(c *gin.Context)

FindOperatingSystemVersion - Retrieve all operating system versions

func FindOperatingSystems ¶

func FindOperatingSystems(c *gin.Context)

FindOperatingSystems - Retrieve all operating systems

func FindOperatingSystemsByOrganization ¶

func FindOperatingSystemsByOrganization(c *gin.Context)

FindOperatingSystemsByOrganization - Retrieve all operating systems visible by the organization

func FindOrganizationById ¶

func FindOrganizationById(c *gin.Context)

FindOrganizationById - Retrieve an organization's details

func FindOrganizationCapacityPerFacility ¶

func FindOrganizationCapacityPerFacility(c *gin.Context)

FindOrganizationCapacityPerFacility - View available hardware plans per Facility for given organization

func FindOrganizationCapacityPerMetro ¶

func FindOrganizationCapacityPerMetro(c *gin.Context)

FindOrganizationCapacityPerMetro - View available hardware plans per Metro for given organization

func FindOrganizationCustomdata ¶

func FindOrganizationCustomdata(c *gin.Context)

FindOrganizationCustomdata - Retrieve the custom metadata of an organization

func FindOrganizationDevices ¶

func FindOrganizationDevices(c *gin.Context)

FindOrganizationDevices - Retrieve all devices of an organization

func FindOrganizationEvents ¶

func FindOrganizationEvents(c *gin.Context)

FindOrganizationEvents - Retrieve organization's events

func FindOrganizationInvitations ¶

func FindOrganizationInvitations(c *gin.Context)

FindOrganizationInvitations - Retrieve organization invitations

func FindOrganizationPaymentMethods ¶

func FindOrganizationPaymentMethods(c *gin.Context)

FindOrganizationPaymentMethods - Retrieve all payment methods of an organization

func FindOrganizationProjects ¶

func FindOrganizationProjects(c *gin.Context)

FindOrganizationProjects - Retrieve all projects of an organization

func FindOrganizationTransfers ¶

func FindOrganizationTransfers(c *gin.Context)

FindOrganizationTransfers - Retrieve all project transfer requests from or to an organization

func FindOrganizations ¶

func FindOrganizations(c *gin.Context)

FindOrganizations - Retrieve all organizations

func FindPaymentMethodById ¶

func FindPaymentMethodById(c *gin.Context)

FindPaymentMethodById - Retrieve a payment method

func FindPlans ¶

func FindPlans(c *gin.Context)

FindPlans - Retrieve all plans

func FindPlansByOrganization ¶

func FindPlansByOrganization(c *gin.Context)

FindPlansByOrganization - Retrieve all plans visible by the organization

func FindPlansByProject ¶

func FindPlansByProject(c *gin.Context)

FindPlansByProject - Retrieve all plans visible by the project

func FindPortById ¶

func FindPortById(c *gin.Context)

FindPortById - Retrieve a port

func FindPortVlanAssignmentBatchByPortIdAndBatchId ¶

func FindPortVlanAssignmentBatchByPortIdAndBatchId(c *gin.Context)

FindPortVlanAssignmentBatchByPortIdAndBatchId - Retrieve a VLAN Assignment Batch's details

func FindPortVlanAssignmentBatches ¶

func FindPortVlanAssignmentBatches(c *gin.Context)

FindPortVlanAssignmentBatches - List the VLAN Assignment Batches for a port

func FindPortVlanAssignmentByPortIdAndAssignmentId ¶

func FindPortVlanAssignmentByPortIdAndAssignmentId(c *gin.Context)

FindPortVlanAssignmentByPortIdAndAssignmentId - Show a particular Port VLAN assignment's details

func FindPortVlanAssignments ¶

func FindPortVlanAssignments(c *gin.Context)

FindPortVlanAssignments - List Current VLAN assignments for a port

func FindProjectAPIKeys ¶

func FindProjectAPIKeys(c *gin.Context)

FindProjectAPIKeys - Retrieve all API keys for the project.

func FindProjectBgpSessions ¶

func FindProjectBgpSessions(c *gin.Context)

FindProjectBgpSessions - Retrieve all BGP sessions for project

func FindProjectById ¶

func FindProjectById(c *gin.Context)

FindProjectById - Retrieve a project

func FindProjectCustomdata ¶

func FindProjectCustomdata(c *gin.Context)

FindProjectCustomdata - Retrieve the custom metadata of a project

func FindProjectDevices ¶

func FindProjectDevices(c *gin.Context)

FindProjectDevices - Retrieve all devices of a project

func FindProjectEvents ¶

func FindProjectEvents(c *gin.Context)

FindProjectEvents - Retrieve project's events

func FindProjectHardwareReservations ¶

func FindProjectHardwareReservations(c *gin.Context)

FindProjectHardwareReservations - Retrieve all hardware reservations for a given project

func FindProjectInvitations ¶

func FindProjectInvitations(c *gin.Context)

FindProjectInvitations - Retrieve project invitations

func FindProjectLicenses ¶

func FindProjectLicenses(c *gin.Context)

FindProjectLicenses - Retrieve all licenses

func FindProjectMemberships ¶

func FindProjectMemberships(c *gin.Context)

FindProjectMemberships - Retrieve project memberships

func FindProjectSSHKeys ¶

func FindProjectSSHKeys(c *gin.Context)

FindProjectSSHKeys - Retrieve a project's ssh keys

func FindProjectUsage ¶

func FindProjectUsage(c *gin.Context)

FindProjectUsage - Retrieve all usages for project

func FindProjects ¶

func FindProjects(c *gin.Context)

FindProjects - Retrieve all projects

func FindRecoveryCodes ¶

func FindRecoveryCodes(c *gin.Context)

FindRecoveryCodes - Retrieve my recovery codes

func FindSSHKeyById ¶

func FindSSHKeyById(c *gin.Context)

FindSSHKeyById - Retrieve a ssh key

func FindSSHKeys ¶

func FindSSHKeys(c *gin.Context)

FindSSHKeys - Retrieve all ssh keys

func FindSelfServiceReservation ¶

func FindSelfServiceReservation(c *gin.Context)

FindSelfServiceReservation - Retrieve a reservation

func FindSelfServiceReservations ¶

func FindSelfServiceReservations(c *gin.Context)

FindSelfServiceReservations - Retrieve all reservations

func FindSpotMarketPrices ¶

func FindSpotMarketPrices(c *gin.Context)

FindSpotMarketPrices - Get current spot market prices

func FindSpotMarketPricesHistory ¶

func FindSpotMarketPricesHistory(c *gin.Context)

FindSpotMarketPricesHistory - Get spot market prices for a given period of time

func FindSpotMarketRequestById ¶

func FindSpotMarketRequestById(c *gin.Context)

FindSpotMarketRequestById - Retrieve a spot market request

func FindTraffic ¶

func FindTraffic(c *gin.Context)

FindTraffic - Retrieve device traffic

func FindTransferRequestById ¶

func FindTransferRequestById(c *gin.Context)

FindTransferRequestById - View a transfer request

func FindUserById ¶

func FindUserById(c *gin.Context)

FindUserById - Retrieve a user

func FindUserCustomdata ¶

func FindUserCustomdata(c *gin.Context)

FindUserCustomdata - Retrieve the custom metadata of a user

func FindUsers ¶

func FindUsers(c *gin.Context)

FindUsers - Retrieve all users

func FindVirtualCircuitEvents ¶

func FindVirtualCircuitEvents(c *gin.Context)

FindVirtualCircuitEvents - Retrieve interconnection events

func FindVirtualNetworks ¶

func FindVirtualNetworks(c *gin.Context)

FindVirtualNetworks - Retrieve all virtual networks

func FindVrfById ¶

func FindVrfById(c *gin.Context)

FindVrfById - Retrieve a VRF

func FindVrfIpReservations ¶

func FindVrfIpReservations(c *gin.Context)

FindVrfIpReservations - Retrieve all VRF IP Reservations in the VRF

func FindVrfs ¶

func FindVrfs(c *gin.Context)

FindVrfs - Retrieve all VRFs in the project

func GetBgpNeighborData ¶

func GetBgpNeighborData(c *gin.Context)

GetBgpNeighborData - Retrieve BGP neighbor data for this device

func GetInterconnection ¶

func GetInterconnection(c *gin.Context)

GetInterconnection - Get interconnection

func GetInterconnectionPort ¶

func GetInterconnectionPort(c *gin.Context)

GetInterconnectionPort - Get a interconnection port

func GetMetro ¶

func GetMetro(c *gin.Context)

GetMetro - Retrieve a specific Metro's details

func GetVirtualCircuit ¶

func GetVirtualCircuit(c *gin.Context)

GetVirtualCircuit - Get a virtual circuit

func GetVirtualNetwork ¶

func GetVirtualNetwork(c *gin.Context)

GetVirtualNetwork - Get a virtual network

func Index ¶

func Index(c *gin.Context)

Index is the index handler.

func IsIPv4 ¶

func IsIPv4(ipAddr string) bool

func ListInterconnectionPortVirtualCircuits ¶

func ListInterconnectionPortVirtualCircuits(c *gin.Context)

ListInterconnectionPortVirtualCircuits - List a interconnection port's virtual circuits

func ListInterconnectionPorts ¶

func ListInterconnectionPorts(c *gin.Context)

ListInterconnectionPorts - List a interconnection's ports

func ListSpotMarketRequests ¶

func ListSpotMarketRequests(c *gin.Context)

ListSpotMarketRequests - List spot market requests

func MoveHardwareReservation ¶

func MoveHardwareReservation(c *gin.Context)

MoveHardwareReservation - Move a hardware reservation

func NewRouter ¶

func NewRouter() *gin.Engine

NewRouter returns a new router.

func OrganizationListInterconnections ¶

func OrganizationListInterconnections(c *gin.Context)

OrganizationListInterconnections - List organization connections

func PerformAction ¶

func PerformAction(c *gin.Context)

PerformAction - Perform an action

func ProjectListInterconnections ¶

func ProjectListInterconnections(c *gin.Context)

ProjectListInterconnections - List project connections

func ReceiveCodes ¶

func ReceiveCodes(c *gin.Context)

ReceiveCodes - Receive an OTP per sms

func RegenerateCodes ¶

func RegenerateCodes(c *gin.Context)

RegenerateCodes - Generate new recovery codes

func RequestBgpConfig ¶

func RequestBgpConfig(c *gin.Context)

RequestBgpConfig - Requesting bgp config

func RequestIPReservation ¶

func RequestIPReservation(c *gin.Context)

RequestIPReservation - Requesting IP reservations

func RequestSuppert ¶

func RequestSuppert(c *gin.Context)

RequestSuppert - Create a support ticket

func ResetPassword ¶

func ResetPassword(c *gin.Context)

ResetPassword - Reset current user password

func UnassignPort ¶

func UnassignPort(c *gin.Context)

UnassignPort - Unassign a port

func UpdateBgpSession ¶

func UpdateBgpSession(c *gin.Context)

UpdateBgpSession - Update the BGP session

func UpdateCurrentUser ¶

func UpdateCurrentUser(c *gin.Context)

UpdateCurrentUser - Update the current user

func UpdateDevice ¶

func UpdateDevice(c *gin.Context)

UpdateDevice - Update the device

func UpdateEmail ¶

func UpdateEmail(c *gin.Context)

UpdateEmail - Update the email

func UpdateIPAddress ¶

func UpdateIPAddress(c *gin.Context)

UpdateIPAddress - Update an ip address

func UpdateInterconnection ¶

func UpdateInterconnection(c *gin.Context)

UpdateInterconnection - Update interconnection

func UpdateLicense ¶

func UpdateLicense(c *gin.Context)

UpdateLicense - Update the license

func UpdateMembership ¶

func UpdateMembership(c *gin.Context)

UpdateMembership - Update the membership

func UpdateOrganization ¶

func UpdateOrganization(c *gin.Context)

UpdateOrganization - Update the organization

func UpdatePaymentMethod ¶

func UpdatePaymentMethod(c *gin.Context)

UpdatePaymentMethod - Update the payment method

func UpdateProject ¶

func UpdateProject(c *gin.Context)

UpdateProject - Update the project

func UpdateSSHKey ¶

func UpdateSSHKey(c *gin.Context)

UpdateSSHKey - Update the ssh key

func UpdateVirtualCircuit ¶

func UpdateVirtualCircuit(c *gin.Context)

UpdateVirtualCircuit - Update a virtual circuit

func UpdateVrf ¶

func UpdateVrf(c *gin.Context)

UpdateVrf - Update the VRF

func ValidateUserdata ¶

func ValidateUserdata(c *gin.Context)

ValidateUserdata - Validate user data

Types ¶

type Address ¶

type Address struct {
	Address string `json:"address"`

	Address2 string `json:"address2,omitempty"`

	City string `json:"city,omitempty"`

	Coordinates FindDeviceById200ResponseFacilityAddressCoordinates `json:"coordinates,omitempty"`

	Country string `json:"country"`

	State string `json:"state,omitempty"`

	ZipCode string `json:"zip_code"`
}

type AnyOfarraystring ¶

type AnyOfarraystring interface {
}

type AssignPortRequest ¶

type AssignPortRequest struct {

	// Virtual Network ID. May be the UUID of the Virtual Network record, or the VLAN value itself.
	Vnid string `json:"vnid,omitempty"`
}

type AuthToken ¶

type AuthToken struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	// Available only for API keys
	Description string `json:"description,omitempty"`

	Id string `json:"id,omitempty"`

	Project FindProjectApiKeys200ResponseApiKeysInnerProject `json:"project,omitempty"`

	ReadOnly bool `json:"read_only,omitempty"`

	Token string `json:"token,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	User FindProjectApiKeys200ResponseApiKeysInnerUser `json:"user,omitempty"`
}

type AuthTokenInput ¶

type AuthTokenInput struct {
	Description string `json:"description,omitempty"`

	ReadOnly bool `json:"read_only,omitempty"`
}

type AuthTokenList ¶

type AuthTokenList struct {
	ApiKeys []FindProjectApiKeys200ResponseApiKeysInner `json:"api_keys,omitempty"`
}

type Batch ¶

type Batch struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	Devices []FindBatchById200ResponseDevicesInner `json:"devices,omitempty"`

	ErrorMessages []string `json:"error_messages,omitempty"`

	Id string `json:"id,omitempty"`

	Project FindBatchById200ResponseDevicesInner `json:"project,omitempty"`

	Quantity int32 `json:"quantity,omitempty"`

	State string `json:"state,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

type BatchesList ¶

type BatchesList struct {
	Batches []FindBatchById200Response `json:"batches,omitempty"`
}

type BgpConfig ¶

type BgpConfig struct {

	// Autonomous System Number. ASN is required with Global BGP. With Local BGP the private ASN, 65000, is assigned.
	Asn int32 `json:"asn,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	// In a Local BGP deployment, a customer uses an internal ASN to control routes within a single Equinix Metal datacenter. This means that the routes are never advertised to the global Internet. Global BGP, on the other hand, requires a customer to have a registered ASN and IP space.
	DeploymentType string `json:"deployment_type,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	// The maximum number of route filters allowed per server
	MaxPrefix int32 `json:"max_prefix,omitempty"`

	// (Optional) Password for BGP session in plaintext (not a checksum)
	Md5 *string `json:"md5,omitempty"`

	Project FindBatchById200ResponseDevicesInner `json:"project,omitempty"`

	// The IP block ranges associated to the ASN (Populated in Global BGP only)
	Ranges []FindBgpConfigByProject200ResponseRangesInner `json:"ranges,omitempty"`

	RequestedAt time.Time `json:"requested_at,omitempty"`

	// Specifies AS-MACRO (aka AS-SET) to use when building client route filters
	RouteObject string `json:"route_object,omitempty"`

	// The direct connections between neighboring routers that want to exchange routing information.
	Sessions []FindBgpSessionById200Response `json:"sessions,omitempty"`

	// Status of the BGP Config. Status \"requested\" is valid only with the \"global\" deployment_type.
	Status string `json:"status,omitempty"`
}

type BgpConfigRequestInput ¶

type BgpConfigRequestInput struct {
	Asn int32 `json:"asn"`

	DeploymentType string `json:"deployment_type"`

	Md5 string `json:"md5,omitempty"`

	UseCase string `json:"use_case,omitempty"`
}

type BgpNeighborData ¶

type BgpNeighborData struct {

	// Address Family for IP Address. Accepted values are 4 or 6
	AddressFamily float32 `json:"address_family,omitempty"`

	// The customer's ASN. In a local BGP deployment, this will be an internal ASN used to route within the data center. For a global BGP deployment, this will be the your own ASN, configured when you set up BGP for your project.
	CustomerAs float32 `json:"customer_as,omitempty"`

	// The device's IP address. For an IPv4 BGP session, this is typically the private bond0 address for the device.
	CustomerIp string `json:"customer_ip,omitempty"`

	// True if an MD5 password is configured for the project.
	Md5Enabled bool `json:"md5_enabled,omitempty"`

	// The MD5 password configured for the project, if set.
	Md5Password string `json:"md5_password,omitempty"`

	// True when the BGP session should be configured as multihop.
	Multihop bool `json:"multihop,omitempty"`

	// The Peer ASN to use when configuring BGP on your device.
	PeerAs float32 `json:"peer_as,omitempty"`

	// A list of one or more IP addresses to use for the Peer IP section of your BGP configuration. For non-multihop sessions, this will typically be a single gateway address for the device. For multihop sessions, it will be a list of IPs.
	PeerIps []string `json:"peer_ips,omitempty"`

	// A list of project subnets
	RoutesIn []GetBgpNeighborData200ResponseBgpNeighborsInnerRoutesInInner `json:"routes_in,omitempty"`

	// A list of outgoing routes. Only populated if the BGP session has default route enabled.
	RoutesOut []GetBgpNeighborData200ResponseBgpNeighborsInnerRoutesOutInner `json:"routes_out,omitempty"`
}

type BgpSession ¶

type BgpSession struct {
	AddressFamily string `json:"address_family"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	DefaultRoute bool `json:"default_route,omitempty"`

	Device FindBatchById200ResponseDevicesInner `json:"device,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	LearnedRoutes []string `json:"learned_routes,omitempty"`

	//  The status of the BGP Session. Multiple status values may be reported when the device is connected to multiple switches, one value per switch. Each status will start with \"unknown\" and progress to \"up\" or \"down\" depending on the connected device. Subsequent \"unknown\" values indicate a problem acquiring status from the switch.
	Status string `json:"status,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

type BgpSessionInput ¶

type BgpSessionInput struct {

	// Address family for BGP session.
	AddressFamily string `json:"address_family,omitempty"`

	// Set the default route policy.
	DefaultRoute bool `json:"default_route,omitempty"`
}

type BgpSessionList ¶

type BgpSessionList struct {
	BgpSessions []FindBgpSessionById200Response `json:"bgp_sessions,omitempty"`
}

type BgpSessionNeighbors ¶

type BgpSessionNeighbors struct {

	// A list of BGP session neighbor data
	BgpNeighbors []GetBgpNeighborData200ResponseBgpNeighborsInner `json:"bgp_neighbors,omitempty"`
}

type CapacityCheckPerFacilityInfo ¶

type CapacityCheckPerFacilityInfo struct {
	Available bool `json:"available,omitempty"`

	Facility string `json:"facility,omitempty"`

	Plan string `json:"plan,omitempty"`

	Quantity string `json:"quantity,omitempty"`
}

type CapacityCheckPerFacilityList ¶

type CapacityCheckPerFacilityList struct {
	Servers []CheckCapacityForFacility200ResponseServersInner `json:"servers,omitempty"`
}

type CapacityCheckPerMetroInfo ¶

type CapacityCheckPerMetroInfo struct {

	// Returns true if there is enough capacity in the metro to fulfill the quantity set. Returns false if there is not enough.
	Available bool `json:"available,omitempty"`

	// The metro ID or code sent to check capacity.
	Metro string `json:"metro,omitempty"`

	// The plan ID or slug sent to check capacity.
	Plan string `json:"plan,omitempty"`

	// The number of servers sent to check capacity.
	Quantity string `json:"quantity,omitempty"`
}

type CapacityCheckPerMetroList ¶

type CapacityCheckPerMetroList struct {
	Servers []CheckCapacityForMetro200ResponseServersInner `json:"servers,omitempty"`
}

type CapacityInput ¶

type CapacityInput struct {
	Servers []CheckCapacityForFacilityRequestServersInner `json:"servers,omitempty"`
}

type CapacityLevelPerBaremetal ¶

type CapacityLevelPerBaremetal struct {
	Level string `json:"level,omitempty"`
}

type CapacityList ¶

type CapacityList struct {
	Capacity FindCapacityForFacility200ResponseCapacity `json:"capacity,omitempty"`
}

type CapacityPerFacility ¶

type CapacityPerFacility struct {
	Baremetal0 FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"baremetal_0,omitempty"`

	Baremetal1 FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"baremetal_1,omitempty"`

	Baremetal2 FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"baremetal_2,omitempty"`

	Baremetal2a FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"baremetal_2a,omitempty"`

	Baremetal2a2 FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"baremetal_2a2,omitempty"`

	Baremetal3 FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"baremetal_3,omitempty"`

	BaremetalS FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"baremetal_s,omitempty"`

	C2MediumX86 FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"c2.medium.x86,omitempty"`

	M2XlargeX86 FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"m2.xlarge.x86,omitempty"`
}

type CapacityPerMetroInput ¶

type CapacityPerMetroInput struct {
	Servers []CheckCapacityForMetroRequestServersInner `json:"servers,omitempty"`
}

type CapacityPerNewFacility ¶

type CapacityPerNewFacility struct {
	Baremetal1e FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"baremetal_1e,omitempty"`
}

type CapacityReport ¶

type CapacityReport struct {
	Ams1 FindCapacityForFacility200ResponseCapacityAms1 `json:"ams1,omitempty"`

	Atl1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"atl1,omitempty"`

	Dfw1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"dfw1,omitempty"`

	Ewr1 FindCapacityForFacility200ResponseCapacityAms1 `json:"ewr1,omitempty"`

	Fra1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"fra1,omitempty"`

	Iad1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"iad1,omitempty"`

	Lax1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"lax1,omitempty"`

	Nrt1 FindCapacityForFacility200ResponseCapacityAms1 `json:"nrt1,omitempty"`

	Ord1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"ord1,omitempty"`

	Sea1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"sea1,omitempty"`

	Sin1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"sin1,omitempty"`

	Sjc1 FindCapacityForFacility200ResponseCapacityAms1 `json:"sjc1,omitempty"`

	Syd1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"syd1,omitempty"`

	Yyz1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"yyz1,omitempty"`
}

type CheckCapacityForFacility200Response ¶

type CheckCapacityForFacility200Response struct {
	Servers []CheckCapacityForFacility200ResponseServersInner `json:"servers,omitempty"`
}

type CheckCapacityForFacility200ResponseServersInner ¶

type CheckCapacityForFacility200ResponseServersInner struct {
	Available bool `json:"available,omitempty"`

	Facility string `json:"facility,omitempty"`

	Plan string `json:"plan,omitempty"`

	Quantity string `json:"quantity,omitempty"`
}

type CheckCapacityForFacilityRequest ¶

type CheckCapacityForFacilityRequest struct {
	Servers []CheckCapacityForFacilityRequestServersInner `json:"servers,omitempty"`
}

type CheckCapacityForFacilityRequestServersInner ¶

type CheckCapacityForFacilityRequestServersInner struct {
	Facility string `json:"facility,omitempty"`

	Plan string `json:"plan,omitempty"`

	Quantity string `json:"quantity,omitempty"`
}

type CheckCapacityForMetro200Response ¶

type CheckCapacityForMetro200Response struct {
	Servers []CheckCapacityForMetro200ResponseServersInner `json:"servers,omitempty"`
}

type CheckCapacityForMetro200ResponseServersInner ¶

type CheckCapacityForMetro200ResponseServersInner struct {

	// Returns true if there is enough capacity in the metro to fulfill the quantity set. Returns false if there is not enough.
	Available bool `json:"available,omitempty"`

	// The metro ID or code sent to check capacity.
	Metro string `json:"metro,omitempty"`

	// The plan ID or slug sent to check capacity.
	Plan string `json:"plan,omitempty"`

	// The number of servers sent to check capacity.
	Quantity string `json:"quantity,omitempty"`
}

type CheckCapacityForMetroRequest ¶

type CheckCapacityForMetroRequest struct {
	Servers []CheckCapacityForMetroRequestServersInner `json:"servers,omitempty"`
}

type CheckCapacityForMetroRequestServersInner ¶

type CheckCapacityForMetroRequestServersInner struct {

	// The metro ID or code to check the capacity in.
	Metro string `json:"metro,omitempty"`

	// The plan ID or slug to check the capacity of.
	Plan string `json:"plan,omitempty"`

	// The number of servers to check the capacity of.
	Quantity string `json:"quantity,omitempty"`
}

type ConvertLayer3Request ¶

type ConvertLayer3Request struct {
	RequestIps []ConvertLayer3RequestRequestIpsInner `json:"request_ips,omitempty"`
}

type ConvertLayer3RequestRequestIpsInner ¶

type ConvertLayer3RequestRequestIpsInner struct {
	AddressFamily int32 `json:"address_family,omitempty"`

	Public bool `json:"public,omitempty"`
}

type Coordinates ¶

type Coordinates struct {
	Latitude string `json:"latitude,omitempty"`

	Longitude string `json:"longitude,omitempty"`
}

type CreateBgpSessionRequest ¶

type CreateBgpSessionRequest struct {

	// Address family for BGP session.
	AddressFamily string `json:"address_family,omitempty"`

	// Set the default route policy.
	DefaultRoute bool `json:"default_route,omitempty"`
}

type CreateDeviceBatchRequest ¶

type CreateDeviceBatchRequest struct {
	Batches []CreateDeviceBatchRequestBatchesInner `json:"batches,omitempty"`
}

type CreateDeviceBatchRequestBatchesInner ¶

type CreateDeviceBatchRequestBatchesInner struct {
	AlwaysPxe bool `json:"always_pxe,omitempty"`

	BillingCycle string `json:"billing_cycle,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Description string `json:"description,omitempty"`

	// Array of facility codes the batch can use for provisioning. This param also takes a string if you want the batch to be fulfilled in only one facility. Cannot be set if the metro is already set.
	Facility []string `json:"facility,omitempty"`

	Features []string `json:"features,omitempty"`

	Hostname string `json:"hostname,omitempty"`

	Hostnames []string `json:"hostnames,omitempty"`

	IpAddresses []CreateDeviceBatchRequestBatchesInnerIpAddressesInner `json:"ip_addresses,omitempty"`

	Locked bool `json:"locked,omitempty"`

	// The metro ID or code the batch can use for provisioning. Cannot be set if the facility is already set.
	Metro string `json:"metro,omitempty"`

	NoSshKeys bool `json:"no_ssh_keys,omitempty"`

	OperatingSystem string `json:"operating_system,omitempty"`

	Plan string `json:"plan,omitempty"`

	ProjectSshKeys []string `json:"project_ssh_keys,omitempty"`

	Tags []string `json:"tags,omitempty"`

	TerminationTime time.Time `json:"termination_time,omitempty"`

	// The UUIDs of users whose SSH keys should be included on the provisioned device.
	UserSshKeys []string `json:"user_ssh_keys,omitempty"`

	Userdata string `json:"userdata,omitempty"`
}

type CreateDeviceBatchRequestBatchesInnerIpAddressesInner ¶

type CreateDeviceBatchRequestBatchesInnerIpAddressesInner struct {

	// Address Family for IP Address
	AddressFamily float32 `json:"address_family,omitempty"`

	// Cidr Size for the IP Block created. Valid values depends on the operating system been provisioned (28..32 for IPv4 addresses, 124..127 for IPv6 addresses).
	Cidr float32 `json:"cidr,omitempty"`

	// UUIDs of any IP reservations to use when assigning IPs
	IpReservations []string `json:"ip_reservations,omitempty"`

	// Address Type for IP Address
	Public bool `json:"public,omitempty"`
}

type CreateDeviceRequest ¶

type CreateDeviceRequest struct {

	// Metro code or ID of where the instance should be provisioned in.  Either metro or facility must be provided.
	Metro string `json:"metro"`

	// When true, devices with a `custom_ipxe` OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot.
	AlwaysPxe bool `json:"always_pxe,omitempty"`

	// The billing cycle of the device.
	BillingCycle string `json:"billing_cycle,omitempty"`

	// Customdata is an arbitrary JSON value that can be accessed via the metadata service.
	Customdata *interface{} `json:"customdata,omitempty"`

	// Any description of the device or how it will be used. This may be used to inform other API consumers with project access.
	Description string `json:"description,omitempty"`

	// The features attribute allows you to optionally specify what features your server should have.  In the API shorthand syntax, all features listed are `required`:  “` { \"features\": [\"tpm\"] } “`  Alternatively, if you do not require a certain feature, but would prefer to be assigned a server with that feature if there are any available, you may specify that feature with a `preferred` value. The request will not fail if we have no servers with that feature in our inventory. The API offers an alternative syntax for mixing preferred and required features:  “` { \"features\": { \"tpm\": \"required\", \"raid\": \"preferred\" } } “`  The request will only fail if there are no available servers matching the required `tpm` criteria.
	Features []string `json:"features,omitempty"`

	// The Hardware Reservation UUID to provision. Alternatively, `next-available` can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details.
	HardwareReservationId string `json:"hardware_reservation_id,omitempty"`

	// The hostname to use within the operating system. The same hostname may be used on multiple devices within a project.
	Hostname string `json:"hostname,omitempty"`

	// The `ip_addresses attribute will allow you to specify the addresses you want created with your device.  The default value configures public IPv4, public IPv6, and private IPv4.  Private IPv4 address is required. When specifying `ip_addresses`, one of the array items must enable private IPv4.  Some operating systems require public IPv4 address. In those cases you will receive an error message if public IPv4 is not enabled.  For example, to only configure your server with a private IPv4 address, you can send `{ \"ip_addresses\": [{ \"address_family\": 4, \"public\": false }] }`.  It is possible to request a subnet size larger than a `/30` by assigning addresses using the UUID(s) of ip_reservations in your project.  For example, `{ \"ip_addresses\": [..., {\"address_family\": 4, \"public\": true, \"ip_reservations\": [\"uuid1\", \"uuid2\"]}] }`  To access a server without public IPs, you can use our Out-of-Band console access (SOS) or proxy through another server in the project with public IPs enabled.
	IpAddresses []CreateDeviceRequestOneOfAllOf1IpAddressesInner `json:"ip_addresses,omitempty"`

	// When set, the device will chainload an iPXE Script at boot fetched from the supplied URL.  See [Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/) for more details.
	IpxeScriptUrl string `json:"ipxe_script_url,omitempty"`

	// Whether the device should be locked, preventing accidental deletion.
	Locked bool `json:"locked,omitempty"`

	// Overrides default behaviour of attaching all of the organization members ssh keys and project ssh keys to device if no specific keys specified
	NoSshKeys bool `json:"no_ssh_keys,omitempty"`

	// The slug of the operating system to provision. Check the Equinix Metal operating system documentation for rules that may be imposed per operating system, including restrictions on IP address options and device plans.
	OperatingSystem string `json:"operating_system"`

	// The slug of the device plan to provision.
	Plan string `json:"plan"`

	// Deprecated. Use ip_addresses. Subnet range for addresses allocated to this device.
	PrivateIpv4SubnetSize float32 `json:"private_ipv4_subnet_size,omitempty"`

	// A list of UUIDs identifying the device parent project that should be authorized to access this device (typically via /root/.ssh/authorized_keys). These keys will also appear in the device metadata.  If no SSH keys are specified (`user_ssh_keys`, `project_ssh_keys`, and `ssh_keys` are all empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. This behaviour can be changed with 'no_ssh_keys' option to omit any SSH key being added.
	ProjectSshKeys []string `json:"project_ssh_keys,omitempty"`

	// Deprecated. Use ip_addresses. Subnet range for addresses allocated to this device. Your project must have addresses available for a non-default request.
	PublicIpv4SubnetSize float32 `json:"public_ipv4_subnet_size,omitempty"`

	SpotInstance bool `json:"spot_instance,omitempty"`

	SpotPriceMax float32 `json:"spot_price_max,omitempty"`

	// A list of new or existing project ssh_keys that should be authorized to access this device (typically via /root/.ssh/authorized_keys). These keys will also appear in the device metadata.  These keys are added in addition to any keys defined by   `project_ssh_keys` and `user_ssh_keys`.
	SshKeys []CreateDeviceRequestOneOfAllOf1SshKeysInner `json:"ssh_keys,omitempty"`

	Tags []string `json:"tags,omitempty"`

	TerminationTime time.Time `json:"termination_time,omitempty"`

	// A list of UUIDs identifying the users that should be authorized to access this device (typically via /root/.ssh/authorized_keys).  These keys will also appear in the device metadata.  The users must be members of the project or organization.  If no SSH keys are specified (`user_ssh_keys`, `project_ssh_keys`, and `ssh_keys` are all empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. This behaviour can be changed with 'no_ssh_keys' option to omit any SSH key being added.
	UserSshKeys []string `json:"user_ssh_keys,omitempty"`

	// The userdata presented in the metadata service for this device.  Userdata is fetched and interpreted by the operating system installed on the device. Acceptable formats are determined by the operating system, with the exception of a special iPXE enabling syntax which is handled before the operating system starts.  See [Server User Data](https://metal.equinix.com/developers/docs/servers/user-data/) and [Provisioning with Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/#provisioning-with-custom-ipxe) for more details.
	Userdata string `json:"userdata,omitempty"`

	Facility CreateDeviceRequestOneOf1AllOfFacility `json:"facility"`
}

type CreateDeviceRequestOneOf ¶

type CreateDeviceRequestOneOf struct {

	// Metro code or ID of where the instance should be provisioned in.  Either metro or facility must be provided.
	Metro string `json:"metro"`

	// When true, devices with a `custom_ipxe` OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot.
	AlwaysPxe bool `json:"always_pxe,omitempty"`

	// The billing cycle of the device.
	BillingCycle string `json:"billing_cycle,omitempty"`

	// Customdata is an arbitrary JSON value that can be accessed via the metadata service.
	Customdata *interface{} `json:"customdata,omitempty"`

	// Any description of the device or how it will be used. This may be used to inform other API consumers with project access.
	Description string `json:"description,omitempty"`

	// The features attribute allows you to optionally specify what features your server should have.  In the API shorthand syntax, all features listed are `required`:  “` { \"features\": [\"tpm\"] } “`  Alternatively, if you do not require a certain feature, but would prefer to be assigned a server with that feature if there are any available, you may specify that feature with a `preferred` value. The request will not fail if we have no servers with that feature in our inventory. The API offers an alternative syntax for mixing preferred and required features:  “` { \"features\": { \"tpm\": \"required\", \"raid\": \"preferred\" } } “`  The request will only fail if there are no available servers matching the required `tpm` criteria.
	Features []string `json:"features,omitempty"`

	// The Hardware Reservation UUID to provision. Alternatively, `next-available` can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details.
	HardwareReservationId string `json:"hardware_reservation_id,omitempty"`

	// The hostname to use within the operating system. The same hostname may be used on multiple devices within a project.
	Hostname string `json:"hostname,omitempty"`

	// The `ip_addresses attribute will allow you to specify the addresses you want created with your device.  The default value configures public IPv4, public IPv6, and private IPv4.  Private IPv4 address is required. When specifying `ip_addresses`, one of the array items must enable private IPv4.  Some operating systems require public IPv4 address. In those cases you will receive an error message if public IPv4 is not enabled.  For example, to only configure your server with a private IPv4 address, you can send `{ \"ip_addresses\": [{ \"address_family\": 4, \"public\": false }] }`.  It is possible to request a subnet size larger than a `/30` by assigning addresses using the UUID(s) of ip_reservations in your project.  For example, `{ \"ip_addresses\": [..., {\"address_family\": 4, \"public\": true, \"ip_reservations\": [\"uuid1\", \"uuid2\"]}] }`  To access a server without public IPs, you can use our Out-of-Band console access (SOS) or proxy through another server in the project with public IPs enabled.
	IpAddresses []CreateDeviceRequestOneOfAllOf1IpAddressesInner `json:"ip_addresses,omitempty"`

	// When set, the device will chainload an iPXE Script at boot fetched from the supplied URL.  See [Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/) for more details.
	IpxeScriptUrl string `json:"ipxe_script_url,omitempty"`

	// Whether the device should be locked, preventing accidental deletion.
	Locked bool `json:"locked,omitempty"`

	// Overrides default behaviour of attaching all of the organization members ssh keys and project ssh keys to device if no specific keys specified
	NoSshKeys bool `json:"no_ssh_keys,omitempty"`

	// The slug of the operating system to provision. Check the Equinix Metal operating system documentation for rules that may be imposed per operating system, including restrictions on IP address options and device plans.
	OperatingSystem string `json:"operating_system"`

	// The slug of the device plan to provision.
	Plan string `json:"plan"`

	// Deprecated. Use ip_addresses. Subnet range for addresses allocated to this device.
	PrivateIpv4SubnetSize float32 `json:"private_ipv4_subnet_size,omitempty"`

	// A list of UUIDs identifying the device parent project that should be authorized to access this device (typically via /root/.ssh/authorized_keys). These keys will also appear in the device metadata.  If no SSH keys are specified (`user_ssh_keys`, `project_ssh_keys`, and `ssh_keys` are all empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. This behaviour can be changed with 'no_ssh_keys' option to omit any SSH key being added.
	ProjectSshKeys []string `json:"project_ssh_keys,omitempty"`

	// Deprecated. Use ip_addresses. Subnet range for addresses allocated to this device. Your project must have addresses available for a non-default request.
	PublicIpv4SubnetSize float32 `json:"public_ipv4_subnet_size,omitempty"`

	SpotInstance bool `json:"spot_instance,omitempty"`

	SpotPriceMax float32 `json:"spot_price_max,omitempty"`

	// A list of new or existing project ssh_keys that should be authorized to access this device (typically via /root/.ssh/authorized_keys). These keys will also appear in the device metadata.  These keys are added in addition to any keys defined by   `project_ssh_keys` and `user_ssh_keys`.
	SshKeys []CreateDeviceRequestOneOfAllOf1SshKeysInner `json:"ssh_keys,omitempty"`

	Tags []string `json:"tags,omitempty"`

	TerminationTime time.Time `json:"termination_time,omitempty"`

	// A list of UUIDs identifying the users that should be authorized to access this device (typically via /root/.ssh/authorized_keys).  These keys will also appear in the device metadata.  The users must be members of the project or organization.  If no SSH keys are specified (`user_ssh_keys`, `project_ssh_keys`, and `ssh_keys` are all empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. This behaviour can be changed with 'no_ssh_keys' option to omit any SSH key being added.
	UserSshKeys []string `json:"user_ssh_keys,omitempty"`

	// The userdata presented in the metadata service for this device.  Userdata is fetched and interpreted by the operating system installed on the device. Acceptable formats are determined by the operating system, with the exception of a special iPXE enabling syntax which is handled before the operating system starts.  See [Server User Data](https://metal.equinix.com/developers/docs/servers/user-data/) and [Provisioning with Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/#provisioning-with-custom-ipxe) for more details.
	Userdata string `json:"userdata,omitempty"`
}

type CreateDeviceRequestOneOf1 ¶

type CreateDeviceRequestOneOf1 struct {
	Facility CreateDeviceRequestOneOf1AllOfFacility `json:"facility"`

	// When true, devices with a `custom_ipxe` OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot.
	AlwaysPxe bool `json:"always_pxe,omitempty"`

	// The billing cycle of the device.
	BillingCycle string `json:"billing_cycle,omitempty"`

	// Customdata is an arbitrary JSON value that can be accessed via the metadata service.
	Customdata *interface{} `json:"customdata,omitempty"`

	// Any description of the device or how it will be used. This may be used to inform other API consumers with project access.
	Description string `json:"description,omitempty"`

	// The features attribute allows you to optionally specify what features your server should have.  In the API shorthand syntax, all features listed are `required`:  “` { \"features\": [\"tpm\"] } “`  Alternatively, if you do not require a certain feature, but would prefer to be assigned a server with that feature if there are any available, you may specify that feature with a `preferred` value. The request will not fail if we have no servers with that feature in our inventory. The API offers an alternative syntax for mixing preferred and required features:  “` { \"features\": { \"tpm\": \"required\", \"raid\": \"preferred\" } } “`  The request will only fail if there are no available servers matching the required `tpm` criteria.
	Features []string `json:"features,omitempty"`

	// The Hardware Reservation UUID to provision. Alternatively, `next-available` can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details.
	HardwareReservationId string `json:"hardware_reservation_id,omitempty"`

	// The hostname to use within the operating system. The same hostname may be used on multiple devices within a project.
	Hostname string `json:"hostname,omitempty"`

	// The `ip_addresses attribute will allow you to specify the addresses you want created with your device.  The default value configures public IPv4, public IPv6, and private IPv4.  Private IPv4 address is required. When specifying `ip_addresses`, one of the array items must enable private IPv4.  Some operating systems require public IPv4 address. In those cases you will receive an error message if public IPv4 is not enabled.  For example, to only configure your server with a private IPv4 address, you can send `{ \"ip_addresses\": [{ \"address_family\": 4, \"public\": false }] }`.  It is possible to request a subnet size larger than a `/30` by assigning addresses using the UUID(s) of ip_reservations in your project.  For example, `{ \"ip_addresses\": [..., {\"address_family\": 4, \"public\": true, \"ip_reservations\": [\"uuid1\", \"uuid2\"]}] }`  To access a server without public IPs, you can use our Out-of-Band console access (SOS) or proxy through another server in the project with public IPs enabled.
	IpAddresses []CreateDeviceRequestOneOfAllOf1IpAddressesInner `json:"ip_addresses,omitempty"`

	// When set, the device will chainload an iPXE Script at boot fetched from the supplied URL.  See [Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/) for more details.
	IpxeScriptUrl string `json:"ipxe_script_url,omitempty"`

	// Whether the device should be locked, preventing accidental deletion.
	Locked bool `json:"locked,omitempty"`

	// Overrides default behaviour of attaching all of the organization members ssh keys and project ssh keys to device if no specific keys specified
	NoSshKeys bool `json:"no_ssh_keys,omitempty"`

	// The slug of the operating system to provision. Check the Equinix Metal operating system documentation for rules that may be imposed per operating system, including restrictions on IP address options and device plans.
	OperatingSystem string `json:"operating_system"`

	// The slug of the device plan to provision.
	Plan string `json:"plan"`

	// Deprecated. Use ip_addresses. Subnet range for addresses allocated to this device.
	PrivateIpv4SubnetSize float32 `json:"private_ipv4_subnet_size,omitempty"`

	// A list of UUIDs identifying the device parent project that should be authorized to access this device (typically via /root/.ssh/authorized_keys). These keys will also appear in the device metadata.  If no SSH keys are specified (`user_ssh_keys`, `project_ssh_keys`, and `ssh_keys` are all empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. This behaviour can be changed with 'no_ssh_keys' option to omit any SSH key being added.
	ProjectSshKeys []string `json:"project_ssh_keys,omitempty"`

	// Deprecated. Use ip_addresses. Subnet range for addresses allocated to this device. Your project must have addresses available for a non-default request.
	PublicIpv4SubnetSize float32 `json:"public_ipv4_subnet_size,omitempty"`

	SpotInstance bool `json:"spot_instance,omitempty"`

	SpotPriceMax float32 `json:"spot_price_max,omitempty"`

	// A list of new or existing project ssh_keys that should be authorized to access this device (typically via /root/.ssh/authorized_keys). These keys will also appear in the device metadata.  These keys are added in addition to any keys defined by   `project_ssh_keys` and `user_ssh_keys`.
	SshKeys []CreateDeviceRequestOneOfAllOf1SshKeysInner `json:"ssh_keys,omitempty"`

	Tags []string `json:"tags,omitempty"`

	TerminationTime time.Time `json:"termination_time,omitempty"`

	// A list of UUIDs identifying the users that should be authorized to access this device (typically via /root/.ssh/authorized_keys).  These keys will also appear in the device metadata.  The users must be members of the project or organization.  If no SSH keys are specified (`user_ssh_keys`, `project_ssh_keys`, and `ssh_keys` are all empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. This behaviour can be changed with 'no_ssh_keys' option to omit any SSH key being added.
	UserSshKeys []string `json:"user_ssh_keys,omitempty"`

	// The userdata presented in the metadata service for this device.  Userdata is fetched and interpreted by the operating system installed on the device. Acceptable formats are determined by the operating system, with the exception of a special iPXE enabling syntax which is handled before the operating system starts.  See [Server User Data](https://metal.equinix.com/developers/docs/servers/user-data/) and [Provisioning with Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/#provisioning-with-custom-ipxe) for more details.
	Userdata string `json:"userdata,omitempty"`
}

type CreateDeviceRequestOneOf1AllOf ¶

type CreateDeviceRequestOneOf1AllOf struct {
	Facility CreateDeviceRequestOneOf1AllOfFacility `json:"facility"`
}

type CreateDeviceRequestOneOf1AllOfFacility ¶

type CreateDeviceRequestOneOf1AllOfFacility struct {
}

CreateDeviceRequestOneOf1AllOfFacility - The datacenter where the device should be created. Either metro or facility must be provided. The API will accept either a single facility `{ \"facility\": \"f1\" }`, or it can be instructed to create the device in the best available datacenter `{ \"facility\": \"any\" }`. Additionally it is possible to set a prioritized location selection. For example `{ \"facility\": [\"f3\", \"f2\", \"any\"] }` can be used to prioritize `f3` and then `f2` before accepting `any` facility. If none of the facilities provided have availability for the requested device the request will fail.

type CreateDeviceRequestOneOfAllOf ¶

type CreateDeviceRequestOneOfAllOf struct {

	// Metro code or ID of where the instance should be provisioned in.  Either metro or facility must be provided.
	Metro string `json:"metro"`
}

type CreateDeviceRequestOneOfAllOf1 ¶

type CreateDeviceRequestOneOfAllOf1 struct {

	// When true, devices with a `custom_ipxe` OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot.
	AlwaysPxe bool `json:"always_pxe,omitempty"`

	// The billing cycle of the device.
	BillingCycle string `json:"billing_cycle,omitempty"`

	// Customdata is an arbitrary JSON value that can be accessed via the metadata service.
	Customdata *interface{} `json:"customdata,omitempty"`

	// Any description of the device or how it will be used. This may be used to inform other API consumers with project access.
	Description string `json:"description,omitempty"`

	// The features attribute allows you to optionally specify what features your server should have.  In the API shorthand syntax, all features listed are `required`:  “` { \"features\": [\"tpm\"] } “`  Alternatively, if you do not require a certain feature, but would prefer to be assigned a server with that feature if there are any available, you may specify that feature with a `preferred` value. The request will not fail if we have no servers with that feature in our inventory. The API offers an alternative syntax for mixing preferred and required features:  “` { \"features\": { \"tpm\": \"required\", \"raid\": \"preferred\" } } “`  The request will only fail if there are no available servers matching the required `tpm` criteria.
	Features []string `json:"features,omitempty"`

	// The Hardware Reservation UUID to provision. Alternatively, `next-available` can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details.
	HardwareReservationId string `json:"hardware_reservation_id,omitempty"`

	// The hostname to use within the operating system. The same hostname may be used on multiple devices within a project.
	Hostname string `json:"hostname,omitempty"`

	// The `ip_addresses attribute will allow you to specify the addresses you want created with your device.  The default value configures public IPv4, public IPv6, and private IPv4.  Private IPv4 address is required. When specifying `ip_addresses`, one of the array items must enable private IPv4.  Some operating systems require public IPv4 address. In those cases you will receive an error message if public IPv4 is not enabled.  For example, to only configure your server with a private IPv4 address, you can send `{ \"ip_addresses\": [{ \"address_family\": 4, \"public\": false }] }`.  It is possible to request a subnet size larger than a `/30` by assigning addresses using the UUID(s) of ip_reservations in your project.  For example, `{ \"ip_addresses\": [..., {\"address_family\": 4, \"public\": true, \"ip_reservations\": [\"uuid1\", \"uuid2\"]}] }`  To access a server without public IPs, you can use our Out-of-Band console access (SOS) or proxy through another server in the project with public IPs enabled.
	IpAddresses []CreateDeviceRequestOneOfAllOf1IpAddressesInner `json:"ip_addresses,omitempty"`

	// When set, the device will chainload an iPXE Script at boot fetched from the supplied URL.  See [Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/) for more details.
	IpxeScriptUrl string `json:"ipxe_script_url,omitempty"`

	// Whether the device should be locked, preventing accidental deletion.
	Locked bool `json:"locked,omitempty"`

	// Overrides default behaviour of attaching all of the organization members ssh keys and project ssh keys to device if no specific keys specified
	NoSshKeys bool `json:"no_ssh_keys,omitempty"`

	// The slug of the operating system to provision. Check the Equinix Metal operating system documentation for rules that may be imposed per operating system, including restrictions on IP address options and device plans.
	OperatingSystem string `json:"operating_system"`

	// The slug of the device plan to provision.
	Plan string `json:"plan"`

	// Deprecated. Use ip_addresses. Subnet range for addresses allocated to this device.
	PrivateIpv4SubnetSize float32 `json:"private_ipv4_subnet_size,omitempty"`

	// A list of UUIDs identifying the device parent project that should be authorized to access this device (typically via /root/.ssh/authorized_keys). These keys will also appear in the device metadata.  If no SSH keys are specified (`user_ssh_keys`, `project_ssh_keys`, and `ssh_keys` are all empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. This behaviour can be changed with 'no_ssh_keys' option to omit any SSH key being added.
	ProjectSshKeys []string `json:"project_ssh_keys,omitempty"`

	// Deprecated. Use ip_addresses. Subnet range for addresses allocated to this device. Your project must have addresses available for a non-default request.
	PublicIpv4SubnetSize float32 `json:"public_ipv4_subnet_size,omitempty"`

	SpotInstance bool `json:"spot_instance,omitempty"`

	SpotPriceMax float32 `json:"spot_price_max,omitempty"`

	// A list of new or existing project ssh_keys that should be authorized to access this device (typically via /root/.ssh/authorized_keys). These keys will also appear in the device metadata.  These keys are added in addition to any keys defined by   `project_ssh_keys` and `user_ssh_keys`.
	SshKeys []CreateDeviceRequestOneOfAllOf1SshKeysInner `json:"ssh_keys,omitempty"`

	Tags []string `json:"tags,omitempty"`

	TerminationTime time.Time `json:"termination_time,omitempty"`

	// A list of UUIDs identifying the users that should be authorized to access this device (typically via /root/.ssh/authorized_keys).  These keys will also appear in the device metadata.  The users must be members of the project or organization.  If no SSH keys are specified (`user_ssh_keys`, `project_ssh_keys`, and `ssh_keys` are all empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. This behaviour can be changed with 'no_ssh_keys' option to omit any SSH key being added.
	UserSshKeys []string `json:"user_ssh_keys,omitempty"`

	// The userdata presented in the metadata service for this device.  Userdata is fetched and interpreted by the operating system installed on the device. Acceptable formats are determined by the operating system, with the exception of a special iPXE enabling syntax which is handled before the operating system starts.  See [Server User Data](https://metal.equinix.com/developers/docs/servers/user-data/) and [Provisioning with Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/#provisioning-with-custom-ipxe) for more details.
	Userdata string `json:"userdata,omitempty"`
}

type CreateDeviceRequestOneOfAllOf1IpAddressesInner ¶

type CreateDeviceRequestOneOfAllOf1IpAddressesInner struct {

	// Address Family for IP Address
	AddressFamily float32 `json:"address_family,omitempty"`

	// Cidr Size for the IP Block created. Valid values depends on the operating system being provisioned. (28..32 for IPv4 addresses, 124..127 for IPv6 addresses)
	Cidr float32 `json:"cidr,omitempty"`

	// UUIDs of any IP reservations to use when assigning IPs
	IpReservations []string `json:"ip_reservations,omitempty"`

	// Address Type for IP Address
	Public bool `json:"public,omitempty"`
}

type CreateDeviceRequestOneOfAllOf1SshKeysInner ¶

type CreateDeviceRequestOneOfAllOf1SshKeysInner struct {
	Key string `json:"key,omitempty"`

	Label string `json:"label,omitempty"`
}

type CreateEmail201Response ¶

type CreateEmail201Response struct {
	Address string `json:"address,omitempty"`

	Default bool `json:"default,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Verified bool `json:"verified,omitempty"`
}

type CreateEmailInput ¶

type CreateEmailInput struct {
	Address string `json:"address"`
}

type CreateEmailRequest ¶

type CreateEmailRequest struct {
	Address string `json:"address"`
}

type CreateInterconnectionPortVirtualCircuit201Response ¶

type CreateInterconnectionPortVirtualCircuit201Response struct {

	// True if the Virtual Circuit is being billed. Currently, only Virtual Circuits of Fabric VCs (Metal Billed) will be billed. Usage will start the first time the Virtual Circuit becomes active, and will not stop until it is deleted from Metal.
	Bill bool `json:"bill"`

	Description string `json:"description"`

	Id string `json:"id"`

	Name string `json:"name"`

	NniVlan int32 `json:"nni_vlan"`

	Port FindBatchById200ResponseDevicesInner `json:"port"`

	Project FindBatchById200ResponseDevicesInner `json:"project"`

	// integer representing bps speed
	Speed int32 `json:"speed,omitempty"`

	Status string `json:"status"`

	Tags []string `json:"tags"`

	VirtualNetwork FindBatchById200ResponseDevicesInner `json:"virtual_network"`

	Vnid int32 `json:"vnid"`

	// An IP address from the subnet that will be used on the Customer side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Metal IP. By default, the last usable IP address in the subnet will be used.
	CustomerIp string `json:"customer_ip,omitempty"`

	// The MD5 password for the BGP peering in plaintext (not a checksum).
	Md5 string `json:"md5,omitempty"`

	// An IP address from the subnet that will be used on the Metal side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Customer IP. By default, the first usable IP address in the subnet will be used.
	MetalIp string `json:"metal_ip,omitempty"`

	// The peer ASN that will be used with the VRF on the Virtual Circuit.
	PeerAsn int32 `json:"peer_asn,omitempty"`

	// The /30 or /31 subnet of one of the VRF IP Blocks that will be used with the VRF for the Virtual Circuit. This subnet does not have to be an existing VRF IP reservation, as we will create the VRF IP reservation on creation if it does not exist. The Metal IP and Customer IP must be IPs from this subnet. For /30 subnets, the network and broadcast IPs cannot be used as the Metal or Customer IP.
	Subnet string `json:"subnet,omitempty"`

	Vrf GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1Vrf `json:"vrf,omitempty"`
}

type CreateInterconnectionPortVirtualCircuitRequest ¶

type CreateInterconnectionPortVirtualCircuitRequest struct {
	Description string `json:"description,omitempty"`

	Name string `json:"name,omitempty"`

	NniVlan int32 `json:"nni_vlan"`

	Project string `json:"project"`

	// speed can be passed as integer number representing bps speed or string (e.g. '52m' or '100g' or '4 gbps')
	Speed int32 `json:"speed,omitempty"`

	Tags []string `json:"tags,omitempty"`

	// A Virtual Network record UUID or the VNID of a Virtual Network in your project (sent as integer).
	Vnid string `json:"vnid,omitempty"`

	// An IP address from the subnet that will be used on the Customer side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Metal IP. By default, the last usable IP address in the subnet will be used.
	CustomerIp string `json:"customer_ip,omitempty"`

	// The MD5 password for the BGP peering in plaintext (not a checksum).
	Md5 *string `json:"md5,omitempty"`

	// An IP address from the subnet that will be used on the Metal side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Customer IP. By default, the first usable IP address in the subnet will be used.
	MetalIp string `json:"metal_ip,omitempty"`

	// The peer ASN that will be used with the VRF on the Virtual Circuit.
	PeerAsn int32 `json:"peer_asn"`

	// The /30 or /31 subnet of one of the VRF IP Blocks that will be used with the VRF for the Virtual Circuit. This subnet does not have to be an existing VRF IP reservation, as we will create the VRF IP reservation on creation if it does not exist. The Metal IP and Customer IP must be IPs from this subnet. For /30 subnets, the network and broadcast IPs cannot be used as the Metal or Customer IP. The subnet specified must be contained within an already-defined IP Range for the VRF.
	Subnet string `json:"subnet"`

	// The UUID of the VRF that will be associated with the Virtual Circuit.
	Vrf string `json:"vrf"`
}

type CreateInterconnectionPortVirtualCircuitRequestOneOf ¶

type CreateInterconnectionPortVirtualCircuitRequestOneOf struct {
	Description string `json:"description,omitempty"`

	Name string `json:"name,omitempty"`

	NniVlan int32 `json:"nni_vlan,omitempty"`

	Project string `json:"project,omitempty"`

	// speed can be passed as integer number representing bps speed or string (e.g. '52m' or '100g' or '4 gbps')
	Speed int32 `json:"speed,omitempty"`

	Tags []string `json:"tags,omitempty"`

	// A Virtual Network record UUID or the VNID of a Virtual Network in your project (sent as integer).
	Vnid string `json:"vnid,omitempty"`
}

type CreateInterconnectionPortVirtualCircuitRequestOneOf1 ¶

type CreateInterconnectionPortVirtualCircuitRequestOneOf1 struct {

	// An IP address from the subnet that will be used on the Customer side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Metal IP. By default, the last usable IP address in the subnet will be used.
	CustomerIp string `json:"customer_ip,omitempty"`

	Description string `json:"description,omitempty"`

	// The MD5 password for the BGP peering in plaintext (not a checksum).
	Md5 *string `json:"md5,omitempty"`

	// An IP address from the subnet that will be used on the Metal side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Customer IP. By default, the first usable IP address in the subnet will be used.
	MetalIp string `json:"metal_ip,omitempty"`

	Name string `json:"name,omitempty"`

	NniVlan int32 `json:"nni_vlan"`

	// The peer ASN that will be used with the VRF on the Virtual Circuit.
	PeerAsn int32 `json:"peer_asn"`

	Project string `json:"project"`

	// speed can be passed as integer number representing bps speed or string (e.g. '52m' or '100g' or '4 gbps')
	Speed int32 `json:"speed,omitempty"`

	// The /30 or /31 subnet of one of the VRF IP Blocks that will be used with the VRF for the Virtual Circuit. This subnet does not have to be an existing VRF IP reservation, as we will create the VRF IP reservation on creation if it does not exist. The Metal IP and Customer IP must be IPs from this subnet. For /30 subnets, the network and broadcast IPs cannot be used as the Metal or Customer IP. The subnet specified must be contained within an already-defined IP Range for the VRF.
	Subnet string `json:"subnet"`

	Tags []string `json:"tags,omitempty"`

	// The UUID of the VRF that will be associated with the Virtual Circuit.
	Vrf string `json:"vrf"`
}

type CreateIpAssignmentRequest ¶

type CreateIpAssignmentRequest struct {
	Address string `json:"address"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Manageable bool `json:"manageable,omitempty"`
}

type CreateLicenseRequest ¶

type CreateLicenseRequest struct {
	Description string `json:"description,omitempty"`

	LicenseeProductId string `json:"licensee_product_id,omitempty"`

	Size float32 `json:"size,omitempty"`
}

type CreateMetalGatewayRequest ¶

type CreateMetalGatewayRequest struct {

	// The UUID an a VRF IP Reservation that belongs to the same project as the one in which the Metal Gateway is to be created. Additionally, the VRF IP Reservation and the Virtual Network must reside in the same Metro.
	IpReservationId string `json:"ip_reservation_id"`

	// The subnet size (8, 16, 32, 64, or 128) of the private IPv4 reservation that will be created for the metal gateway. This field is required unless a project IP reservation was specified.           Please keep in mind that the number of private metal gateway ranges are limited per project. If you would like to increase the limit per project, please contact support for assistance.
	PrivateIpv4SubnetSize int32 `json:"private_ipv4_subnet_size,omitempty"`

	// THe UUID of a Metro Virtual Network that belongs to the same project as the one in which the Metal Gateway is to be created. Additionally, the Virtual Network and the VRF IP Reservation must reside in the same metro.
	VirtualNetworkId string `json:"virtual_network_id"`
}

type CreateMetalGatewayRequestOneOf ¶

type CreateMetalGatewayRequestOneOf struct {

	// The UUID of an IP reservation that belongs to the same project as where the metal gateway will be created in. This field is required unless the private IPv4 subnet size is specified.
	IpReservationId string `json:"ip_reservation_id,omitempty"`

	// The subnet size (8, 16, 32, 64, or 128) of the private IPv4 reservation that will be created for the metal gateway. This field is required unless a project IP reservation was specified.           Please keep in mind that the number of private metal gateway ranges are limited per project. If you would like to increase the limit per project, please contact support for assistance.
	PrivateIpv4SubnetSize int32 `json:"private_ipv4_subnet_size,omitempty"`

	// The UUID of a metro virtual network that belongs to the same project as where the metal gateway will be created in.
	VirtualNetworkId string `json:"virtual_network_id"`
}

type CreateMetalGatewayRequestOneOf1 ¶

type CreateMetalGatewayRequestOneOf1 struct {

	// The UUID an a VRF IP Reservation that belongs to the same project as the one in which the Metal Gateway is to be created. Additionally, the VRF IP Reservation and the Virtual Network must reside in the same Metro.
	IpReservationId string `json:"ip_reservation_id"`

	// THe UUID of a Metro Virtual Network that belongs to the same project as the one in which the Metal Gateway is to be created. Additionally, the Virtual Network and the VRF IP Reservation must reside in the same metro.
	VirtualNetworkId string `json:"virtual_network_id"`
}

type CreateOrganizationInterconnectionRequest ¶

type CreateOrganizationInterconnectionRequest struct {
	ContactEmail string `json:"contact_email,omitempty"`

	Description string `json:"description,omitempty"`

	// A Metro ID or code. For interconnections with Dedicated Ports, this will be the location of the issued Dedicated Ports. When creating Fabric VCs (Metal Billed), this is where interconnection will be originating from, as we pre-authorize the use of one of our shared ports as the origin of the interconnection using A-Side service tokens. We only allow local connections for Fabric VCs (Metal Billed), so the destination location must be the same as the origin. For Fabric VCs (Fabric Billed), or shared connections, this will be the destination of the interconnection. We allow remote connections for Fabric VCs (Fabric Billed), so the origin of the interconnection can be a different metro set here. For access to Fabric VCs, which are not generally available, please contact our Support Team for more details.
	Metro string `json:"metro"`

	// The mode of the interconnection (only relevant to Dedicated Ports). Fabric VCs won't have this field. Can be either 'standard' or 'tunnel'.   The default mode of an interconnection on a Dedicated Port is 'standard'. The mode can only be changed when there are no associated virtual circuits on the interconnection.   In tunnel mode, an 802.1q tunnel is added to a port to send/receive double tagged packets from server instances.
	Mode string `json:"mode,omitempty"`

	Name string `json:"name"`

	Project string `json:"project,omitempty"`

	// Either 'primary' or 'redundant'.
	Redundancy string `json:"redundancy"`

	// Either 'a_side' or 'z_side'. Setting this field to 'a_side' will create an interconnection with Fabric VCs (Metal Billed). Setting this field to 'z_side' will create an interconnection with Fabric VCs (Fabric Billed). This is required when the 'type' is 'shared', but this is not applicable when the 'type' is 'dedicated'. This parameter is included in the specification as a developer preview and is generally unavailable. Please contact our Support team for more details.
	ServiceTokenType string `json:"service_token_type,omitempty"`

	// A interconnection speed, in bps, mbps, or gbps. For Dedicated Ports, this can be 10Gbps or 100Gbps. For Fabric VCs, this represents the maximum speed of the interconnection. For Fabric VCs (Metal Billed), this can only be one of the following:  ”50mbps”, ”200mbps”, ”500mbps”, ”1gbps”, ”2gbps”, ”5gbps” or ”10gbps”, and is required for creation. For Fabric VCs (Fabric Billed), this field will always default to ”10gbps” even if it is not provided. For example, ”500000000”, ”50m”, or' ”500mbps” will all work as valid inputs.
	Speed int32 `json:"speed,omitempty"`

	Tags []string `json:"tags,omitempty"`

	// Either 'shared' or 'dedicated'. The 'shared' type represents shared interconnections, or also known as Fabric VCs. The 'dedicated' type represents dedicated interconnections, or also known as Dedicated Ports.
	Type string `json:"type"`

	// A list of one or two metro-based VLANs that will be set on the virtual circuits of primary and/or secondary (if redundant) interconnections respectively when creating Fabric VCs. VLANs can also be set after the interconnection is created, but are required to fully activate the interconnection. This parameter is included in the specification as a developer preview and is generally unavailable. Please contact our Support team for more details.
	Vlans []int32 `json:"vlans,omitempty"`
}

type CreateOrganizationInvitationRequest ¶

type CreateOrganizationInvitationRequest struct {
	Invitee string `json:"invitee"`

	Message string `json:"message,omitempty"`

	OrganizationId string `json:"organization_id,omitempty"`

	ProjectsIds []string `json:"projects_ids,omitempty"`

	Roles []string `json:"roles,omitempty"`
}

type CreateOrganizationProjectRequest ¶

type CreateOrganizationProjectRequest struct {
	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Name string `json:"name"`

	PaymentMethodId string `json:"payment_method_id,omitempty"`
}

type CreateOrganizationRequest ¶

type CreateOrganizationRequest struct {
	Address FindDeviceById200ResponseFacilityAddress `json:"address,omitempty"`

	BillingAddress FindDeviceById200ResponseFacilityAddress `json:"billing_address,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Description string `json:"description,omitempty"`

	// Force to all members to have enabled the two factor authentication after that date, unless the value is null
	Enforce2faAt time.Time `json:"enforce_2fa_at,omitempty"`


	Name string `json:"name,omitempty"`

	Twitter string `json:"twitter,omitempty"`

	Website string `json:"website,omitempty"`
}

type CreatePaymentMethodRequest ¶

type CreatePaymentMethodRequest struct {
	Default bool `json:"default,omitempty"`

	Name string `json:"name"`

	Nonce string `json:"nonce"`
}

type CreatePortVlanAssignmentBatchRequest ¶

type CreatePortVlanAssignmentBatchRequest struct {
	VlanAssignments []CreatePortVlanAssignmentBatchRequestVlanAssignmentsInner `json:"vlan_assignments,omitempty"`
}

type CreatePortVlanAssignmentBatchRequestVlanAssignmentsInner ¶

type CreatePortVlanAssignmentBatchRequestVlanAssignmentsInner struct {
	Native bool `json:"native,omitempty"`

	State string `json:"state,omitempty"`

	Vlan string `json:"vlan,omitempty"`
}

type CreateProjectApiKeyRequest ¶

type CreateProjectApiKeyRequest struct {
	Description string `json:"description,omitempty"`

	ReadOnly bool `json:"read_only,omitempty"`
}

type CreateProjectRequest ¶

type CreateProjectRequest struct {
	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Name string `json:"name"`

	OrganizationId string `json:"organization_id,omitempty"`

	PaymentMethodId string `json:"payment_method_id,omitempty"`
}

type CreateProjectSshKeyRequest ¶

type CreateProjectSshKeyRequest struct {

	// List of instance UUIDs to associate SSH key with, when empty array is sent all instances belonging       to entity will be included
	InstancesIds []string `json:"instances_ids,omitempty"`

	Key string `json:"key,omitempty"`

	Label string `json:"label,omitempty"`
}

type CreateSelfServiceReservationRequest ¶

type CreateSelfServiceReservationRequest struct {
	Item []CreateSelfServiceReservationRequestItemInner `json:"item,omitempty"`

	Notes string `json:"notes,omitempty"`

	Period FindSelfServiceReservations200ResponseReservationsInnerPeriod `json:"period,omitempty"`

	StartDate time.Time `json:"start_date,omitempty"`
}

type CreateSelfServiceReservationRequestItemInner ¶

type CreateSelfServiceReservationRequestItemInner struct {
	Amount float32 `json:"amount,omitempty"`

	MetroId string `json:"metro_id,omitempty"`

	PlanId string `json:"plan_id,omitempty"`

	Quantity int32 `json:"quantity,omitempty"`

	Term string `json:"term,omitempty"`
}

type CreateSpotMarketRequestRequest ¶

type CreateSpotMarketRequestRequest struct {
	DevicesMax int32 `json:"devices_max,omitempty"`

	DevicesMin int32 `json:"devices_min,omitempty"`

	EndAt time.Time `json:"end_at,omitempty"`

	Facilities []string `json:"facilities,omitempty"`

	InstanceAttributes CreateSpotMarketRequestRequestInstanceAttributes `json:"instance_attributes,omitempty"`

	MaxBidPrice float32 `json:"max_bid_price,omitempty"`

	// The metro ID or code the spot market request will be created in.
	Metro string `json:"metro,omitempty"`
}

type CreateSpotMarketRequestRequestInstanceAttributes ¶

type CreateSpotMarketRequestRequestInstanceAttributes struct {
	AlwaysPxe bool `json:"always_pxe,omitempty"`

	BillingCycle string `json:"billing_cycle,omitempty"`

	Customdata map[string]interface{} `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"`

	NoSshKeys bool `json:"no_ssh_keys,omitempty"`

	OperatingSystem string `json:"operating_system,omitempty"`

	Plan string `json:"plan,omitempty"`

	PrivateIpv4SubnetSize int32 `json:"private_ipv4_subnet_size,omitempty"`

	ProjectSshKeys []string `json:"project_ssh_keys,omitempty"`

	PublicIpv4SubnetSize int32 `json:"public_ipv4_subnet_size,omitempty"`

	Tags []string `json:"tags,omitempty"`

	TerminationTime time.Time `json:"termination_time,omitempty"`

	// The UUIDs of users whose SSH keys should be included on the provisioned device.
	UserSshKeys []string `json:"user_ssh_keys,omitempty"`

	Userdata string `json:"userdata,omitempty"`
}

type CreateTransferRequestRequest ¶

type CreateTransferRequestRequest struct {
	TargetOrganizationId string `json:"target_organization_id,omitempty"`
}

type CreateUserRequest ¶

type CreateUserRequest struct {
	Avatar *os.File `json:"avatar,omitempty"`

	CompanyName string `json:"company_name,omitempty"`

	CompanyUrl string `json:"company_url,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Emails []CreateUserRequestEmailsInner `json:"emails"`

	FirstName string `json:"first_name"`

	LastName string `json:"last_name"`

	Level string `json:"level,omitempty"`

	Locked bool `json:"locked,omitempty"`

	Password string `json:"password,omitempty"`

	PhoneNumber string `json:"phone_number,omitempty"`

	SocialAccounts map[string]interface{} `json:"social_accounts,omitempty"`

	Timezone string `json:"timezone,omitempty"`

	Title string `json:"title,omitempty"`

	TwoFactorAuth string `json:"two_factor_auth,omitempty"`

	VerifiedAt time.Time `json:"verified_at,omitempty"`
}

type CreateUserRequestEmailsInner ¶

type CreateUserRequestEmailsInner struct {
	Address string `json:"address"`

	Default bool `json:"default,omitempty"`
}

type CreateVirtualNetworkRequest ¶

type CreateVirtualNetworkRequest struct {
	Description string `json:"description,omitempty"`

	// The UUID (or facility code) for the Facility in which to create this Virtual network.
	Facility string `json:"facility,omitempty"`

	// The UUID (or metro code) for the Metro in which to create this Virtual Network.
	Metro string `json:"metro,omitempty"`

	ProjectId string `json:"project_id"`

	// VLAN ID between 2-3999. Must be unique for the project within the Metro in which this Virtual Network is being created. If no value is specified, the next-available VLAN ID in the range 1000-1999 will be automatically selected.
	Vxlan int32 `json:"vxlan,omitempty"`
}

type CreateVrfRequest ¶

type CreateVrfRequest struct {
	Description string `json:"description,omitempty"`

	// A list of CIDR network addresses. Like [\"10.0.0.0/16\", \"2001:d78::/56\"]. IPv4 blocks must be between /8 and /29 in size. IPv6 blocks must be between /56 and /64. A VRF\\'s IP ranges must be defined in order to create VRF IP Reservations, which can then be used for Metal Gateways or Virtual Circuits.
	IpRanges []string `json:"ip_ranges,omitempty"`

	LocalAsn int32 `json:"local_asn,omitempty"`

	// The UUID (or metro code) for the Metro in which to create this VRF.
	Metro string `json:"metro"`

	Name string `json:"name"`

	ProjectId string `json:"project_id"`
}

type DeleteApiKey401Response ¶

type DeleteApiKey401Response struct {

	// A description of the error that caused the request to fail.
	Error string `json:"error,omitempty"`

	// A list of errors that contributed to the request failing.
	Errors []string `json:"errors,omitempty"`
}

DeleteApiKey401Response - Error responses are included with 4xx and 5xx HTTP responses from the API service. Either \"error\" or \"errors\" will be set.

type Device ¶

type Device struct {
	AlwaysPxe bool `json:"always_pxe,omitempty"`

	BillingCycle string `json:"billing_cycle,omitempty"`

	BondingMode int32 `json:"bonding_mode,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	CreatedBy FindDeviceById200ResponseCreatedBy `json:"created_by,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Description string `json:"description,omitempty"`

	Facility FindDeviceById200ResponseFacility `json:"facility,omitempty"`

	HardwareReservation FindBatchById200ResponseDevicesInner `json:"hardware_reservation,omitempty"`

	Hostname string `json:"hostname,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	ImageUrl string `json:"image_url,omitempty"`

	IpAddresses []FindDeviceById200ResponseIpAddressesInner `json:"ip_addresses,omitempty"`

	IpxeScriptUrl string `json:"ipxe_script_url,omitempty"`

	Iqn string `json:"iqn,omitempty"`

	Locked bool `json:"locked,omitempty"`

	Metro FindDeviceById200ResponseFacilityMetro `json:"metro,omitempty"`

	// By default, servers at Equinix Metal are configured in a “bonded” mode using LACP (Link Aggregation Control Protocol). Each 2-NIC server is configured with a single bond (namely bond0) with both interfaces eth0 and eth1 as members of the bond in a default Layer 3 mode. Some device plans may have a different number of ports and bonds available.
	NetworkPorts []FindDeviceById200ResponseNetworkPortsInner `json:"network_ports,omitempty"`

	OperatingSystem FindDeviceById200ResponseOperatingSystem `json:"operating_system,omitempty"`

	// Actions supported by the device instance.
	Actions []FindDeviceById200ResponseActionsInner `json:"actions,omitempty"`

	Plan FindDeviceById200ResponsePlan `json:"plan,omitempty"`

	Project FindDeviceById200ResponseProject `json:"project,omitempty"`

	ProjectLite FindDeviceById200ResponseProjectLite `json:"project_lite,omitempty"`

	ProvisioningEvents []FindInterconnectionEvents200Response `json:"provisioning_events,omitempty"`

	// Only visible while device provisioning
	ProvisioningPercentage float32 `json:"provisioning_percentage,omitempty"`

	// Root password is automatically generated when server is provisioned and it is removed after 24 hours
	RootPassword string `json:"root_password,omitempty"`

	ShortId string `json:"short_id,omitempty"`

	// Whether or not the device is a spot instance.
	SpotInstance bool `json:"spot_instance,omitempty"`

	// The maximum price per hour you are willing to pay to keep this spot instance.  If you are outbid, the termination will be set allowing two minutes before shutdown.
	SpotPriceMax float32 `json:"spot_price_max,omitempty"`

	SshKeys []FindBatchById200ResponseDevicesInner `json:"ssh_keys,omitempty"`

	State string `json:"state,omitempty"`

	// Switch short id. This can be used to determine if two devices are connected to the same switch, for example.
	SwitchUuid string `json:"switch_uuid,omitempty"`

	Tags []string `json:"tags,omitempty"`

	// When the device will be terminated. This is commonly set in advance for ephemeral spot market instances but this field may also be set with on-demand and reservation instances to automatically delete the resource at a given time. The termination time can also be used to release a hardware reservation instance at a given time, keeping the reservation open for other uses.  On a spot market device, the termination time will be set automatically when outbid.
	TerminationTime time.Time `json:"termination_time,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	User string `json:"user,omitempty"`

	Userdata string `json:"userdata,omitempty"`

	Volumes []FindBatchById200ResponseDevicesInner `json:"volumes,omitempty"`
}

type DeviceCreateInFacilityInput ¶

type DeviceCreateInFacilityInput struct {

	// The datacenter where the device should be created.  Either metro or facility must be provided.  The API will accept either a single facility `{ \"facility\": \"f1\" }`, or it can be instructed to create the device in the best available datacenter `{ \"facility\": \"any\" }`.  Additionally it is possible to set a prioritized location selection. For example `{ \"facility\": [\"f3\", \"f2\", \"any\"] }` can be used to prioritize `f3` and then `f2` before accepting `any` facility. If none of the facilities provided have availability for the requested device the request will fail.
	Facility *AnyOfarraystring `json:"facility"`

	// When true, devices with a `custom_ipxe` OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot.
	AlwaysPxe bool `json:"always_pxe,omitempty"`

	// The billing cycle of the device.
	BillingCycle string `json:"billing_cycle,omitempty"`

	// Customdata is an arbitrary JSON value that can be accessed via the metadata service.
	Customdata *interface{} `json:"customdata,omitempty"`

	// Any description of the device or how it will be used. This may be used to inform other API consumers with project access.
	Description string `json:"description,omitempty"`

	// The features attribute allows you to optionally specify what features your server should have.  In the API shorthand syntax, all features listed are `required`:  “` { \"features\": [\"tpm\"] } “`  Alternatively, if you do not require a certain feature, but would prefer to be assigned a server with that feature if there are any available, you may specify that feature with a `preferred` value. The request will not fail if we have no servers with that feature in our inventory. The API offers an alternative syntax for mixing preferred and required features:  “` { \"features\": { \"tpm\": \"required\", \"raid\": \"preferred\" } } “`  The request will only fail if there are no available servers matching the required `tpm` criteria.
	Features []string `json:"features,omitempty"`

	// The Hardware Reservation UUID to provision. Alternatively, `next-available` can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details.
	HardwareReservationId string `json:"hardware_reservation_id,omitempty"`

	// The hostname to use within the operating system. The same hostname may be used on multiple devices within a project.
	Hostname string `json:"hostname,omitempty"`

	// The `ip_addresses attribute will allow you to specify the addresses you want created with your device.  The default value configures public IPv4, public IPv6, and private IPv4.  Private IPv4 address is required. When specifying `ip_addresses`, one of the array items must enable private IPv4.  Some operating systems require public IPv4 address. In those cases you will receive an error message if public IPv4 is not enabled.  For example, to only configure your server with a private IPv4 address, you can send `{ \"ip_addresses\": [{ \"address_family\": 4, \"public\": false }] }`.  It is possible to request a subnet size larger than a `/30` by assigning addresses using the UUID(s) of ip_reservations in your project.  For example, `{ \"ip_addresses\": [..., {\"address_family\": 4, \"public\": true, \"ip_reservations\": [\"uuid1\", \"uuid2\"]}] }`  To access a server without public IPs, you can use our Out-of-Band console access (SOS) or proxy through another server in the project with public IPs enabled.
	IpAddresses []CreateDeviceRequestOneOfAllOf1IpAddressesInner `json:"ip_addresses,omitempty"`

	// When set, the device will chainload an iPXE Script at boot fetched from the supplied URL.  See [Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/) for more details.
	IpxeScriptUrl string `json:"ipxe_script_url,omitempty"`

	// Whether the device should be locked, preventing accidental deletion.
	Locked bool `json:"locked,omitempty"`

	// Overrides default behaviour of attaching all of the organization members ssh keys and project ssh keys to device if no specific keys specified
	NoSshKeys bool `json:"no_ssh_keys,omitempty"`

	// The slug of the operating system to provision. Check the Equinix Metal operating system documentation for rules that may be imposed per operating system, including restrictions on IP address options and device plans.
	OperatingSystem string `json:"operating_system"`

	// The slug of the device plan to provision.
	Plan string `json:"plan"`

	// Deprecated. Use ip_addresses. Subnet range for addresses allocated to this device.
	PrivateIpv4SubnetSize float32 `json:"private_ipv4_subnet_size,omitempty"`

	// A list of UUIDs identifying the device parent project that should be authorized to access this device (typically via /root/.ssh/authorized_keys). These keys will also appear in the device metadata.  If no SSH keys are specified (`user_ssh_keys`, `project_ssh_keys`, and `ssh_keys` are all empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. This behaviour can be changed with 'no_ssh_keys' option to omit any SSH key being added.
	ProjectSshKeys []string `json:"project_ssh_keys,omitempty"`

	// Deprecated. Use ip_addresses. Subnet range for addresses allocated to this device. Your project must have addresses available for a non-default request.
	PublicIpv4SubnetSize float32 `json:"public_ipv4_subnet_size,omitempty"`

	SpotInstance bool `json:"spot_instance,omitempty"`

	SpotPriceMax float32 `json:"spot_price_max,omitempty"`

	// A list of new or existing project ssh_keys that should be authorized to access this device (typically via /root/.ssh/authorized_keys). These keys will also appear in the device metadata.  These keys are added in addition to any keys defined by   `project_ssh_keys` and `user_ssh_keys`.
	SshKeys []CreateDeviceRequestOneOfAllOf1SshKeysInner `json:"ssh_keys,omitempty"`

	Tags []string `json:"tags,omitempty"`

	TerminationTime time.Time `json:"termination_time,omitempty"`

	// A list of UUIDs identifying the users that should be authorized to access this device (typically via /root/.ssh/authorized_keys).  These keys will also appear in the device metadata.  The users must be members of the project or organization.  If no SSH keys are specified (`user_ssh_keys`, `project_ssh_keys`, and `ssh_keys` are all empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. This behaviour can be changed with 'no_ssh_keys' option to omit any SSH key being added.
	UserSshKeys []string `json:"user_ssh_keys,omitempty"`

	// The userdata presented in the metadata service for this device.  Userdata is fetched and interpreted by the operating system installed on the device. Acceptable formats are determined by the operating system, with the exception of a special iPXE enabling syntax which is handled before the operating system starts.  See [Server User Data](https://metal.equinix.com/developers/docs/servers/user-data/) and [Provisioning with Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/#provisioning-with-custom-ipxe) for more details.
	Userdata string `json:"userdata,omitempty"`
}

type DeviceCreateInFacilityInputAllOf ¶

type DeviceCreateInFacilityInputAllOf struct {

	// The datacenter where the device should be created.  Either metro or facility must be provided.  The API will accept either a single facility `{ \"facility\": \"f1\" }`, or it can be instructed to create the device in the best available datacenter `{ \"facility\": \"any\" }`.  Additionally it is possible to set a prioritized location selection. For example `{ \"facility\": [\"f3\", \"f2\", \"any\"] }` can be used to prioritize `f3` and then `f2` before accepting `any` facility. If none of the facilities provided have availability for the requested device the request will fail.
	Facility *AnyOfarraystring `json:"facility"`
}

type DeviceCreateInMetroInput ¶

type DeviceCreateInMetroInput struct {

	// Metro code or ID of where the instance should be provisioned in.  Either metro or facility must be provided.
	Metro string `json:"metro"`

	// When true, devices with a `custom_ipxe` OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot.
	AlwaysPxe bool `json:"always_pxe,omitempty"`

	// The billing cycle of the device.
	BillingCycle string `json:"billing_cycle,omitempty"`

	// Customdata is an arbitrary JSON value that can be accessed via the metadata service.
	Customdata *interface{} `json:"customdata,omitempty"`

	// Any description of the device or how it will be used. This may be used to inform other API consumers with project access.
	Description string `json:"description,omitempty"`

	// The features attribute allows you to optionally specify what features your server should have.  In the API shorthand syntax, all features listed are `required`:  “` { \"features\": [\"tpm\"] } “`  Alternatively, if you do not require a certain feature, but would prefer to be assigned a server with that feature if there are any available, you may specify that feature with a `preferred` value. The request will not fail if we have no servers with that feature in our inventory. The API offers an alternative syntax for mixing preferred and required features:  “` { \"features\": { \"tpm\": \"required\", \"raid\": \"preferred\" } } “`  The request will only fail if there are no available servers matching the required `tpm` criteria.
	Features []string `json:"features,omitempty"`

	// The Hardware Reservation UUID to provision. Alternatively, `next-available` can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details.
	HardwareReservationId string `json:"hardware_reservation_id,omitempty"`

	// The hostname to use within the operating system. The same hostname may be used on multiple devices within a project.
	Hostname string `json:"hostname,omitempty"`

	// The `ip_addresses attribute will allow you to specify the addresses you want created with your device.  The default value configures public IPv4, public IPv6, and private IPv4.  Private IPv4 address is required. When specifying `ip_addresses`, one of the array items must enable private IPv4.  Some operating systems require public IPv4 address. In those cases you will receive an error message if public IPv4 is not enabled.  For example, to only configure your server with a private IPv4 address, you can send `{ \"ip_addresses\": [{ \"address_family\": 4, \"public\": false }] }`.  It is possible to request a subnet size larger than a `/30` by assigning addresses using the UUID(s) of ip_reservations in your project.  For example, `{ \"ip_addresses\": [..., {\"address_family\": 4, \"public\": true, \"ip_reservations\": [\"uuid1\", \"uuid2\"]}] }`  To access a server without public IPs, you can use our Out-of-Band console access (SOS) or proxy through another server in the project with public IPs enabled.
	IpAddresses []CreateDeviceRequestOneOfAllOf1IpAddressesInner `json:"ip_addresses,omitempty"`

	// When set, the device will chainload an iPXE Script at boot fetched from the supplied URL.  See [Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/) for more details.
	IpxeScriptUrl string `json:"ipxe_script_url,omitempty"`

	// Whether the device should be locked, preventing accidental deletion.
	Locked bool `json:"locked,omitempty"`

	// Overrides default behaviour of attaching all of the organization members ssh keys and project ssh keys to device if no specific keys specified
	NoSshKeys bool `json:"no_ssh_keys,omitempty"`

	// The slug of the operating system to provision. Check the Equinix Metal operating system documentation for rules that may be imposed per operating system, including restrictions on IP address options and device plans.
	OperatingSystem string `json:"operating_system"`

	// The slug of the device plan to provision.
	Plan string `json:"plan"`

	// Deprecated. Use ip_addresses. Subnet range for addresses allocated to this device.
	PrivateIpv4SubnetSize float32 `json:"private_ipv4_subnet_size,omitempty"`

	// A list of UUIDs identifying the device parent project that should be authorized to access this device (typically via /root/.ssh/authorized_keys). These keys will also appear in the device metadata.  If no SSH keys are specified (`user_ssh_keys`, `project_ssh_keys`, and `ssh_keys` are all empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. This behaviour can be changed with 'no_ssh_keys' option to omit any SSH key being added.
	ProjectSshKeys []string `json:"project_ssh_keys,omitempty"`

	// Deprecated. Use ip_addresses. Subnet range for addresses allocated to this device. Your project must have addresses available for a non-default request.
	PublicIpv4SubnetSize float32 `json:"public_ipv4_subnet_size,omitempty"`

	SpotInstance bool `json:"spot_instance,omitempty"`

	SpotPriceMax float32 `json:"spot_price_max,omitempty"`

	// A list of new or existing project ssh_keys that should be authorized to access this device (typically via /root/.ssh/authorized_keys). These keys will also appear in the device metadata.  These keys are added in addition to any keys defined by   `project_ssh_keys` and `user_ssh_keys`.
	SshKeys []CreateDeviceRequestOneOfAllOf1SshKeysInner `json:"ssh_keys,omitempty"`

	Tags []string `json:"tags,omitempty"`

	TerminationTime time.Time `json:"termination_time,omitempty"`

	// A list of UUIDs identifying the users that should be authorized to access this device (typically via /root/.ssh/authorized_keys).  These keys will also appear in the device metadata.  The users must be members of the project or organization.  If no SSH keys are specified (`user_ssh_keys`, `project_ssh_keys`, and `ssh_keys` are all empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. This behaviour can be changed with 'no_ssh_keys' option to omit any SSH key being added.
	UserSshKeys []string `json:"user_ssh_keys,omitempty"`

	// The userdata presented in the metadata service for this device.  Userdata is fetched and interpreted by the operating system installed on the device. Acceptable formats are determined by the operating system, with the exception of a special iPXE enabling syntax which is handled before the operating system starts.  See [Server User Data](https://metal.equinix.com/developers/docs/servers/user-data/) and [Provisioning with Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/#provisioning-with-custom-ipxe) for more details.
	Userdata string `json:"userdata,omitempty"`
}

type DeviceCreateInput ¶

type DeviceCreateInput struct {

	// When true, devices with a `custom_ipxe` OS will always boot to iPXE. The default setting of false ensures that iPXE will be used on only the first boot.
	AlwaysPxe bool `json:"always_pxe,omitempty"`

	// The billing cycle of the device.
	BillingCycle string `json:"billing_cycle,omitempty"`

	// Customdata is an arbitrary JSON value that can be accessed via the metadata service.
	Customdata *interface{} `json:"customdata,omitempty"`

	// Any description of the device or how it will be used. This may be used to inform other API consumers with project access.
	Description string `json:"description,omitempty"`

	// The features attribute allows you to optionally specify what features your server should have.  In the API shorthand syntax, all features listed are `required`:  “` { \"features\": [\"tpm\"] } “`  Alternatively, if you do not require a certain feature, but would prefer to be assigned a server with that feature if there are any available, you may specify that feature with a `preferred` value. The request will not fail if we have no servers with that feature in our inventory. The API offers an alternative syntax for mixing preferred and required features:  “` { \"features\": { \"tpm\": \"required\", \"raid\": \"preferred\" } } “`  The request will only fail if there are no available servers matching the required `tpm` criteria.
	Features []string `json:"features,omitempty"`

	// The Hardware Reservation UUID to provision. Alternatively, `next-available` can be specified to select from any of the available hardware reservations. An error will be returned if the requested reservation option is not available.  See [Reserved Hardware](https://metal.equinix.com/developers/docs/deploy/reserved/) for more details.
	HardwareReservationId string `json:"hardware_reservation_id,omitempty"`

	// The hostname to use within the operating system. The same hostname may be used on multiple devices within a project.
	Hostname string `json:"hostname,omitempty"`

	// The `ip_addresses attribute will allow you to specify the addresses you want created with your device.  The default value configures public IPv4, public IPv6, and private IPv4.  Private IPv4 address is required. When specifying `ip_addresses`, one of the array items must enable private IPv4.  Some operating systems require public IPv4 address. In those cases you will receive an error message if public IPv4 is not enabled.  For example, to only configure your server with a private IPv4 address, you can send `{ \"ip_addresses\": [{ \"address_family\": 4, \"public\": false }] }`.  It is possible to request a subnet size larger than a `/30` by assigning addresses using the UUID(s) of ip_reservations in your project.  For example, `{ \"ip_addresses\": [..., {\"address_family\": 4, \"public\": true, \"ip_reservations\": [\"uuid1\", \"uuid2\"]}] }`  To access a server without public IPs, you can use our Out-of-Band console access (SOS) or proxy through another server in the project with public IPs enabled.
	IpAddresses []CreateDeviceRequestOneOfAllOf1IpAddressesInner `json:"ip_addresses,omitempty"`

	// When set, the device will chainload an iPXE Script at boot fetched from the supplied URL.  See [Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/) for more details.
	IpxeScriptUrl string `json:"ipxe_script_url,omitempty"`

	// Whether the device should be locked, preventing accidental deletion.
	Locked bool `json:"locked,omitempty"`

	// Overrides default behaviour of attaching all of the organization members ssh keys and project ssh keys to device if no specific keys specified
	NoSshKeys bool `json:"no_ssh_keys,omitempty"`

	// The slug of the operating system to provision. Check the Equinix Metal operating system documentation for rules that may be imposed per operating system, including restrictions on IP address options and device plans.
	OperatingSystem string `json:"operating_system"`

	// The slug of the device plan to provision.
	Plan string `json:"plan"`

	// Deprecated. Use ip_addresses. Subnet range for addresses allocated to this device.
	PrivateIpv4SubnetSize float32 `json:"private_ipv4_subnet_size,omitempty"`

	// A list of UUIDs identifying the device parent project that should be authorized to access this device (typically via /root/.ssh/authorized_keys). These keys will also appear in the device metadata.  If no SSH keys are specified (`user_ssh_keys`, `project_ssh_keys`, and `ssh_keys` are all empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. This behaviour can be changed with 'no_ssh_keys' option to omit any SSH key being added.
	ProjectSshKeys []string `json:"project_ssh_keys,omitempty"`

	// Deprecated. Use ip_addresses. Subnet range for addresses allocated to this device. Your project must have addresses available for a non-default request.
	PublicIpv4SubnetSize float32 `json:"public_ipv4_subnet_size,omitempty"`

	SpotInstance bool `json:"spot_instance,omitempty"`

	SpotPriceMax float32 `json:"spot_price_max,omitempty"`

	// A list of new or existing project ssh_keys that should be authorized to access this device (typically via /root/.ssh/authorized_keys). These keys will also appear in the device metadata.  These keys are added in addition to any keys defined by   `project_ssh_keys` and `user_ssh_keys`.
	SshKeys []CreateDeviceRequestOneOfAllOf1SshKeysInner `json:"ssh_keys,omitempty"`

	Tags []string `json:"tags,omitempty"`

	TerminationTime time.Time `json:"termination_time,omitempty"`

	// A list of UUIDs identifying the users that should be authorized to access this device (typically via /root/.ssh/authorized_keys).  These keys will also appear in the device metadata.  The users must be members of the project or organization.  If no SSH keys are specified (`user_ssh_keys`, `project_ssh_keys`, and `ssh_keys` are all empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. This behaviour can be changed with 'no_ssh_keys' option to omit any SSH key being added.
	UserSshKeys []string `json:"user_ssh_keys,omitempty"`

	// The userdata presented in the metadata service for this device.  Userdata is fetched and interpreted by the operating system installed on the device. Acceptable formats are determined by the operating system, with the exception of a special iPXE enabling syntax which is handled before the operating system starts.  See [Server User Data](https://metal.equinix.com/developers/docs/servers/user-data/) and [Provisioning with Custom iPXE](https://metal.equinix.com/developers/docs/operating-systems/custom-ipxe/#provisioning-with-custom-ipxe) for more details.
	Userdata string `json:"userdata,omitempty"`
}

type DeviceList ¶

type DeviceList struct {
	Devices []FindDeviceById200Response `json:"devices,omitempty"`

	Meta FindDeviceEvents200ResponseMeta `json:"meta,omitempty"`
}

type DeviceUpdateInput ¶

type DeviceUpdateInput struct {
	AlwaysPxe bool `json:"always_pxe,omitempty"`

	BillingCycle string `json:"billing_cycle,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Description string `json:"description,omitempty"`

	Hostname string `json:"hostname,omitempty"`

	IpxeScriptUrl string `json:"ipxe_script_url,omitempty"`

	Locked bool `json:"locked,omitempty"`

	// If true, this instance can not be converted to a different network type.
	NetworkFrozen bool `json:"network_frozen,omitempty"`

	SpotInstance bool `json:"spot_instance,omitempty"`

	Tags []string `json:"tags,omitempty"`

	Userdata string `json:"userdata,omitempty"`
}

type DeviceUsage ¶

type DeviceUsage struct {
	Quantity string `json:"quantity,omitempty"`

	Total string `json:"total,omitempty"`

	Unit string `json:"unit,omitempty"`
}

type DeviceUsageList ¶

type DeviceUsageList struct {
	Usages []FindDeviceUsages200ResponseUsagesInner `json:"usages,omitempty"`
}

type Email ¶

type Email struct {
	Address string `json:"address,omitempty"`

	Default bool `json:"default,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Verified bool `json:"verified,omitempty"`
}

type EmailInput ¶

type EmailInput struct {
	Address string `json:"address"`

	Default bool `json:"default,omitempty"`
}

type Entitlement ¶

type Entitlement struct {
	Description string `json:"description,omitempty"`

	FeatureAccess map[string]interface{} `json:"feature_access,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id"`

	InstanceQuota map[string]interface{} `json:"instance_quota,omitempty"`

	IpQuota map[string]interface{} `json:"ip_quota,omitempty"`

	Name string `json:"name,omitempty"`

	ProjectQuota int32 `json:"project_quota,omitempty"`

	Slug string `json:"slug"`

	VolumeLimits map[string]interface{} `json:"volume_limits,omitempty"`

	VolumeQuota map[string]interface{} `json:"volume_quota,omitempty"`

	Weight int32 `json:"weight"`
}

type Error ¶

type Error struct {

	// A description of the error that caused the request to fail.
	Error string `json:"error,omitempty"`

	// A list of errors that contributed to the request failing.
	Errors []string `json:"errors,omitempty"`
}

Error - Error responses are included with 4xx and 5xx HTTP responses from the API service. Either \"error\" or \"errors\" will be set.

type Event ¶

type Event struct {
	Body string `json:"body,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Interpolated string `json:"interpolated,omitempty"`

	Relationships []FindBatchById200ResponseDevicesInner `json:"relationships,omitempty"`

	State string `json:"state,omitempty"`

	Type string `json:"type,omitempty"`
}

type EventList ¶

type EventList struct {
	Events []FindInterconnectionEvents200Response `json:"events,omitempty"`

	Meta FindDeviceEvents200ResponseMeta `json:"meta,omitempty"`
}

type FabricServiceToken ¶

type FabricServiceToken struct {

	// The expiration date and time of the Fabric service token. Once a service token is expired, it is no longer redeemable.
	ExpiresAt time.Time `json:"expires_at,omitempty"`

	// The UUID that can be used on the Fabric Portal to redeem either an A-Side or Z-Side Service Token. For Fabric VCs (Metal Billed), this UUID will represent an A-Side Service Token, which will allow interconnections to be made from Equinix Metal to other Service Providers on Fabric. For Fabric VCs (Fabric Billed), this UUID will represent a Z-Side Service Token, which will allow interconnections to be made to connect an owned Fabric Port or  Virtual Device to Equinix Metal.
	Id string `json:"id,omitempty"`

	// The maximum speed that can be selected on the Fabric Portal when configuring a interconnection with either  an A-Side or Z-Side Service Token. For Fabric VCs (Metal Billed), this is what the billing is based off of, and can be one of the following options, '50mbps', '200mbps', '500mbps', '1gbps', '2gbps', '5gbps' or '10gbps'. For Fabric VCs (Fabric Billed), this will default to 10Gbps.
	MaxAllowedSpeed int32 `json:"max_allowed_speed,omitempty"`

	// Either primary or secondary, depending on which interconnection the service token is associated to.
	Role string `json:"role,omitempty"`

	// Either 'a_side' or 'z_side', depending on which type of Fabric VC was requested.
	ServiceTokenType string `json:"service_token_type,omitempty"`

	// The state of the service token that corresponds with the service token state on Fabric. An 'inactive' state refers to a token that has not been redeemed yet on the Fabric side, an 'active' state refers to a token that has already been redeemed, and an 'expired' state refers to a token that has reached its expiry time.
	State string `json:"state,omitempty"`
}

type Facility ¶

type Facility struct {
	Address FindDeviceById200ResponseFacilityAddress `json:"address,omitempty"`

	Code string `json:"code,omitempty"`

	Features []string `json:"features,omitempty"`

	Id string `json:"id,omitempty"`

	// IP ranges registered in facility. Can be used for GeoIP location
	IpRanges []string `json:"ip_ranges,omitempty"`

	Metro FindDeviceById200ResponseFacilityMetro `json:"metro,omitempty"`

	Name string `json:"name,omitempty"`
}

type FacilityList ¶

type FacilityList struct {
	Facilities []FindDeviceById200ResponseFacility `json:"facilities,omitempty"`
}

type FindBatchById200Response ¶

type FindBatchById200Response struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	Devices []FindBatchById200ResponseDevicesInner `json:"devices,omitempty"`

	ErrorMessages []string `json:"error_messages,omitempty"`

	Id string `json:"id,omitempty"`

	Project FindBatchById200ResponseDevicesInner `json:"project,omitempty"`

	Quantity int32 `json:"quantity,omitempty"`

	State string `json:"state,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

type FindBatchById200ResponseDevicesInner ¶

type FindBatchById200ResponseDevicesInner struct {
	Href string `json:"href"`
}

type FindBatchesByProject200Response ¶

type FindBatchesByProject200Response struct {
	Batches []FindBatchById200Response `json:"batches,omitempty"`
}

type FindBgpConfigByProject200Response ¶

type FindBgpConfigByProject200Response struct {

	// Autonomous System Number. ASN is required with Global BGP. With Local BGP the private ASN, 65000, is assigned.
	Asn int32 `json:"asn,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	// In a Local BGP deployment, a customer uses an internal ASN to control routes within a single Equinix Metal datacenter. This means that the routes are never advertised to the global Internet. Global BGP, on the other hand, requires a customer to have a registered ASN and IP space.
	DeploymentType string `json:"deployment_type,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	// The maximum number of route filters allowed per server
	MaxPrefix int32 `json:"max_prefix,omitempty"`

	// (Optional) Password for BGP session in plaintext (not a checksum)
	Md5 *string `json:"md5,omitempty"`

	Project FindBatchById200ResponseDevicesInner `json:"project,omitempty"`

	// The IP block ranges associated to the ASN (Populated in Global BGP only)
	Ranges []FindBgpConfigByProject200ResponseRangesInner `json:"ranges,omitempty"`

	RequestedAt time.Time `json:"requested_at,omitempty"`

	// Specifies AS-MACRO (aka AS-SET) to use when building client route filters
	RouteObject string `json:"route_object,omitempty"`

	// The direct connections between neighboring routers that want to exchange routing information.
	Sessions []FindBgpSessionById200Response `json:"sessions,omitempty"`

	// Status of the BGP Config. Status \"requested\" is valid only with the \"global\" deployment_type.
	Status string `json:"status,omitempty"`
}

type FindBgpConfigByProject200ResponseRangesInner ¶

type FindBgpConfigByProject200ResponseRangesInner struct {
	AddressFamily int32 `json:"address_family,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Project FindBatchById200ResponseDevicesInner `json:"project,omitempty"`

	Range string `json:"range,omitempty"`
}

type FindBgpSessionById200Response ¶

type FindBgpSessionById200Response struct {
	AddressFamily string `json:"address_family"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	DefaultRoute bool `json:"default_route,omitempty"`

	Device FindBatchById200ResponseDevicesInner `json:"device,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	LearnedRoutes []string `json:"learned_routes,omitempty"`

	//  The status of the BGP Session. Multiple status values may be reported when the device is connected to multiple switches, one value per switch. Each status will start with \"unknown\" and progress to \"up\" or \"down\" depending on the connected device. Subsequent \"unknown\" values indicate a problem acquiring status from the switch.
	Status string `json:"status,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

type FindBgpSessions200Response ¶

type FindBgpSessions200Response struct {
	BgpSessions []FindBgpSessionById200Response `json:"bgp_sessions,omitempty"`
}

type FindCapacityForFacility200Response ¶

type FindCapacityForFacility200Response struct {
	Capacity FindCapacityForFacility200ResponseCapacity `json:"capacity,omitempty"`
}

type FindCapacityForFacility200ResponseCapacity ¶

type FindCapacityForFacility200ResponseCapacity struct {
	Ams1 FindCapacityForFacility200ResponseCapacityAms1 `json:"ams1,omitempty"`

	Atl1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"atl1,omitempty"`

	Dfw1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"dfw1,omitempty"`

	Ewr1 FindCapacityForFacility200ResponseCapacityAms1 `json:"ewr1,omitempty"`

	Fra1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"fra1,omitempty"`

	Iad1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"iad1,omitempty"`

	Lax1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"lax1,omitempty"`

	Nrt1 FindCapacityForFacility200ResponseCapacityAms1 `json:"nrt1,omitempty"`

	Ord1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"ord1,omitempty"`

	Sea1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"sea1,omitempty"`

	Sin1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"sin1,omitempty"`

	Sjc1 FindCapacityForFacility200ResponseCapacityAms1 `json:"sjc1,omitempty"`

	Syd1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"syd1,omitempty"`

	Yyz1 FindCapacityForFacility200ResponseCapacityAtl1 `json:"yyz1,omitempty"`
}

type FindCapacityForFacility200ResponseCapacityAms1 ¶

type FindCapacityForFacility200ResponseCapacityAms1 struct {
	Baremetal0 FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"baremetal_0,omitempty"`

	Baremetal1 FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"baremetal_1,omitempty"`

	Baremetal2 FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"baremetal_2,omitempty"`

	Baremetal2a FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"baremetal_2a,omitempty"`

	Baremetal2a2 FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"baremetal_2a2,omitempty"`

	Baremetal3 FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"baremetal_3,omitempty"`

	BaremetalS FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"baremetal_s,omitempty"`

	C2MediumX86 FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"c2.medium.x86,omitempty"`

	M2XlargeX86 FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"m2.xlarge.x86,omitempty"`
}

type FindCapacityForFacility200ResponseCapacityAms1Baremetal0 ¶

type FindCapacityForFacility200ResponseCapacityAms1Baremetal0 struct {
	Level string `json:"level,omitempty"`
}

type FindCapacityForFacility200ResponseCapacityAtl1 ¶

type FindCapacityForFacility200ResponseCapacityAtl1 struct {
	Baremetal1e FindCapacityForFacility200ResponseCapacityAms1Baremetal0 `json:"baremetal_1e,omitempty"`
}

type FindCapacityForMetro200Response ¶

type FindCapacityForMetro200Response struct {
	Capacity FindCapacityForMetro200ResponseCapacity `json:"capacity,omitempty"`
}

type FindCapacityForMetro200ResponseCapacity ¶

type FindDeviceById200Response ¶

type FindDeviceById200Response struct {
	AlwaysPxe bool `json:"always_pxe,omitempty"`

	BillingCycle string `json:"billing_cycle,omitempty"`

	BondingMode int32 `json:"bonding_mode,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	CreatedBy FindDeviceById200ResponseCreatedBy `json:"created_by,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Description string `json:"description,omitempty"`

	Facility FindDeviceById200ResponseFacility `json:"facility,omitempty"`

	HardwareReservation FindBatchById200ResponseDevicesInner `json:"hardware_reservation,omitempty"`

	Hostname string `json:"hostname,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	ImageUrl string `json:"image_url,omitempty"`

	IpAddresses []FindDeviceById200ResponseIpAddressesInner `json:"ip_addresses,omitempty"`

	IpxeScriptUrl string `json:"ipxe_script_url,omitempty"`

	Iqn string `json:"iqn,omitempty"`

	Locked bool `json:"locked,omitempty"`

	Metro FindDeviceById200ResponseFacilityMetro `json:"metro,omitempty"`

	// By default, servers at Equinix Metal are configured in a “bonded” mode using LACP (Link Aggregation Control Protocol). Each 2-NIC server is configured with a single bond (namely bond0) with both interfaces eth0 and eth1 as members of the bond in a default Layer 3 mode. Some device plans may have a different number of ports and bonds available.
	NetworkPorts []FindDeviceById200ResponseNetworkPortsInner `json:"network_ports,omitempty"`

	OperatingSystem FindDeviceById200ResponseOperatingSystem `json:"operating_system,omitempty"`

	// Actions supported by the device instance.
	Actions []FindDeviceById200ResponseActionsInner `json:"actions,omitempty"`

	Plan FindDeviceById200ResponsePlan `json:"plan,omitempty"`

	Project FindDeviceById200ResponseProject `json:"project,omitempty"`

	ProjectLite FindDeviceById200ResponseProjectLite `json:"project_lite,omitempty"`

	ProvisioningEvents []FindInterconnectionEvents200Response `json:"provisioning_events,omitempty"`

	// Only visible while device provisioning
	ProvisioningPercentage float32 `json:"provisioning_percentage,omitempty"`

	// Root password is automatically generated when server is provisioned and it is removed after 24 hours
	RootPassword string `json:"root_password,omitempty"`

	ShortId string `json:"short_id,omitempty"`

	// Whether or not the device is a spot instance.
	SpotInstance bool `json:"spot_instance,omitempty"`

	// The maximum price per hour you are willing to pay to keep this spot instance.  If you are outbid, the termination will be set allowing two minutes before shutdown.
	SpotPriceMax float32 `json:"spot_price_max,omitempty"`

	SshKeys []FindBatchById200ResponseDevicesInner `json:"ssh_keys,omitempty"`

	State string `json:"state,omitempty"`

	// Switch short id. This can be used to determine if two devices are connected to the same switch, for example.
	SwitchUuid string `json:"switch_uuid,omitempty"`

	Tags []string `json:"tags,omitempty"`

	// When the device will be terminated. This is commonly set in advance for ephemeral spot market instances but this field may also be set with on-demand and reservation instances to automatically delete the resource at a given time. The termination time can also be used to release a hardware reservation instance at a given time, keeping the reservation open for other uses.  On a spot market device, the termination time will be set automatically when outbid.
	TerminationTime time.Time `json:"termination_time,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	User string `json:"user,omitempty"`

	Userdata string `json:"userdata,omitempty"`

	Volumes []FindBatchById200ResponseDevicesInner `json:"volumes,omitempty"`
}

type FindDeviceById200ResponseActionsInner ¶

type FindDeviceById200ResponseActionsInner struct {
	Type string `json:"type,omitempty"`

	Name string `json:"name,omitempty"`
}

type FindDeviceById200ResponseCreatedBy ¶

type FindDeviceById200ResponseCreatedBy struct {

	// Avatar thumbnail URL of the User
	AvatarThumbUrl string `json:"avatar_thumb_url,omitempty"`

	// When the user was created
	CreatedAt time.Time `json:"created_at,omitempty"`

	// Primary email address of the User
	Email string `json:"email,omitempty"`

	// First name of the User
	FirstName string `json:"first_name,omitempty"`

	// Full name of the User
	FullName string `json:"full_name,omitempty"`

	// API URL uniquely representing the User
	Href string `json:"href,omitempty"`

	// ID of the User
	Id string `json:"id"`

	// Last name of the User
	LastName string `json:"last_name,omitempty"`

	// Short ID of the User
	ShortId string `json:"short_id"`

	// When the user details were last updated
	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

type FindDeviceById200ResponseCreatedByAllOf ¶

type FindDeviceById200ResponseCreatedByAllOf struct {

	// Avatar thumbnail URL of the User
	AvatarThumbUrl string `json:"avatar_thumb_url,omitempty"`

	// When the user was created
	CreatedAt time.Time `json:"created_at,omitempty"`

	// Primary email address of the User
	Email string `json:"email,omitempty"`

	// First name of the User
	FirstName string `json:"first_name,omitempty"`

	// Full name of the User
	FullName string `json:"full_name,omitempty"`

	// API URL uniquely representing the User
	Href string `json:"href,omitempty"`

	// ID of the User
	Id string `json:"id"`

	// Last name of the User
	LastName string `json:"last_name,omitempty"`

	// Short ID of the User
	ShortId string `json:"short_id"`

	// When the user details were last updated
	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

type FindDeviceById200ResponseFacility ¶

type FindDeviceById200ResponseFacility struct {
	Address FindDeviceById200ResponseFacilityAddress `json:"address,omitempty"`

	Code string `json:"code,omitempty"`

	Features []string `json:"features,omitempty"`

	Id string `json:"id,omitempty"`

	// IP ranges registered in facility. Can be used for GeoIP location
	IpRanges []string `json:"ip_ranges,omitempty"`

	Metro FindDeviceById200ResponseFacilityMetro `json:"metro,omitempty"`

	Name string `json:"name,omitempty"`
}

type FindDeviceById200ResponseFacilityAddress ¶

type FindDeviceById200ResponseFacilityAddress struct {
	Address string `json:"address"`

	Address2 string `json:"address2,omitempty"`

	City string `json:"city,omitempty"`

	Coordinates FindDeviceById200ResponseFacilityAddressCoordinates `json:"coordinates,omitempty"`

	Country string `json:"country"`

	State string `json:"state,omitempty"`

	ZipCode string `json:"zip_code"`
}

type FindDeviceById200ResponseFacilityAddressCoordinates ¶

type FindDeviceById200ResponseFacilityAddressCoordinates struct {
	Latitude string `json:"latitude,omitempty"`

	Longitude string `json:"longitude,omitempty"`
}

type FindDeviceById200ResponseFacilityMetro ¶

type FindDeviceById200ResponseFacilityMetro struct {
	Code string `json:"code,omitempty"`

	Country string `json:"country,omitempty"`

	Id string `json:"id,omitempty"`

	Name string `json:"name,omitempty"`
}

type FindDeviceById200ResponseIpAddressesInner ¶

type FindDeviceById200ResponseIpAddressesInner struct {
	Address string `json:"address,omitempty"`

	AddressFamily int32 `json:"address_family,omitempty"`

	AssignedTo FindBatchById200ResponseDevicesInner `json:"assigned_to,omitempty"`

	Cidr int32 `json:"cidr,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	Enabled bool `json:"enabled,omitempty"`

	Gateway string `json:"gateway,omitempty"`

	GlobalIp bool `json:"global_ip,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Manageable bool `json:"manageable,omitempty"`

	Management bool `json:"management,omitempty"`

	Metro FindDeviceById200ResponseIpAddressesInnerMetro `json:"metro,omitempty"`

	Netmask string `json:"netmask,omitempty"`

	Network string `json:"network,omitempty"`

	ParentBlock FindDeviceById200ResponseIpAddressesInnerParentBlock `json:"parent_block,omitempty"`

	Public bool `json:"public,omitempty"`
}

type FindDeviceById200ResponseIpAddressesInnerMetro ¶

type FindDeviceById200ResponseIpAddressesInnerMetro struct {
	Code string `json:"code,omitempty"`

	Country string `json:"country,omitempty"`

	Id string `json:"id,omitempty"`

	Name string `json:"name,omitempty"`
}

type FindDeviceById200ResponseIpAddressesInnerParentBlock ¶

type FindDeviceById200ResponseIpAddressesInnerParentBlock struct {
	Cidr int32 `json:"cidr,omitempty"`

	Href string `json:"href,omitempty"`

	Netmask string `json:"netmask,omitempty"`

	Network string `json:"network,omitempty"`
}

type FindDeviceById200ResponseNetworkPortsInner ¶

type FindDeviceById200ResponseNetworkPortsInner struct {
	Bond FindDeviceById200ResponseNetworkPortsInnerBond `json:"bond,omitempty"`

	Data FindDeviceById200ResponseNetworkPortsInnerData `json:"data,omitempty"`

	// Indicates whether or not the bond can be broken on the port (when applicable).
	DisbondOperationSupported bool `json:"disbond_operation_supported,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Name string `json:"name,omitempty"`

	// Type is either \"NetworkBondPort\" for bond ports or \"NetworkPort\" for bondable ethernet ports
	Type string `json:"type,omitempty"`

	// Composite network type of the bond
	NetworkType string `json:"network_type,omitempty"`

	NativeVirtualNetwork FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetwork `json:"native_virtual_network,omitempty"`

	VirtualNetworks []FindBatchById200ResponseDevicesInner `json:"virtual_networks,omitempty"`
}

FindDeviceById200ResponseNetworkPortsInner - Port is a hardware port associated with a reserved or instantiated hardware device.

type FindDeviceById200ResponseNetworkPortsInnerBond ¶

type FindDeviceById200ResponseNetworkPortsInnerBond struct {

	// ID of the bonding port
	Id string `json:"id,omitempty"`

	// Name of the port interface for the bond (\"bond0\")
	Name string `json:"name,omitempty"`
}

type FindDeviceById200ResponseNetworkPortsInnerData ¶

type FindDeviceById200ResponseNetworkPortsInnerData struct {

	// MAC address is set for NetworkPort ports
	Mac string `json:"mac,omitempty"`

	// Bonded is true for NetworkPort ports in a bond and NetworkBondPort ports that are active
	Bonded bool `json:"bonded,omitempty"`
}

type FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetwork ¶

type FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetwork struct {
	AssignedTo FindBatchById200ResponseDevicesInner `json:"assigned_to,omitempty"`

	// True if the virtual network is attached to a virtual circuit. False if not.
	AssignedToVirtualCircuit bool `json:"assigned_to_virtual_circuit,omitempty"`

	Description string `json:"description,omitempty"`

	Facility FindBatchById200ResponseDevicesInner `json:"facility,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	// A list of instances with ports currently associated to this Virtual Network.
	Instances []FindBatchById200ResponseDevicesInner `json:"instances,omitempty"`

	// A list of metal gateways currently associated to this Virtual Network.
	MetalGateways []FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetworkMetalGatewaysInner `json:"metal_gateways,omitempty"`

	Metro FindBatchById200ResponseDevicesInner `json:"metro,omitempty"`

	// The Metro code of the metro in which this Virtual Network is defined.
	MetroCode string `json:"metro_code,omitempty"`

	Vxlan int32 `json:"vxlan,omitempty"`
}

type FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetworkMetalGatewaysInner ¶

type FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetworkMetalGatewaysInner struct {
	CreatedAt time.Time `json:"created_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"`

	Href string `json:"href,omitempty"`

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

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	// The VLAN id of the Virtual Network record associated to this Metal Gateway. Example: 1001.
	Vlan float32 `json:"vlan,omitempty"`
}

type FindDeviceById200ResponseOperatingSystem ¶

type FindDeviceById200ResponseOperatingSystem struct {
	Distro string `json:"distro,omitempty"`

	Id string `json:"id,omitempty"`

	// Licenced OS is priced according to pricing property
	Licensed bool `json:"licensed,omitempty"`

	Name string `json:"name,omitempty"`

	// Servers can be already preinstalled with OS in order to shorten provision time.
	Preinstallable bool `json:"preinstallable,omitempty"`

	// This object contains price per time unit and optional multiplier value if licence price depends on hardware plan or components (e.g. number of cores)
	Pricing map[string]interface{} `json:"pricing,omitempty"`

	ProvisionableOn []string `json:"provisionable_on,omitempty"`

	Slug string `json:"slug,omitempty"`

	Version string `json:"version,omitempty"`
}

type FindDeviceById200ResponsePlan ¶

type FindDeviceById200ResponsePlan struct {

	// Shows which facilities the plan is available in, and the facility-based price if it is different from the default price.
	AvailableIn []FindDeviceById200ResponsePlanAvailableInInner `json:"available_in,omitempty"`

	// Shows which metros the plan is available in, and the metro-based price if it is different from the default price.
	AvailableInMetros []FindDeviceById200ResponsePlanAvailableInMetrosInner `json:"available_in_metros,omitempty"`

	Class string `json:"class,omitempty"`

	Description string `json:"description,omitempty"`

	DeploymentTypes []string `json:"deployment_types,omitempty"`

	Id string `json:"id,omitempty"`

	Legacy bool `json:"legacy,omitempty"`

	Line string `json:"line,omitempty"`

	Name string `json:"name,omitempty"`

	Pricing map[string]interface{} `json:"pricing,omitempty"`

	Slug string `json:"slug,omitempty"`

	Specs FindDeviceById200ResponsePlanSpecs `json:"specs,omitempty"`

	// The plan type
	Type string `json:"type,omitempty"`
}

type FindDeviceById200ResponsePlanAvailableInInner ¶

type FindDeviceById200ResponsePlanAvailableInInner struct {

	// href to the Facility
	Href string `json:"href,omitempty"`

	Price FindDeviceById200ResponsePlanAvailableInInnerPrice `json:"price,omitempty"`
}

type FindDeviceById200ResponsePlanAvailableInInnerPrice ¶

type FindDeviceById200ResponsePlanAvailableInInnerPrice struct {
	Hour float32 `json:"hour,omitempty"`
}

type FindDeviceById200ResponsePlanAvailableInMetrosInner ¶

type FindDeviceById200ResponsePlanAvailableInMetrosInner struct {

	// href to the Metro
	Href string `json:"href,omitempty"`

	Price FindDeviceById200ResponsePlanAvailableInInnerPrice `json:"price,omitempty"`
}

type FindDeviceById200ResponsePlanSpecs ¶

type FindDeviceById200ResponsePlanSpecs struct {
	Cpus []FindDeviceById200ResponsePlanSpecsCpusInner `json:"cpus,omitempty"`

	Drives []FindDeviceById200ResponsePlanSpecsDrivesInner `json:"drives,omitempty"`

	Nics []FindDeviceById200ResponsePlanSpecsNicsInner `json:"nics,omitempty"`

	Features FindDeviceById200ResponsePlanSpecsFeatures `json:"features,omitempty"`
}

type FindDeviceById200ResponsePlanSpecsCpusInner ¶

type FindDeviceById200ResponsePlanSpecsCpusInner struct {
	Count int32 `json:"count,omitempty"`

	Type string `json:"type,omitempty"`
}

type FindDeviceById200ResponsePlanSpecsDrivesInner ¶

type FindDeviceById200ResponsePlanSpecsDrivesInner struct {
	Count int32 `json:"count,omitempty"`

	Type string `json:"type,omitempty"`

	Size string `json:"size,omitempty"`
}

type FindDeviceById200ResponsePlanSpecsFeatures ¶

type FindDeviceById200ResponsePlanSpecsFeatures struct {
	Raid bool `json:"raid,omitempty"`

	Txt bool `json:"txt,omitempty"`
}

type FindDeviceById200ResponsePlanSpecsNicsInner ¶

type FindDeviceById200ResponsePlanSpecsNicsInner struct {
	Count int32 `json:"count,omitempty"`

	Type string `json:"type,omitempty"`
}

type FindDeviceById200ResponseProject ¶

type FindDeviceById200ResponseProject struct {
	Href string `json:"href"`
}

type FindDeviceById200ResponseProjectLite ¶

type FindDeviceById200ResponseProjectLite struct {
	Href string `json:"href"`
}

type FindDeviceEvents200Response ¶

type FindDeviceEvents200Response struct {
	Events []FindInterconnectionEvents200Response `json:"events,omitempty"`

	Meta FindDeviceEvents200ResponseMeta `json:"meta,omitempty"`
}

type FindDeviceEvents200ResponseMeta ¶

type FindDeviceEvents200ResponseMeta struct {
	First FindBatchById200ResponseDevicesInner `json:"first,omitempty"`

	Last FindBatchById200ResponseDevicesInner `json:"last,omitempty"`

	Next FindBatchById200ResponseDevicesInner `json:"next,omitempty"`

	Previous FindBatchById200ResponseDevicesInner `json:"previous,omitempty"`

	Self FindBatchById200ResponseDevicesInner `json:"self,omitempty"`

	Total int32 `json:"total,omitempty"`
}

type FindDeviceMetadataById200Response ¶

type FindDeviceMetadataById200Response struct {
	Class string `json:"class,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	// The facility code of the instance
	Facility string `json:"facility,omitempty"`

	Hostname string `json:"hostname,omitempty"`

	Id string `json:"id,omitempty"`

	Iqn string `json:"iqn,omitempty"`

	// The metro code of the instance
	Metro string `json:"metro,omitempty"`

	Network FindDeviceMetadataById200ResponseNetwork `json:"network,omitempty"`

	OperatingSystem map[string]interface{} `json:"operating_system,omitempty"`

	// The plan slug of the instance
	Plan string `json:"plan,omitempty"`

	// An array of the private subnets
	PrivateSubnets []string `json:"private_subnets,omitempty"`

	Reserved bool `json:"reserved,omitempty"`

	// The specs of the plan version of the instance
	Specs map[string]interface{} `json:"specs,omitempty"`

	SshKeys []string `json:"ssh_keys,omitempty"`

	SwitchShortId string `json:"switch_short_id,omitempty"`

	Tags []string `json:"tags,omitempty"`

	Volumes []string `json:"volumes,omitempty"`
}

type FindDeviceMetadataById200ResponseNetwork ¶

type FindDeviceMetadataById200ResponseNetwork struct {
	Addresses []string `json:"addresses,omitempty"`

	Interfaces []map[string]interface{} `json:"interfaces,omitempty"`

	Network FindDeviceMetadataById200ResponseNetworkNetwork `json:"network,omitempty"`
}

type FindDeviceMetadataById200ResponseNetworkNetwork ¶

type FindDeviceMetadataById200ResponseNetworkNetwork struct {
	Bonding FindDeviceMetadataById200ResponseNetworkNetworkBonding `json:"bonding,omitempty"`
}

type FindDeviceMetadataById200ResponseNetworkNetworkBonding ¶

type FindDeviceMetadataById200ResponseNetworkNetworkBonding struct {
	LinkAggregation string `json:"link_aggregation,omitempty"`

	Mac string `json:"mac,omitempty"`

	Mode int32 `json:"mode,omitempty"`
}

type FindDeviceSshKeys200Response ¶

type FindDeviceSshKeys200Response struct {
	SshKeys []FindDeviceSshKeys200ResponseSshKeysInner `json:"ssh_keys,omitempty"`
}

type FindDeviceSshKeys200ResponseSshKeysInner ¶

type FindDeviceSshKeys200ResponseSshKeysInner struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	Entity FindBatchById200ResponseDevicesInner `json:"entity,omitempty"`

	Fingerprint string `json:"fingerprint,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Key string `json:"key,omitempty"`

	Label string `json:"label,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

type FindDeviceUsages200Response ¶

type FindDeviceUsages200Response struct {
	Usages []FindDeviceUsages200ResponseUsagesInner `json:"usages,omitempty"`
}

type FindDeviceUsages200ResponseUsagesInner ¶

type FindDeviceUsages200ResponseUsagesInner struct {
	Quantity string `json:"quantity,omitempty"`

	Total string `json:"total,omitempty"`

	Unit string `json:"unit,omitempty"`
}

type FindDeviceUserdataById200Response ¶

type FindDeviceUserdataById200Response struct {
	Userdata string `json:"userdata,omitempty"`
}

type FindFacilities200Response ¶

type FindFacilities200Response struct {
	Facilities []FindDeviceById200ResponseFacility `json:"facilities,omitempty"`
}

type FindGlobalBgpRanges200Response ¶

type FindGlobalBgpRanges200Response struct {
	GlobalBgpRanges []FindBgpConfigByProject200ResponseRangesInner `json:"global_bgp_ranges,omitempty"`
}

type FindInterconnectionEvents200Response ¶

type FindInterconnectionEvents200Response struct {
	Body string `json:"body,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Interpolated string `json:"interpolated,omitempty"`

	Relationships []FindBatchById200ResponseDevicesInner `json:"relationships,omitempty"`

	State string `json:"state,omitempty"`

	Type string `json:"type,omitempty"`
}

type FindInvitationById200Response ¶

type FindInvitationById200Response struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Invitation FindBatchById200ResponseDevicesInner `json:"invitation,omitempty"`

	InvitedBy FindBatchById200ResponseDevicesInner `json:"invited_by,omitempty"`

	Invitee string `json:"invitee,omitempty"`

	Nonce string `json:"nonce,omitempty"`

	Organization FindBatchById200ResponseDevicesInner `json:"organization,omitempty"`

	Projects []FindBatchById200ResponseDevicesInner `json:"projects,omitempty"`

	Roles []string `json:"roles,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

type FindInvitations200Response ¶

type FindInvitations200Response struct {
	Invitations []FindInvitations200ResponseInvitationsInner `json:"invitations,omitempty"`
}

type FindInvitations200ResponseInvitationsInner ¶

type FindInvitations200ResponseInvitationsInner struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Project FindBatchById200ResponseDevicesInner `json:"project,omitempty"`

	Roles []string `json:"roles,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	User FindBatchById200ResponseDevicesInner `json:"user,omitempty"`
}

type FindIpAddressById200Response ¶

type FindIpAddressById200Response struct {
	Address string `json:"address,omitempty"`

	AddressFamily int32 `json:"address_family,omitempty"`

	AssignedTo FindBatchById200ResponseDevicesInner `json:"assigned_to,omitempty"`

	Cidr int32 `json:"cidr,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	Enabled bool `json:"enabled,omitempty"`

	Gateway string `json:"gateway,omitempty"`

	GlobalIp bool `json:"global_ip,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Manageable bool `json:"manageable,omitempty"`

	Management bool `json:"management,omitempty"`

	Metro FindIpAddressById200ResponseOneOfMetro `json:"metro,omitempty"`

	Netmask string `json:"netmask,omitempty"`

	Network string `json:"network,omitempty"`

	ParentBlock FindDeviceById200ResponseIpAddressesInnerParentBlock `json:"parent_block,omitempty"`

	Public bool `json:"public,omitempty"`

	Addon bool `json:"addon,omitempty"`

	Assignments []FindDeviceById200ResponseIpAddressesInner `json:"assignments,omitempty"`

	Bill bool `json:"bill,omitempty"`

	Facility FindIpAddressById200ResponseOneOfFacility `json:"facility,omitempty"`

	MetalGateway FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetworkMetalGatewaysInner `json:"metal_gateway,omitempty"`

	State string `json:"state,omitempty"`

	Tags []string `json:"tags,omitempty"`

	CreatedBy FindBatchById200ResponseDevicesInner `json:"created_by,omitempty"`

	Details string `json:"details,omitempty"`

	Project GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfProject `json:"project,omitempty"`

	Type string `json:"type,omitempty"`

	Vrf GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1Vrf `json:"vrf"`
}

type FindIpAddressById200ResponseOneOf ¶

type FindIpAddressById200ResponseOneOf struct {
	Addon bool `json:"addon,omitempty"`

	AddressFamily int32 `json:"address_family,omitempty"`

	Assignments []FindDeviceById200ResponseIpAddressesInner `json:"assignments,omitempty"`

	Bill bool `json:"bill,omitempty"`

	Cidr int32 `json:"cidr,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	Enabled bool `json:"enabled,omitempty"`

	Facility FindIpAddressById200ResponseOneOfFacility `json:"facility,omitempty"`

	GlobalIp bool `json:"global_ip,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Manageable bool `json:"manageable,omitempty"`

	Management bool `json:"management,omitempty"`

	MetalGateway FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetworkMetalGatewaysInner `json:"metal_gateway,omitempty"`

	Metro FindIpAddressById200ResponseOneOfMetro `json:"metro,omitempty"`

	Netmask string `json:"netmask,omitempty"`

	Network string `json:"network,omitempty"`

	Public bool `json:"public,omitempty"`

	State string `json:"state,omitempty"`

	Tags []string `json:"tags,omitempty"`
}

type FindIpAddressById200ResponseOneOf1 ¶

type FindIpAddressById200ResponseOneOf1 struct {
	AddressFamily int32 `json:"address_family,omitempty"`

	Cidr int32 `json:"cidr,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	CreatedBy FindBatchById200ResponseDevicesInner `json:"created_by,omitempty"`

	Details string `json:"details,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	MetalGateway FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetworkMetalGatewaysInner `json:"metal_gateway,omitempty"`

	Netmask string `json:"netmask,omitempty"`

	Network string `json:"network,omitempty"`

	Project GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfProject `json:"project,omitempty"`

	State string `json:"state,omitempty"`

	Tags []string `json:"tags,omitempty"`

	Type string `json:"type,omitempty"`

	Vrf GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1Vrf `json:"vrf"`
}

type FindIpAddressById200ResponseOneOfFacility ¶

type FindIpAddressById200ResponseOneOfFacility struct {
	Address FindDeviceById200ResponseFacilityAddress `json:"address,omitempty"`

	Code string `json:"code,omitempty"`

	Features []string `json:"features,omitempty"`

	Id string `json:"id,omitempty"`

	// IP ranges registered in facility. Can be used for GeoIP location
	IpRanges []string `json:"ip_ranges,omitempty"`

	Metro FindDeviceById200ResponseFacilityMetro `json:"metro,omitempty"`

	Name string `json:"name,omitempty"`
}

type FindIpAddressById200ResponseOneOfMetro ¶

type FindIpAddressById200ResponseOneOfMetro struct {
	Code string `json:"code,omitempty"`

	Country string `json:"country,omitempty"`

	Id string `json:"id,omitempty"`

	Name string `json:"name,omitempty"`
}

type FindIpAssignments200Response ¶

type FindIpAssignments200Response struct {
	IpAddresses []FindDeviceById200ResponseIpAddressesInner `json:"ip_addresses,omitempty"`
}

type FindIpAvailabilities200Response ¶

type FindIpAvailabilities200Response struct {
	Available []string `json:"available,omitempty"`
}

type FindIpReservations200Response ¶

type FindIpReservations200Response struct {
	IpAddresses []FindIpReservations200ResponseIpAddressesInner `json:"ip_addresses,omitempty"`
}

type FindIpReservations200ResponseIpAddressesInner ¶

type FindIpReservations200ResponseIpAddressesInner struct {
	Addon bool `json:"addon,omitempty"`

	AddressFamily int32 `json:"address_family,omitempty"`

	Assignments []FindDeviceById200ResponseIpAddressesInner `json:"assignments,omitempty"`

	Bill bool `json:"bill,omitempty"`

	Cidr int32 `json:"cidr,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	Enabled bool `json:"enabled,omitempty"`

	Facility FindIpAddressById200ResponseOneOfFacility `json:"facility,omitempty"`

	GlobalIp bool `json:"global_ip,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Manageable bool `json:"manageable,omitempty"`

	Management bool `json:"management,omitempty"`

	MetalGateway FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetworkMetalGatewaysInner `json:"metal_gateway,omitempty"`

	Metro FindIpAddressById200ResponseOneOfMetro `json:"metro,omitempty"`

	Netmask string `json:"netmask,omitempty"`

	Network string `json:"network,omitempty"`

	Public bool `json:"public,omitempty"`

	State string `json:"state,omitempty"`

	Tags []string `json:"tags,omitempty"`

	CreatedBy FindBatchById200ResponseDevicesInner `json:"created_by,omitempty"`

	Details string `json:"details,omitempty"`

	Project GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfProject `json:"project,omitempty"`

	Type string `json:"type,omitempty"`

	Vrf GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1Vrf `json:"vrf"`
}

type FindLicenseById200Response ¶

type FindLicenseById200Response struct {
	Description string `json:"description,omitempty"`

	Id string `json:"id,omitempty"`

	LicenseKey string `json:"license_key,omitempty"`

	LicenseeProduct FindBatchById200ResponseDevicesInner `json:"licensee_product,omitempty"`

	Project FindBatchById200ResponseDevicesInner `json:"project,omitempty"`

	Size float32 `json:"size,omitempty"`
}

type FindMetalGatewayById200Response ¶

type FindMetalGatewayById200Response struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	CreatedBy FindBatchById200ResponseDevicesInner `json:"created_by,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	IpReservation FindIpAddressById200ResponseOneOf1 `json:"ip_reservation,omitempty"`

	Project GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfProject `json:"project,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"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	VirtualNetwork FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetwork `json:"virtual_network,omitempty"`

	Vrf GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1Vrf `json:"vrf,omitempty"`
}

type FindMetalGatewayById200ResponseOneOf ¶

type FindMetalGatewayById200ResponseOneOf struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	CreatedBy FindBatchById200ResponseDevicesInner `json:"created_by,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	IpReservation FindIpAddressById200ResponseOneOf `json:"ip_reservation,omitempty"`

	Project GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfProject `json:"project,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"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	VirtualNetwork FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetwork `json:"virtual_network,omitempty"`
}

type FindMetalGatewayById200ResponseOneOf1 ¶

type FindMetalGatewayById200ResponseOneOf1 struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	CreatedBy FindBatchById200ResponseDevicesInner `json:"created_by,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	IpReservation FindIpAddressById200ResponseOneOf1 `json:"ip_reservation,omitempty"`

	Project GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfProject `json:"project,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"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	VirtualNetwork FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetwork `json:"virtual_network,omitempty"`

	Vrf GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1Vrf `json:"vrf,omitempty"`
}

type FindMetalGatewaysByProject200Response ¶

type FindMetalGatewaysByProject200Response struct {
	MetalGateways []FindMetalGatewaysByProject200ResponseMetalGatewaysInner `json:"MetalGateways,omitempty"`
}

type FindMetalGatewaysByProject200ResponseMetalGatewaysInner ¶

type FindMetalGatewaysByProject200ResponseMetalGatewaysInner struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	CreatedBy FindBatchById200ResponseDevicesInner `json:"created_by,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	IpReservation FindIpAddressById200ResponseOneOf1 `json:"ip_reservation,omitempty"`

	Project GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfProject `json:"project,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"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	VirtualNetwork FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetwork `json:"virtual_network,omitempty"`

	Vrf GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1Vrf `json:"vrf,omitempty"`
}

type FindMetroSpotMarketPrices200Response ¶

type FindMetroSpotMarketPrices200Response struct {
	SpotMarketPrices FindMetroSpotMarketPrices200ResponseSpotMarketPrices `json:"spot_market_prices,omitempty"`
}

type FindMetros200Response ¶

type FindMetros200Response struct {
	Metros []GetInterconnection200ResponseMetroAllOf `json:"metros,omitempty"`
}

type FindOperatingSystemVersion200Response ¶

type FindOperatingSystemVersion200Response struct {
	OperatingSystems []FindDeviceById200ResponseOperatingSystem `json:"operating_systems,omitempty"`
}

type FindOrganizationDevices200Response ¶

type FindOrganizationDevices200Response struct {
	Devices []FindDeviceById200Response `json:"devices,omitempty"`

	Meta FindDeviceEvents200ResponseMeta `json:"meta,omitempty"`
}

type FindOrganizationPaymentMethods200Response ¶

type FindOrganizationPaymentMethods200Response struct {
	PaymentMethods []FindOrganizationPaymentMethods200ResponsePaymentMethodsInner `json:"payment_methods,omitempty"`
}

type FindOrganizationPaymentMethods200ResponsePaymentMethodsInner ¶

type FindOrganizationPaymentMethods200ResponsePaymentMethodsInner struct {
	BillingAddress FindOrganizationPaymentMethods200ResponsePaymentMethodsInnerBillingAddress `json:"billing_address,omitempty"`

	CardType string `json:"card_type,omitempty"`

	CardholderName string `json:"cardholder_name,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	CreatedByUser FindBatchById200ResponseDevicesInner `json:"created_by_user,omitempty"`

	Default bool `json:"default,omitempty"`

	Email string `json:"email,omitempty"`

	ExpirationMonth string `json:"expiration_month,omitempty"`

	ExpirationYear string `json:"expiration_year,omitempty"`

	Id string `json:"id,omitempty"`

	Name string `json:"name,omitempty"`

	Organization FindBatchById200ResponseDevicesInner `json:"organization,omitempty"`

	Projects []FindBatchById200ResponseDevicesInner `json:"projects,omitempty"`

	Type string `json:"type,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

type FindOrganizationPaymentMethods200ResponsePaymentMethodsInnerBillingAddress ¶

type FindOrganizationPaymentMethods200ResponsePaymentMethodsInnerBillingAddress struct {
	CountryCodeAlpha2 string `json:"country_code_alpha2,omitempty"`

	PostalCode string `json:"postal_code,omitempty"`

	StreetAddress string `json:"street_address,omitempty"`
}

type FindOrganizationProjects200Response ¶

type FindOrganizationProjects200Response struct {
	Meta FindDeviceEvents200ResponseMeta `json:"meta,omitempty"`

	Projects []GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfProject `json:"projects,omitempty"`
}

type FindOrganizationTransfers200Response ¶

type FindOrganizationTransfers200Response struct {
	Transfers []FindOrganizationTransfers200ResponseTransfersInner `json:"transfers,omitempty"`
}

type FindOrganizationTransfers200ResponseTransfersInner ¶

type FindOrganizationTransfers200ResponseTransfersInner struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Project FindBatchById200ResponseDevicesInner `json:"project,omitempty"`

	TargetOrganization FindBatchById200ResponseDevicesInner `json:"target_organization,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

type FindOrganizations200Response ¶

type FindOrganizations200Response struct {
	Meta FindDeviceEvents200ResponseMeta `json:"meta,omitempty"`

	Organizations []FindOrganizations200ResponseOrganizationsInner `json:"organizations,omitempty"`
}

type FindOrganizations200ResponseOrganizationsInner ¶

type FindOrganizations200ResponseOrganizationsInner struct {
	Address FindDeviceById200ResponseFacilityAddress `json:"address,omitempty"`

	BillingAddress FindDeviceById200ResponseFacilityAddress `json:"billing_address,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	CreditAmount float32 `json:"credit_amount,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Description string `json:"description,omitempty"`

	// Force to all members to have enabled the two factor authentication after that date, unless the value is null
	Enforce2faAt time.Time `json:"enforce_2fa_at,omitempty"`

	Id string `json:"id,omitempty"`


	Members []FindBatchById200ResponseDevicesInner `json:"members,omitempty"`

	Memberships []FindBatchById200ResponseDevicesInner `json:"memberships,omitempty"`

	Name string `json:"name,omitempty"`

	Projects []FindBatchById200ResponseDevicesInner `json:"projects,omitempty"`

	Terms int32 `json:"terms,omitempty"`

	Twitter string `json:"twitter,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	Website string `json:"website,omitempty"`
}

type FindPlansByOrganization200Response ¶

type FindPlansByOrganization200Response struct {
	Plans []FindDeviceById200ResponsePlan `json:"plans,omitempty"`
}

type FindPortVlanAssignmentBatches200Response ¶

type FindPortVlanAssignmentBatches200Response struct {
	Batches []FindPortVlanAssignmentBatches200ResponseBatchesInner `json:"batches,omitempty"`
}

type FindPortVlanAssignmentBatches200ResponseBatchesInner ¶

type FindPortVlanAssignmentBatches200ResponseBatchesInner struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	ErrorMessages []string `json:"error_messages,omitempty"`

	Id string `json:"id,omitempty"`

	Port FindDeviceById200ResponseNetworkPortsInner `json:"port,omitempty"`

	Quantity int32 `json:"quantity,omitempty"`

	State string `json:"state,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	VlanAssignments []FindPortVlanAssignmentBatches200ResponseBatchesInnerVlanAssignmentsInner `json:"vlan_assignments,omitempty"`
}

type FindPortVlanAssignmentBatches200ResponseBatchesInnerVlanAssignmentsInner ¶

type FindPortVlanAssignmentBatches200ResponseBatchesInnerVlanAssignmentsInner struct {
	Id string `json:"id,omitempty"`

	Native bool `json:"native,omitempty"`

	State string `json:"state,omitempty"`

	Vlan int32 `json:"vlan,omitempty"`
}

type FindPortVlanAssignments200Response ¶

type FindPortVlanAssignments200Response struct {
	VlanAssignments []FindPortVlanAssignments200ResponseVlanAssignmentsInner `json:"vlan_assignments,omitempty"`
}

type FindPortVlanAssignments200ResponseVlanAssignmentsInner ¶

type FindPortVlanAssignments200ResponseVlanAssignmentsInner struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	Id string `json:"id,omitempty"`

	Native bool `json:"native,omitempty"`

	Port FindBatchById200ResponseDevicesInner `json:"port,omitempty"`

	State string `json:"state,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	VirtualNetwork FindBatchById200ResponseDevicesInner `json:"virtual_network,omitempty"`

	Vlan int32 `json:"vlan,omitempty"`
}

type FindProjectApiKeys200Response ¶

type FindProjectApiKeys200Response struct {
	ApiKeys []FindProjectApiKeys200ResponseApiKeysInner `json:"api_keys,omitempty"`
}

type FindProjectApiKeys200ResponseApiKeysInner ¶

type FindProjectApiKeys200ResponseApiKeysInner struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	// Available only for API keys
	Description string `json:"description,omitempty"`

	Id string `json:"id,omitempty"`

	Project FindProjectApiKeys200ResponseApiKeysInnerProject `json:"project,omitempty"`

	ReadOnly bool `json:"read_only,omitempty"`

	Token string `json:"token,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	User FindProjectApiKeys200ResponseApiKeysInnerUser `json:"user,omitempty"`
}

type FindProjectApiKeys200ResponseApiKeysInnerProject ¶

type FindProjectApiKeys200ResponseApiKeysInnerProject struct {
	BgpConfig FindBatchById200ResponseDevicesInner `json:"bgp_config,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Devices []FindBatchById200ResponseDevicesInner `json:"devices,omitempty"`

	Id string `json:"id,omitempty"`

	Invitations []FindBatchById200ResponseDevicesInner `json:"invitations,omitempty"`

	MaxDevices map[string]interface{} `json:"max_devices,omitempty"`

	Members []FindBatchById200ResponseDevicesInner `json:"members,omitempty"`

	Memberships []FindBatchById200ResponseDevicesInner `json:"memberships,omitempty"`

	Name string `json:"name,omitempty"`

	NetworkStatus map[string]interface{} `json:"network_status,omitempty"`

	PaymentMethod FindBatchById200ResponseDevicesInner `json:"payment_method,omitempty"`

	SshKeys []FindBatchById200ResponseDevicesInner `json:"ssh_keys,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	Volumes []FindBatchById200ResponseDevicesInner `json:"volumes,omitempty"`
}

type FindProjectApiKeys200ResponseApiKeysInnerUser ¶

type FindProjectApiKeys200ResponseApiKeysInnerUser struct {
	AvatarThumbUrl string `json:"avatar_thumb_url,omitempty"`

	AvatarUrl string `json:"avatar_url,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Email string `json:"email,omitempty"`

	Emails []FindBatchById200ResponseDevicesInner `json:"emails,omitempty"`

	FirstName string `json:"first_name,omitempty"`

	FraudScore string `json:"fraud_score,omitempty"`

	FullName string `json:"full_name,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	LastLoginAt time.Time `json:"last_login_at,omitempty"`

	LastName string `json:"last_name,omitempty"`

	MaxOrganizations int32 `json:"max_organizations,omitempty"`

	MaxProjects int32 `json:"max_projects,omitempty"`

	PhoneNumber string `json:"phone_number,omitempty"`

	ShortId string `json:"short_id,omitempty"`

	Timezone string `json:"timezone,omitempty"`

	TwoFactorAuth string `json:"two_factor_auth,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

type FindProjectHardwareReservations200Response ¶

type FindProjectHardwareReservations200Response struct {
	HardwareReservations []MoveHardwareReservation201Response `json:"hardware_reservations,omitempty"`

	Meta FindDeviceEvents200ResponseMeta `json:"meta,omitempty"`
}

type FindProjectLicenses200Response ¶

type FindProjectLicenses200Response struct {
	Licenses []FindLicenseById200Response `json:"licenses,omitempty"`
}

type FindProjectMemberships200Response ¶

type FindProjectMemberships200Response struct {
	Memberships []FindInvitations200ResponseInvitationsInner `json:"memberships,omitempty"`
}

type FindProjectUsage200Response ¶

type FindProjectUsage200Response struct {
	Usages []FindProjectUsage200ResponseUsagesInner `json:"usages,omitempty"`
}

type FindProjectUsage200ResponseUsagesInner ¶

type FindProjectUsage200ResponseUsagesInner struct {
	Facility string `json:"facility,omitempty"`

	Name string `json:"name,omitempty"`

	Plan string `json:"plan,omitempty"`

	PlanVersion string `json:"plan_version,omitempty"`

	Price string `json:"price,omitempty"`

	Quantity string `json:"quantity,omitempty"`

	Total string `json:"total,omitempty"`

	Type string `json:"type,omitempty"`

	Unit string `json:"unit,omitempty"`
}

type FindRecoveryCodes200Response ¶

type FindRecoveryCodes200Response struct {
	RecoveryCodes []string `json:"recovery_codes,omitempty"`
}

type FindSelfServiceReservations200Response ¶

type FindSelfServiceReservations200Response struct {
	Reservations []FindSelfServiceReservations200ResponseReservationsInner `json:"reservations,omitempty"`
}

type FindSelfServiceReservations200ResponseReservationsInner ¶

type FindSelfServiceReservations200ResponseReservationsInner struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	Item []FindSelfServiceReservations200ResponseReservationsInnerItemInner `json:"item,omitempty"`

	Notes string `json:"notes,omitempty"`

	Organization string `json:"organization,omitempty"`

	OrganizationId string `json:"organization_id,omitempty"`

	Period FindSelfServiceReservations200ResponseReservationsInnerPeriod `json:"period,omitempty"`

	Project string `json:"project,omitempty"`

	ProjectId string `json:"project_id,omitempty"`

	StartDate time.Time `json:"start_date,omitempty"`

	Status string `json:"status,omitempty"`

	TotalCost int32 `json:"total_cost,omitempty"`
}

type FindSelfServiceReservations200ResponseReservationsInnerItemInner ¶

type FindSelfServiceReservations200ResponseReservationsInnerItemInner struct {
	Amount float32 `json:"amount,omitempty"`

	Id string `json:"id,omitempty"`

	MetroCode string `json:"metro_code,omitempty"`

	MetroId string `json:"metro_id,omitempty"`

	MetroName string `json:"metro_name,omitempty"`

	PlanId string `json:"plan_id,omitempty"`

	PlanName string `json:"plan_name,omitempty"`

	PlanSlug string `json:"plan_slug,omitempty"`

	Quantity int32 `json:"quantity,omitempty"`

	Term string `json:"term,omitempty"`
}

type FindSelfServiceReservations200ResponseReservationsInnerPeriod ¶

type FindSelfServiceReservations200ResponseReservationsInnerPeriod struct {
	Count float32 `json:"count,omitempty"`

	Unit string `json:"unit,omitempty"`
}

type FindSpotMarketPrices200Response ¶

type FindSpotMarketPrices200Response struct {
	SpotMarketPrices FindSpotMarketPrices200ResponseSpotMarketPrices `json:"spot_market_prices,omitempty"`
}

type FindSpotMarketPrices200ResponseSpotMarketPricesAms1 ¶

type FindSpotMarketPrices200ResponseSpotMarketPricesAms1 struct {
	Baremetal0 FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"baremetal_0,omitempty"`

	Baremetal1 FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"baremetal_1,omitempty"`

	Baremetal2 FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"baremetal_2,omitempty"`

	Baremetal2a FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"baremetal_2a,omitempty"`

	Baremetal2a2 FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"baremetal_2a2,omitempty"`

	Baremetal3 FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"baremetal_3,omitempty"`

	BaremetalS FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"baremetal_s,omitempty"`

	C2MediumX86 FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"c2.medium.x86,omitempty"`

	M2XlargeX86 FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"m2.xlarge.x86,omitempty"`
}

type FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 ¶

type FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 struct {
	Price float32 `json:"price,omitempty"`
}

type FindSpotMarketPrices200ResponseSpotMarketPricesAtl1 ¶

type FindSpotMarketPrices200ResponseSpotMarketPricesAtl1 struct {
	Baremetal1e FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"baremetal_1e,omitempty"`
}

type FindSpotMarketPricesHistory200Response ¶

type FindSpotMarketPricesHistory200Response struct {
	PricesHistory FindSpotMarketPricesHistory200ResponsePricesHistory `json:"prices_history,omitempty"`
}

type FindSpotMarketPricesHistory200ResponsePricesHistory ¶

type FindSpotMarketPricesHistory200ResponsePricesHistory struct {
	Datapoints [][]float32 `json:"datapoints,omitempty"`
}

type FindTrafficTimeframeParameter ¶

type FindTrafficTimeframeParameter struct {
	EndedAt time.Time `json:"ended_at"`

	StartedAt time.Time `json:"started_at"`
}

type FindUsers200Response ¶

type FindUsers200Response struct {
	Meta FindDeviceEvents200ResponseMeta `json:"meta,omitempty"`

	Users []GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfCreatedBy `json:"users,omitempty"`
}

type FindVirtualNetworks200Response ¶

type FindVirtualNetworks200Response struct {
	VirtualNetworks []FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetwork `json:"virtual_networks,omitempty"`
}

type FindVrfIpReservations200Response ¶

type FindVrfIpReservations200Response struct {
	IpAddresses []FindIpAddressById200ResponseOneOf1 `json:"ip_addresses,omitempty"`
}

type FindVrfs200Response ¶

type FindVrfs200Response struct {
	Vrfs []GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1Vrf `json:"vrfs,omitempty"`
}

type GetBgpNeighborData200Response ¶

type GetBgpNeighborData200Response struct {

	// A list of BGP session neighbor data
	BgpNeighbors []GetBgpNeighborData200ResponseBgpNeighborsInner `json:"bgp_neighbors,omitempty"`
}

type GetBgpNeighborData200ResponseBgpNeighborsInner ¶

type GetBgpNeighborData200ResponseBgpNeighborsInner struct {

	// Address Family for IP Address. Accepted values are 4 or 6
	AddressFamily float32 `json:"address_family,omitempty"`

	// The customer's ASN. In a local BGP deployment, this will be an internal ASN used to route within the data center. For a global BGP deployment, this will be the your own ASN, configured when you set up BGP for your project.
	CustomerAs float32 `json:"customer_as,omitempty"`

	// The device's IP address. For an IPv4 BGP session, this is typically the private bond0 address for the device.
	CustomerIp string `json:"customer_ip,omitempty"`

	// True if an MD5 password is configured for the project.
	Md5Enabled bool `json:"md5_enabled,omitempty"`

	// The MD5 password configured for the project, if set.
	Md5Password string `json:"md5_password,omitempty"`

	// True when the BGP session should be configured as multihop.
	Multihop bool `json:"multihop,omitempty"`

	// The Peer ASN to use when configuring BGP on your device.
	PeerAs float32 `json:"peer_as,omitempty"`

	// A list of one or more IP addresses to use for the Peer IP section of your BGP configuration. For non-multihop sessions, this will typically be a single gateway address for the device. For multihop sessions, it will be a list of IPs.
	PeerIps []string `json:"peer_ips,omitempty"`

	// A list of project subnets
	RoutesIn []GetBgpNeighborData200ResponseBgpNeighborsInnerRoutesInInner `json:"routes_in,omitempty"`

	// A list of outgoing routes. Only populated if the BGP session has default route enabled.
	RoutesOut []GetBgpNeighborData200ResponseBgpNeighborsInnerRoutesOutInner `json:"routes_out,omitempty"`
}

type GetBgpNeighborData200ResponseBgpNeighborsInnerRoutesInInner ¶

type GetBgpNeighborData200ResponseBgpNeighborsInnerRoutesInInner struct {
	Exact bool `json:"exact,omitempty"`

	// A project network
	Route string `json:"route,omitempty"`
}

type GetBgpNeighborData200ResponseBgpNeighborsInnerRoutesOutInner ¶

type GetBgpNeighborData200ResponseBgpNeighborsInnerRoutesOutInner struct {
	Exact bool `json:"exact,omitempty"`

	Route string `json:"route,omitempty"`
}

type GetInterconnection200Response ¶

type GetInterconnection200Response struct {
	ContactEmail string `json:"contact_email,omitempty"`

	Description string `json:"description,omitempty"`

	Facility FindBatchById200ResponseDevicesInner `json:"facility,omitempty"`

	Id string `json:"id,omitempty"`

	Metro GetInterconnection200ResponseMetro `json:"metro,omitempty"`

	// The mode of the interconnection (only relevant to Dedicated Ports). Shared connections won't have this field. Can be either 'standard' or 'tunnel'.   The default mode of an interconnection on a Dedicated Port is 'standard'. The mode can only be changed when there are no associated virtual circuits on the interconnection.   In tunnel mode, an 802.1q tunnel is added to a port to send/receive double tagged packets from server instances.
	Mode string `json:"mode,omitempty"`

	Name string `json:"name,omitempty"`

	Organization FindBatchById200ResponseDevicesInner `json:"organization,omitempty"`

	// For Fabric VCs, these represent Virtual Port(s) created for the interconnection. For dedicated interconnections, these represent the Dedicated Port(s).
	Ports []GetInterconnection200ResponsePortsInner `json:"ports,omitempty"`

	// Either 'primary', meaning a single interconnection, or 'redundant', meaning a redundant interconnection.
	Redundancy string `json:"redundancy,omitempty"`

	// For Fabric VCs (Metal Billed), this will show details of the A-Side service tokens issued for the interconnection. For Fabric VCs (Fabric Billed), this will show the details of the Z-Side service tokens issued for the interconnection. Dedicated interconnections will not have any service tokens issued. There will be one per interconnection, so for redundant interconnections, there should be two service tokens issued. For access to Fabric VCs, which are not generally available, please contact our Support Team for more details.
	ServiceTokens []GetInterconnection200ResponseServiceTokensInner `json:"service_tokens,omitempty"`

	// For interconnections on Dedicated Ports and shared connections, this represents the interconnection's speed in bps. For Fabric VCs, this field refers to the maximum speed of the interconnection in bps. This value will default to 10Gbps for Fabric VCs (Fabric Billed). For access to Fabric VCs, which are not generally available, please contact our Support Team for more details.
	Speed int32 `json:"speed,omitempty"`

	Status string `json:"status,omitempty"`

	Tags []string `json:"tags,omitempty"`

	// This token is used for shared interconnections to be used as the Fabric Token. This field will be deprecated when we release Fabric VCs. With the release of Fabric VCs that use A-Side and Z-Side service tokens, we will no longer issue these tokens for any shared interconnections created after the release of Fabric VCs. This token will also never be issued for dedicated interconnections. For access to Fabric VCs, which are not generally available, please contact our Support Team for more details.
	Token string `json:"token,omitempty"`

	// The 'shared' type of interconnection refers to shared connections, or later also known as Fabric Virtual Connections (or Fabric VCs). The 'dedicated' type of interconnection refers to interconnections created with Dedicated Ports. For access to Fabric VCs, which are not generally available, please contact our Support Team for more details.
	Type string `json:"type,omitempty"`
}

type GetInterconnection200ResponseMetro ¶

type GetInterconnection200ResponseMetro struct {
	Code string `json:"code,omitempty"`

	Country string `json:"country,omitempty"`

	Id string `json:"id,omitempty"`

	Name string `json:"name,omitempty"`
}

GetInterconnection200ResponseMetro - The location of where the shared or Dedicated Port is located. For interconnections with Dedicated Ports, this will be the location of the Dedicated Ports. For Fabric VCs (Metal Billed), this is where interconnection will be originating from, as we pre-authorize the use of one of our shared ports as the origin of the interconnection using A-Side service tokens. We only allow local connections for Fabric VCs (Metal Billed), so the destination location must be the same as the origin. For Fabric VCs (Fabric Billed), this will be the destination of the interconnection. We allow remote connections for Fabric VCs (Fabric Billed), so the origin of the interconnection can be a different metro set here. For access to Fabric VCs, which are not generally available please contact our Support Team for more details.

type GetInterconnection200ResponseMetroAllOf ¶

type GetInterconnection200ResponseMetroAllOf struct {
	Code string `json:"code,omitempty"`

	Country string `json:"country,omitempty"`

	Id string `json:"id,omitempty"`

	Name string `json:"name,omitempty"`
}

type GetInterconnection200ResponsePortsInner ¶

type GetInterconnection200ResponsePortsInner struct {
	Id string `json:"id,omitempty"`

	Organization FindBatchById200ResponseDevicesInner `json:"organization,omitempty"`

	// Either 'primary' or 'secondary'.
	Role string `json:"role,omitempty"`

	// For both Fabric VCs and Dedicated Ports, this will be 'requested' on creation and 'deleting' on deletion. Once the Fabric VC has found its corresponding Fabric connection, this will turn to 'active'. For Dedicated Ports, once the dedicated port is associated, this will also turn to 'active'. For Fabric VCs, this can turn into an 'expired' state if the service token associated is expired.
	Status string `json:"status,omitempty"`

	// A switch 'short ID'
	SwitchId string `json:"switch_id,omitempty"`

	VirtualCircuits GetInterconnection200ResponsePortsInnerVirtualCircuits `json:"virtual_circuits,omitempty"`
}

type GetInterconnection200ResponsePortsInnerVirtualCircuits ¶

type GetInterconnection200ResponsePortsInnerVirtualCircuits struct {
	VirtualCircuits []GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInner `json:"virtual_circuits,omitempty"`
}

type GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInner ¶

type GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInner struct {

	// True if the Virtual Circuit is being billed. Currently, only Virtual Circuits of Fabric VCs (Metal Billed) will be billed. Usage will start the first time the Virtual Circuit becomes active, and will not stop until it is deleted from Metal.
	Bill bool `json:"bill"`

	Description string `json:"description"`

	Id string `json:"id"`

	Name string `json:"name"`

	NniVlan int32 `json:"nni_vlan"`

	Port FindBatchById200ResponseDevicesInner `json:"port"`

	Project FindBatchById200ResponseDevicesInner `json:"project"`

	// integer representing bps speed
	Speed int32 `json:"speed,omitempty"`

	Status string `json:"status"`

	Tags []string `json:"tags"`

	VirtualNetwork FindBatchById200ResponseDevicesInner `json:"virtual_network"`

	Vnid int32 `json:"vnid"`

	// An IP address from the subnet that will be used on the Customer side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Metal IP. By default, the last usable IP address in the subnet will be used.
	CustomerIp string `json:"customer_ip,omitempty"`

	// The MD5 password for the BGP peering in plaintext (not a checksum).
	Md5 string `json:"md5,omitempty"`

	// An IP address from the subnet that will be used on the Metal side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Customer IP. By default, the first usable IP address in the subnet will be used.
	MetalIp string `json:"metal_ip,omitempty"`

	// The peer ASN that will be used with the VRF on the Virtual Circuit.
	PeerAsn int32 `json:"peer_asn,omitempty"`

	// The /30 or /31 subnet of one of the VRF IP Blocks that will be used with the VRF for the Virtual Circuit. This subnet does not have to be an existing VRF IP reservation, as we will create the VRF IP reservation on creation if it does not exist. The Metal IP and Customer IP must be IPs from this subnet. For /30 subnets, the network and broadcast IPs cannot be used as the Metal or Customer IP.
	Subnet string `json:"subnet,omitempty"`

	Vrf GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1Vrf `json:"vrf,omitempty"`
}

type GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf ¶

type GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf struct {

	// True if the Virtual Circuit is being billed. Currently, only Virtual Circuits of Fabric VCs (Metal Billed) will be billed. Usage will start the first time the Virtual Circuit becomes active, and will not stop until it is deleted from Metal.
	Bill bool `json:"bill"`

	Description string `json:"description"`

	Id string `json:"id"`

	Name string `json:"name"`

	NniVlan int32 `json:"nni_vlan"`

	Port FindBatchById200ResponseDevicesInner `json:"port"`

	Project FindBatchById200ResponseDevicesInner `json:"project"`

	// For Virtual Circuits on shared and dedicated connections, this speed should match the one set on their Interconnection Ports. For Virtual Circuits on Fabric VCs (both Metal and Fabric Billed) that have found their corresponding Fabric connection, this is the actual speed of the interconnection that was configured when setting up the interconnection on the Fabric Portal. Details on Fabric VCs are included in the specification as a developer preview and is generally unavailable. Please contact our Support team for more details.
	Speed int32 `json:"speed,omitempty"`

	// The status of a Virtual Circuit is always 'Pending' on creation. The status can turn to 'Waiting on Customer VLAN' if the VLAN was not set yet on the Virtual Circuit and is the last step needed for full activation. For Dedicated interconnections, as long as the Dedicated Port has been associated to the Virtual Circuit and a NNI VNID has been set, it will turn to 'Waiting on Customer VLAN'. For Fabric VCs, which are not generally available, it will only change to 'Waiting on Customer VLAN' once the corresponding Fabric connection has been found on the Fabric side. Once a VLAN is set on the Virtual Circuit (which for Fabric VCs, can be set on creation) and the necessary set up is done, it will turn into 'Activating' status as it tries to activate the Virtual Circuit. Once the Virtual Circuit fully activates and is configured on the switch, it will turn to staus 'Active'. For Fabric VCs (Metal Billed), we will start billing the moment the status of the Virtual Circuit turns to 'Active'. If there are any changes to the VLAN after the Virtual Circuit is in an 'Active' status, the status will show 'Changing VLAN' if a new VLAN has been provided, or 'Deactivating' if we are removing the VLAN. When a deletion request is issued for the Virtual Circuit, it will move to a 'deleting' status until it is fully deleted. If the Virtual Circuit is on a Fabric VC, it can also change into an 'Expired' status if the associated service token has expired. To get access to Fabric VCs, please contact our Support Team for more details.
	Status string `json:"status"`

	Tags []string `json:"tags"`

	VirtualNetwork FindBatchById200ResponseDevicesInner `json:"virtual_network"`

	Vnid int32 `json:"vnid"`
}

type GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1 ¶

type GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1 struct {

	// An IP address from the subnet that will be used on the Customer side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Metal IP. By default, the last usable IP address in the subnet will be used.
	CustomerIp string `json:"customer_ip,omitempty"`

	Description string `json:"description,omitempty"`

	Id string `json:"id,omitempty"`

	// The MD5 password for the BGP peering in plaintext (not a checksum).
	Md5 string `json:"md5,omitempty"`

	// An IP address from the subnet that will be used on the Metal side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Customer IP. By default, the first usable IP address in the subnet will be used.
	MetalIp string `json:"metal_ip,omitempty"`

	Name string `json:"name,omitempty"`

	Port FindBatchById200ResponseDevicesInner `json:"port,omitempty"`

	NniVlan int32 `json:"nni_vlan,omitempty"`

	// The peer ASN that will be used with the VRF on the Virtual Circuit.
	PeerAsn int32 `json:"peer_asn,omitempty"`

	Project FindBatchById200ResponseDevicesInner `json:"project,omitempty"`

	// integer representing bps speed
	Speed int32 `json:"speed,omitempty"`

	Status string `json:"status,omitempty"`

	// The /30 or /31 subnet of one of the VRF IP Blocks that will be used with the VRF for the Virtual Circuit. This subnet does not have to be an existing VRF IP reservation, as we will create the VRF IP reservation on creation if it does not exist. The Metal IP and Customer IP must be IPs from this subnet. For /30 subnets, the network and broadcast IPs cannot be used as the Metal or Customer IP.
	Subnet string `json:"subnet,omitempty"`

	Tags []string `json:"tags,omitempty"`

	Vrf GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1Vrf `json:"vrf,omitempty"`
}

type GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1Vrf ¶

type GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1Vrf struct {
	Id string `json:"id,omitempty"`

	Name string `json:"name,omitempty"`

	// Optional field that can be set to describe the VRF
	Description string `json:"description,omitempty"`

	// A 4-byte ASN associated with the VRF.
	LocalAsn int32 `json:"local_asn,omitempty"`

	// A list of CIDR network addresses. Like [\"10.0.0.0/16\", \"2001:d78::/56\"].
	IpRanges []string `json:"ip_ranges,omitempty"`

	Project GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfProject `json:"project,omitempty"`

	Metro GetInterconnection200ResponseMetroAllOf `json:"metro,omitempty"`

	CreatedBy GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfCreatedBy `json:"created_by,omitempty"`

	Href string `json:"href,omitempty"`
}

type GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfCreatedBy ¶

type GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfCreatedBy struct {
	AvatarThumbUrl string `json:"avatar_thumb_url,omitempty"`

	AvatarUrl string `json:"avatar_url,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Email string `json:"email,omitempty"`

	Emails []FindBatchById200ResponseDevicesInner `json:"emails,omitempty"`

	FirstName string `json:"first_name,omitempty"`

	FraudScore string `json:"fraud_score,omitempty"`

	FullName string `json:"full_name,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	LastLoginAt time.Time `json:"last_login_at,omitempty"`

	LastName string `json:"last_name,omitempty"`

	MaxOrganizations int32 `json:"max_organizations,omitempty"`

	MaxProjects int32 `json:"max_projects,omitempty"`

	PhoneNumber string `json:"phone_number,omitempty"`

	ShortId string `json:"short_id,omitempty"`

	Timezone string `json:"timezone,omitempty"`

	TwoFactorAuth string `json:"two_factor_auth,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

type GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfProject ¶

type GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfProject struct {
	BgpConfig FindBatchById200ResponseDevicesInner `json:"bgp_config,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Devices []FindBatchById200ResponseDevicesInner `json:"devices,omitempty"`

	Id string `json:"id,omitempty"`

	Invitations []FindBatchById200ResponseDevicesInner `json:"invitations,omitempty"`

	MaxDevices map[string]interface{} `json:"max_devices,omitempty"`

	Members []FindBatchById200ResponseDevicesInner `json:"members,omitempty"`

	Memberships []FindBatchById200ResponseDevicesInner `json:"memberships,omitempty"`

	Name string `json:"name,omitempty"`

	NetworkStatus map[string]interface{} `json:"network_status,omitempty"`

	PaymentMethod FindBatchById200ResponseDevicesInner `json:"payment_method,omitempty"`

	SshKeys []FindBatchById200ResponseDevicesInner `json:"ssh_keys,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	Volumes []FindBatchById200ResponseDevicesInner `json:"volumes,omitempty"`
}

type GetInterconnection200ResponseServiceTokensInner ¶

type GetInterconnection200ResponseServiceTokensInner struct {

	// The expiration date and time of the Fabric service token. Once a service token is expired, it is no longer redeemable.
	ExpiresAt time.Time `json:"expires_at,omitempty"`

	// The UUID that can be used on the Fabric Portal to redeem either an A-Side or Z-Side Service Token. For Fabric VCs (Metal Billed), this UUID will represent an A-Side Service Token, which will allow interconnections to be made from Equinix Metal to other Service Providers on Fabric. For Fabric VCs (Fabric Billed), this UUID will represent a Z-Side Service Token, which will allow interconnections to be made to connect an owned Fabric Port or  Virtual Device to Equinix Metal.
	Id string `json:"id,omitempty"`

	// The maximum speed that can be selected on the Fabric Portal when configuring a interconnection with either  an A-Side or Z-Side Service Token. For Fabric VCs (Metal Billed), this is what the billing is based off of, and can be one of the following options, '50mbps', '200mbps', '500mbps', '1gbps', '2gbps', '5gbps' or '10gbps'. For Fabric VCs (Fabric Billed), this will default to 10Gbps.
	MaxAllowedSpeed int32 `json:"max_allowed_speed,omitempty"`

	// Either primary or secondary, depending on which interconnection the service token is associated to.
	Role string `json:"role,omitempty"`

	// Either 'a_side' or 'z_side', depending on which type of Fabric VC was requested.
	ServiceTokenType string `json:"service_token_type,omitempty"`

	// The state of the service token that corresponds with the service token state on Fabric. An 'inactive' state refers to a token that has not been redeemed yet on the Fabric side, an 'active' state refers to a token that has already been redeemed, and an 'expired' state refers to a token that has reached its expiry time.
	State string `json:"state,omitempty"`
}

type GlobalBgpRange ¶

type GlobalBgpRange struct {
	AddressFamily int32 `json:"address_family,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Project FindBatchById200ResponseDevicesInner `json:"project,omitempty"`

	Range string `json:"range,omitempty"`
}

type GlobalBgpRangeList ¶

type GlobalBgpRangeList struct {
	GlobalBgpRanges []FindBgpConfigByProject200ResponseRangesInner `json:"global_bgp_ranges,omitempty"`
}

type HardwareReservation ¶

type HardwareReservation struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	// Amount that will be charged for every billing_cycle.
	CustomRate float32 `json:"custom_rate,omitempty"`

	Device FindDeviceById200Response `json:"device,omitempty"`

	Facility FindDeviceById200ResponseFacility `json:"facility,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	// Whether this Device requires assistance from Metal Equinix.
	NeedOfService bool `json:"need_of_service,omitempty"`

	Plan FindDeviceById200ResponsePlan `json:"plan,omitempty"`

	Project GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfProject `json:"project,omitempty"`

	// Whether the reserved server is provisionable or not. Spare devices can't be provisioned unless they are activated first.
	Provisionable bool `json:"provisionable,omitempty"`

	// Short version of the ID.
	ShortId string `json:"short_id,omitempty"`

	// Whether the Hardware Reservation is a spare. Spare Hardware Reservations are used when a Hardware Reservations requires service from Metal Equinix
	Spare bool `json:"spare,omitempty"`

	// Switch short id. This can be used to determine if two devices are connected to the same switch, for example.
	SwitchUuid string `json:"switch_uuid,omitempty"`
}

type HardwareReservationList ¶

type HardwareReservationList struct {
	HardwareReservations []MoveHardwareReservation201Response `json:"hardware_reservations,omitempty"`

	Meta FindDeviceEvents200ResponseMeta `json:"meta,omitempty"`
}

type Href ¶

type Href struct {
	Href string `json:"href"`
}

type InstancesBatchCreateInput ¶

type InstancesBatchCreateInput struct {
	Batches []CreateDeviceBatchRequestBatchesInner `json:"batches,omitempty"`
}

type Interconnection ¶

type Interconnection struct {
	ContactEmail string `json:"contact_email,omitempty"`

	Description string `json:"description,omitempty"`

	Facility FindBatchById200ResponseDevicesInner `json:"facility,omitempty"`

	Id string `json:"id,omitempty"`

	Metro GetInterconnection200ResponseMetro `json:"metro,omitempty"`

	// The mode of the interconnection (only relevant to Dedicated Ports). Shared connections won't have this field. Can be either 'standard' or 'tunnel'.   The default mode of an interconnection on a Dedicated Port is 'standard'. The mode can only be changed when there are no associated virtual circuits on the interconnection.   In tunnel mode, an 802.1q tunnel is added to a port to send/receive double tagged packets from server instances.
	Mode string `json:"mode,omitempty"`

	Name string `json:"name,omitempty"`

	Organization FindBatchById200ResponseDevicesInner `json:"organization,omitempty"`

	// For Fabric VCs, these represent Virtual Port(s) created for the interconnection. For dedicated interconnections, these represent the Dedicated Port(s).
	Ports []GetInterconnection200ResponsePortsInner `json:"ports,omitempty"`

	// Either 'primary', meaning a single interconnection, or 'redundant', meaning a redundant interconnection.
	Redundancy string `json:"redundancy,omitempty"`

	// For Fabric VCs (Metal Billed), this will show details of the A-Side service tokens issued for the interconnection. For Fabric VCs (Fabric Billed), this will show the details of the Z-Side service tokens issued for the interconnection. Dedicated interconnections will not have any service tokens issued. There will be one per interconnection, so for redundant interconnections, there should be two service tokens issued. For access to Fabric VCs, which are not generally available, please contact our Support Team for more details.
	ServiceTokens []GetInterconnection200ResponseServiceTokensInner `json:"service_tokens,omitempty"`

	// For interconnections on Dedicated Ports and shared connections, this represents the interconnection's speed in bps. For Fabric VCs, this field refers to the maximum speed of the interconnection in bps. This value will default to 10Gbps for Fabric VCs (Fabric Billed). For access to Fabric VCs, which are not generally available, please contact our Support Team for more details.
	Speed int32 `json:"speed,omitempty"`

	Status string `json:"status,omitempty"`

	Tags []string `json:"tags,omitempty"`

	// This token is used for shared interconnections to be used as the Fabric Token. This field will be deprecated when we release Fabric VCs. With the release of Fabric VCs that use A-Side and Z-Side service tokens, we will no longer issue these tokens for any shared interconnections created after the release of Fabric VCs. This token will also never be issued for dedicated interconnections. For access to Fabric VCs, which are not generally available, please contact our Support Team for more details.
	Token string `json:"token,omitempty"`

	// The 'shared' type of interconnection refers to shared connections, or later also known as Fabric Virtual Connections (or Fabric VCs). The 'dedicated' type of interconnection refers to interconnections created with Dedicated Ports. For access to Fabric VCs, which are not generally available, please contact our Support Team for more details.
	Type string `json:"type,omitempty"`
}

type InterconnectionCreateInput ¶

type InterconnectionCreateInput struct {
	ContactEmail string `json:"contact_email,omitempty"`

	Description string `json:"description,omitempty"`

	// A Metro ID or code. For interconnections with Dedicated Ports, this will be the location of the issued Dedicated Ports. When creating Fabric VCs (Metal Billed), this is where interconnection will be originating from, as we pre-authorize the use of one of our shared ports as the origin of the interconnection using A-Side service tokens. We only allow local connections for Fabric VCs (Metal Billed), so the destination location must be the same as the origin. For Fabric VCs (Fabric Billed), or shared connections, this will be the destination of the interconnection. We allow remote connections for Fabric VCs (Fabric Billed), so the origin of the interconnection can be a different metro set here. For access to Fabric VCs, which are not generally available, please contact our Support Team for more details.
	Metro string `json:"metro"`

	// The mode of the interconnection (only relevant to Dedicated Ports). Fabric VCs won't have this field. Can be either 'standard' or 'tunnel'.   The default mode of an interconnection on a Dedicated Port is 'standard'. The mode can only be changed when there are no associated virtual circuits on the interconnection.   In tunnel mode, an 802.1q tunnel is added to a port to send/receive double tagged packets from server instances.
	Mode string `json:"mode,omitempty"`

	Name string `json:"name"`

	Project string `json:"project,omitempty"`

	// Either 'primary' or 'redundant'.
	Redundancy string `json:"redundancy"`

	// Either 'a_side' or 'z_side'. Setting this field to 'a_side' will create an interconnection with Fabric VCs (Metal Billed). Setting this field to 'z_side' will create an interconnection with Fabric VCs (Fabric Billed). This is required when the 'type' is 'shared', but this is not applicable when the 'type' is 'dedicated'. This parameter is included in the specification as a developer preview and is generally unavailable. Please contact our Support team for more details.
	ServiceTokenType string `json:"service_token_type,omitempty"`

	// A interconnection speed, in bps, mbps, or gbps. For Dedicated Ports, this can be 10Gbps or 100Gbps. For Fabric VCs, this represents the maximum speed of the interconnection. For Fabric VCs (Metal Billed), this can only be one of the following:  ”50mbps”, ”200mbps”, ”500mbps”, ”1gbps”, ”2gbps”, ”5gbps” or ”10gbps”, and is required for creation. For Fabric VCs (Fabric Billed), this field will always default to ”10gbps” even if it is not provided. For example, ”500000000”, ”50m”, or' ”500mbps” will all work as valid inputs.
	Speed int32 `json:"speed,omitempty"`

	Tags []string `json:"tags,omitempty"`

	// Either 'shared' or 'dedicated'. The 'shared' type represents shared interconnections, or also known as Fabric VCs. The 'dedicated' type represents dedicated interconnections, or also known as Dedicated Ports.
	Type string `json:"type"`

	// A list of one or two metro-based VLANs that will be set on the virtual circuits of primary and/or secondary (if redundant) interconnections respectively when creating Fabric VCs. VLANs can also be set after the interconnection is created, but are required to fully activate the interconnection. This parameter is included in the specification as a developer preview and is generally unavailable. Please contact our Support team for more details.
	Vlans []int32 `json:"vlans,omitempty"`
}

type InterconnectionList ¶

type InterconnectionList struct {
	Interconnections []GetInterconnection200Response `json:"interconnections,omitempty"`
}

type InterconnectionPort ¶

type InterconnectionPort struct {
	Id string `json:"id,omitempty"`

	Organization FindBatchById200ResponseDevicesInner `json:"organization,omitempty"`

	// Either 'primary' or 'secondary'.
	Role string `json:"role,omitempty"`

	// For both Fabric VCs and Dedicated Ports, this will be 'requested' on creation and 'deleting' on deletion. Once the Fabric VC has found its corresponding Fabric connection, this will turn to 'active'. For Dedicated Ports, once the dedicated port is associated, this will also turn to 'active'. For Fabric VCs, this can turn into an 'expired' state if the service token associated is expired.
	Status string `json:"status,omitempty"`

	// A switch 'short ID'
	SwitchId string `json:"switch_id,omitempty"`

	VirtualCircuits GetInterconnection200ResponsePortsInnerVirtualCircuits `json:"virtual_circuits,omitempty"`
}

type InterconnectionPortList ¶

type InterconnectionPortList struct {
	Ports []GetInterconnection200ResponsePortsInner `json:"ports,omitempty"`
}

type InterconnectionUpdateInput ¶

type InterconnectionUpdateInput struct {
	ContactEmail string `json:"contact_email,omitempty"`

	Description string `json:"description,omitempty"`

	// The mode of the interconnection (only relevant to Dedicated Ports). Shared connections won't have this field. Can be either 'standard' or 'tunnel'.   The default mode of an interconnection on a Dedicated Port is 'standard'. The mode can only be changed when there are no associated virtual circuits on the interconnection.   In tunnel mode, an 802.1q tunnel is added to a port to send/receive double tagged packets from server instances.
	Mode string `json:"mode,omitempty"`

	Name string `json:"name,omitempty"`

	// Updating from 'redundant' to 'primary' will remove a secondary port, while updating from 'primary' to 'redundant' will add one.
	Redundancy string `json:"redundancy,omitempty"`

	Tags []string `json:"tags,omitempty"`
}

type Invitation ¶

type Invitation struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Invitation FindBatchById200ResponseDevicesInner `json:"invitation,omitempty"`

	InvitedBy FindBatchById200ResponseDevicesInner `json:"invited_by,omitempty"`

	Invitee string `json:"invitee,omitempty"`

	Nonce string `json:"nonce,omitempty"`

	Organization FindBatchById200ResponseDevicesInner `json:"organization,omitempty"`

	Projects []FindBatchById200ResponseDevicesInner `json:"projects,omitempty"`

	Roles []string `json:"roles,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

type InvitationInput ¶

type InvitationInput struct {
	Invitee string `json:"invitee"`

	Message string `json:"message,omitempty"`

	OrganizationId string `json:"organization_id,omitempty"`

	ProjectsIds []string `json:"projects_ids,omitempty"`

	Roles []string `json:"roles,omitempty"`
}

type InvitationList ¶

type InvitationList struct {
	Invitations []FindInvitations200ResponseInvitationsInner `json:"invitations,omitempty"`
}

type IpAssignment ¶

type IpAssignment struct {
	Address string `json:"address,omitempty"`

	AddressFamily int32 `json:"address_family,omitempty"`

	AssignedTo FindBatchById200ResponseDevicesInner `json:"assigned_to,omitempty"`

	Cidr int32 `json:"cidr,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	Enabled bool `json:"enabled,omitempty"`

	Gateway string `json:"gateway,omitempty"`

	GlobalIp bool `json:"global_ip,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Manageable bool `json:"manageable,omitempty"`

	Management bool `json:"management,omitempty"`

	Metro FindDeviceById200ResponseIpAddressesInnerMetro `json:"metro,omitempty"`

	Netmask string `json:"netmask,omitempty"`

	Network string `json:"network,omitempty"`

	ParentBlock FindDeviceById200ResponseIpAddressesInnerParentBlock `json:"parent_block,omitempty"`

	Public bool `json:"public,omitempty"`
}

type IpAssignmentInput ¶

type IpAssignmentInput struct {
	Address string `json:"address"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Manageable bool `json:"manageable,omitempty"`
}

type IpAssignmentList ¶

type IpAssignmentList struct {
	IpAddresses []FindDeviceById200ResponseIpAddressesInner `json:"ip_addresses,omitempty"`
}

type IpAvailabilitiesList ¶

type IpAvailabilitiesList struct {
	Available []string `json:"available,omitempty"`
}

type IpReservation ¶

type IpReservation struct {
	Addon bool `json:"addon,omitempty"`

	AddressFamily int32 `json:"address_family,omitempty"`

	Assignments []FindDeviceById200ResponseIpAddressesInner `json:"assignments,omitempty"`

	Bill bool `json:"bill,omitempty"`

	Cidr int32 `json:"cidr,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	Enabled bool `json:"enabled,omitempty"`

	Facility FindIpAddressById200ResponseOneOfFacility `json:"facility,omitempty"`

	GlobalIp bool `json:"global_ip,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Manageable bool `json:"manageable,omitempty"`

	Management bool `json:"management,omitempty"`

	MetalGateway FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetworkMetalGatewaysInner `json:"metal_gateway,omitempty"`

	Metro FindIpAddressById200ResponseOneOfMetro `json:"metro,omitempty"`

	Netmask string `json:"netmask,omitempty"`

	Network string `json:"network,omitempty"`

	Public bool `json:"public,omitempty"`

	State string `json:"state,omitempty"`

	Tags []string `json:"tags,omitempty"`
}

type IpReservationList ¶

type IpReservationList struct {
	IpAddresses []FindIpReservations200ResponseIpAddressesInner `json:"ip_addresses,omitempty"`
}

type IpReservationRequestInput ¶

type IpReservationRequestInput struct {
	Comments string `json:"comments,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Details string `json:"details,omitempty"`

	Facility string `json:"facility,omitempty"`

	FailOnApprovalRequired bool `json:"fail_on_approval_required,omitempty"`

	// The code of the metro you are requesting the IP reservation in.
	Metro string `json:"metro,omitempty"`

	Quantity int32 `json:"quantity"`

	Tags []string `json:"tags,omitempty"`

	Type string `json:"type"`
}

type License ¶

type License struct {
	Description string `json:"description,omitempty"`

	Id string `json:"id,omitempty"`

	LicenseKey string `json:"license_key,omitempty"`

	LicenseeProduct FindBatchById200ResponseDevicesInner `json:"licensee_product,omitempty"`

	Project FindBatchById200ResponseDevicesInner `json:"project,omitempty"`

	Size float32 `json:"size,omitempty"`
}

type LicenseCreateInput ¶

type LicenseCreateInput struct {
	Description string `json:"description,omitempty"`

	LicenseeProductId string `json:"licensee_product_id,omitempty"`

	Size float32 `json:"size,omitempty"`
}

type LicenseList ¶

type LicenseList struct {
	Licenses []FindLicenseById200Response `json:"licenses,omitempty"`
}

type LicenseUpdateInput ¶

type LicenseUpdateInput struct {
	Description string `json:"description,omitempty"`

	Size float32 `json:"size,omitempty"`
}

type ListInterconnectionPorts200Response ¶

type ListInterconnectionPorts200Response struct {
	Ports []GetInterconnection200ResponsePortsInner `json:"ports,omitempty"`
}

type ListSpotMarketRequests200Response ¶

type ListSpotMarketRequests200Response struct {
	SpotMarketRequests []ListSpotMarketRequests200ResponseSpotMarketRequestsInner `json:"spot_market_requests,omitempty"`
}

type ListSpotMarketRequests200ResponseSpotMarketRequestsInner ¶

type ListSpotMarketRequests200ResponseSpotMarketRequestsInner struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	DevicesMax int32 `json:"devices_max,omitempty"`

	DevicesMin int32 `json:"devices_min,omitempty"`

	EndAt time.Time `json:"end_at,omitempty"`

	Facilities FindBatchById200ResponseDevicesInner `json:"facilities,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Instances FindBatchById200ResponseDevicesInner `json:"instances,omitempty"`

	MaxBidPrice float32 `json:"max_bid_price,omitempty"`

	Metro ListSpotMarketRequests200ResponseSpotMarketRequestsInnerMetro `json:"metro,omitempty"`

	Project FindBatchById200ResponseDevicesInner `json:"project,omitempty"`
}

type ListSpotMarketRequests200ResponseSpotMarketRequestsInnerMetro ¶

type ListSpotMarketRequests200ResponseSpotMarketRequestsInnerMetro struct {
	Code string `json:"code,omitempty"`

	Country string `json:"country,omitempty"`

	Id string `json:"id,omitempty"`

	Name string `json:"name,omitempty"`
}

type Membership ¶

type Membership struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Project FindBatchById200ResponseDevicesInner `json:"project,omitempty"`

	Roles []string `json:"roles,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	User FindBatchById200ResponseDevicesInner `json:"user,omitempty"`
}

type MembershipInput ¶

type MembershipInput struct {
	Role []string `json:"role,omitempty"`
}

type MembershipList ¶

type MembershipList struct {
	Memberships []FindInvitations200ResponseInvitationsInner `json:"memberships,omitempty"`
}

type Meta ¶

type Meta struct {
	First FindBatchById200ResponseDevicesInner `json:"first,omitempty"`

	Last FindBatchById200ResponseDevicesInner `json:"last,omitempty"`

	Next FindBatchById200ResponseDevicesInner `json:"next,omitempty"`

	Previous FindBatchById200ResponseDevicesInner `json:"previous,omitempty"`

	Self FindBatchById200ResponseDevicesInner `json:"self,omitempty"`

	Total int32 `json:"total,omitempty"`
}

type Metadata ¶

type Metadata struct {
	Class string `json:"class,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	// The facility code of the instance
	Facility string `json:"facility,omitempty"`

	Hostname string `json:"hostname,omitempty"`

	Id string `json:"id,omitempty"`

	Iqn string `json:"iqn,omitempty"`

	// The metro code of the instance
	Metro string `json:"metro,omitempty"`

	Network FindDeviceMetadataById200ResponseNetwork `json:"network,omitempty"`

	OperatingSystem map[string]interface{} `json:"operating_system,omitempty"`

	// The plan slug of the instance
	Plan string `json:"plan,omitempty"`

	// An array of the private subnets
	PrivateSubnets []string `json:"private_subnets,omitempty"`

	Reserved bool `json:"reserved,omitempty"`

	// The specs of the plan version of the instance
	Specs map[string]interface{} `json:"specs,omitempty"`

	SshKeys []string `json:"ssh_keys,omitempty"`

	SwitchShortId string `json:"switch_short_id,omitempty"`

	Tags []string `json:"tags,omitempty"`

	Volumes []string `json:"volumes,omitempty"`
}

type MetalGateway ¶

type MetalGateway struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	CreatedBy FindBatchById200ResponseDevicesInner `json:"created_by,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	IpReservation FindIpAddressById200ResponseOneOf `json:"ip_reservation,omitempty"`

	Project GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfProject `json:"project,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"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	VirtualNetwork FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetwork `json:"virtual_network,omitempty"`
}

type MetalGatewayInput ¶

type MetalGatewayInput struct {

	// The UUID of an IP reservation that belongs to the same project as where the metal gateway will be created in. This field is required unless the private IPv4 subnet size is specified.
	IpReservationId string `json:"ip_reservation_id,omitempty"`

	// The subnet size (8, 16, 32, 64, or 128) of the private IPv4 reservation that will be created for the metal gateway. This field is required unless a project IP reservation was specified.           Please keep in mind that the number of private metal gateway ranges are limited per project. If you would like to increase the limit per project, please contact support for assistance.
	PrivateIpv4SubnetSize int32 `json:"private_ipv4_subnet_size,omitempty"`

	// The UUID of a metro virtual network that belongs to the same project as where the metal gateway will be created in.
	VirtualNetworkId string `json:"virtual_network_id"`
}

type MetalGatewayList ¶

type MetalGatewayList struct {
	MetalGateways []FindMetalGatewaysByProject200ResponseMetalGatewaysInner `json:"MetalGateways,omitempty"`
}

type MetalGatewayLite ¶

type MetalGatewayLite struct {
	CreatedAt time.Time `json:"created_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"`

	Href string `json:"href,omitempty"`

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

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	// The VLAN id of the Virtual Network record associated to this Metal Gateway. Example: 1001.
	Vlan float32 `json:"vlan,omitempty"`
}

type Metro ¶

type Metro struct {
	Code string `json:"code,omitempty"`

	Country string `json:"country,omitempty"`

	Id string `json:"id,omitempty"`

	Name string `json:"name,omitempty"`
}

type MetroCapacityList ¶

type MetroCapacityList struct {
	Capacity FindCapacityForMetro200ResponseCapacity `json:"capacity,omitempty"`
}

type MetroCapacityReport ¶

type MetroList ¶

type MetroList struct {
	Metros []GetInterconnection200ResponseMetroAllOf `json:"metros,omitempty"`
}

type MetroServerInfo ¶

type MetroServerInfo struct {

	// The metro ID or code to check the capacity in.
	Metro string `json:"metro,omitempty"`

	// The plan ID or slug to check the capacity of.
	Plan string `json:"plan,omitempty"`

	// The number of servers to check the capacity of.
	Quantity string `json:"quantity,omitempty"`
}

type MoveHardwareReservation201Response ¶

type MoveHardwareReservation201Response struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	// Amount that will be charged for every billing_cycle.
	CustomRate float32 `json:"custom_rate,omitempty"`

	Device FindDeviceById200Response `json:"device,omitempty"`

	Facility FindDeviceById200ResponseFacility `json:"facility,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	// Whether this Device requires assistance from Metal Equinix.
	NeedOfService bool `json:"need_of_service,omitempty"`

	Plan FindDeviceById200ResponsePlan `json:"plan,omitempty"`

	Project GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfProject `json:"project,omitempty"`

	// Whether the reserved server is provisionable or not. Spare devices can't be provisioned unless they are activated first.
	Provisionable bool `json:"provisionable,omitempty"`

	// Short version of the ID.
	ShortId string `json:"short_id,omitempty"`

	// Whether the Hardware Reservation is a spare. Spare Hardware Reservations are used when a Hardware Reservations requires service from Metal Equinix
	Spare bool `json:"spare,omitempty"`

	// Switch short id. This can be used to determine if two devices are connected to the same switch, for example.
	SwitchUuid string `json:"switch_uuid,omitempty"`
}

type NewPassword ¶

type NewPassword struct {
	NewPassword string `json:"new_password,omitempty"`
}

type OperatingSystem ¶

type OperatingSystem struct {
	Distro string `json:"distro,omitempty"`

	Id string `json:"id,omitempty"`

	// Licenced OS is priced according to pricing property
	Licensed bool `json:"licensed,omitempty"`

	Name string `json:"name,omitempty"`

	// Servers can be already preinstalled with OS in order to shorten provision time.
	Preinstallable bool `json:"preinstallable,omitempty"`

	// This object contains price per time unit and optional multiplier value if licence price depends on hardware plan or components (e.g. number of cores)
	Pricing map[string]interface{} `json:"pricing,omitempty"`

	ProvisionableOn []string `json:"provisionable_on,omitempty"`

	Slug string `json:"slug,omitempty"`

	Version string `json:"version,omitempty"`
}

type OperatingSystemList ¶

type OperatingSystemList struct {
	OperatingSystems []FindDeviceById200ResponseOperatingSystem `json:"operating_systems,omitempty"`
}

type Organization ¶

type Organization struct {
	Address FindDeviceById200ResponseFacilityAddress `json:"address,omitempty"`

	BillingAddress FindDeviceById200ResponseFacilityAddress `json:"billing_address,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	CreditAmount float32 `json:"credit_amount,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Description string `json:"description,omitempty"`

	// Force to all members to have enabled the two factor authentication after that date, unless the value is null
	Enforce2faAt time.Time `json:"enforce_2fa_at,omitempty"`

	Id string `json:"id,omitempty"`


	Members []FindBatchById200ResponseDevicesInner `json:"members,omitempty"`

	Memberships []FindBatchById200ResponseDevicesInner `json:"memberships,omitempty"`

	Name string `json:"name,omitempty"`

	Projects []FindBatchById200ResponseDevicesInner `json:"projects,omitempty"`

	Terms int32 `json:"terms,omitempty"`

	Twitter string `json:"twitter,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	Website string `json:"website,omitempty"`
}

type OrganizationInput ¶

type OrganizationInput struct {
	Address FindDeviceById200ResponseFacilityAddress `json:"address,omitempty"`

	BillingAddress FindDeviceById200ResponseFacilityAddress `json:"billing_address,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Description string `json:"description,omitempty"`

	// Force to all members to have enabled the two factor authentication after that date, unless the value is null
	Enforce2faAt time.Time `json:"enforce_2fa_at,omitempty"`


	Name string `json:"name,omitempty"`

	Twitter string `json:"twitter,omitempty"`

	Website string `json:"website,omitempty"`
}

type OrganizationList ¶

type OrganizationList struct {
	Meta FindDeviceEvents200ResponseMeta `json:"meta,omitempty"`

	Organizations []FindOrganizations200ResponseOrganizationsInner `json:"organizations,omitempty"`
}

type OrganizationListInterconnections200Response ¶

type OrganizationListInterconnections200Response struct {
	Interconnections []GetInterconnection200Response `json:"interconnections,omitempty"`
}

type ParentBlock ¶

type ParentBlock struct {
	Cidr int32 `json:"cidr,omitempty"`

	Href string `json:"href,omitempty"`

	Netmask string `json:"netmask,omitempty"`

	Network string `json:"network,omitempty"`
}

type PaymentMethod ¶

type PaymentMethod struct {
	BillingAddress FindOrganizationPaymentMethods200ResponsePaymentMethodsInnerBillingAddress `json:"billing_address,omitempty"`

	CardType string `json:"card_type,omitempty"`

	CardholderName string `json:"cardholder_name,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	CreatedByUser FindBatchById200ResponseDevicesInner `json:"created_by_user,omitempty"`

	Default bool `json:"default,omitempty"`

	Email string `json:"email,omitempty"`

	ExpirationMonth string `json:"expiration_month,omitempty"`

	ExpirationYear string `json:"expiration_year,omitempty"`

	Id string `json:"id,omitempty"`

	Name string `json:"name,omitempty"`

	Organization FindBatchById200ResponseDevicesInner `json:"organization,omitempty"`

	Projects []FindBatchById200ResponseDevicesInner `json:"projects,omitempty"`

	Type string `json:"type,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

type PaymentMethodBillingAddress ¶

type PaymentMethodBillingAddress struct {
	CountryCodeAlpha2 string `json:"country_code_alpha2,omitempty"`

	PostalCode string `json:"postal_code,omitempty"`

	StreetAddress string `json:"street_address,omitempty"`
}

type PaymentMethodCreateInput ¶

type PaymentMethodCreateInput struct {
	Default bool `json:"default,omitempty"`

	Name string `json:"name"`

	Nonce string `json:"nonce"`
}

type PaymentMethodList ¶

type PaymentMethodList struct {
	PaymentMethods []FindOrganizationPaymentMethods200ResponsePaymentMethodsInner `json:"payment_methods,omitempty"`
}

type PaymentMethodUpdateInput ¶

type PaymentMethodUpdateInput struct {
	BillingAddress map[string]interface{} `json:"billing_address,omitempty"`

	CardholderName string `json:"cardholder_name,omitempty"`

	Default bool `json:"default,omitempty"`

	ExpirationMonth string `json:"expiration_month,omitempty"`

	ExpirationYear int32 `json:"expiration_year,omitempty"`

	Name string `json:"name,omitempty"`
}

type Plan ¶

type Plan struct {

	// Shows which facilities the plan is available in, and the facility-based price if it is different from the default price.
	AvailableIn []FindDeviceById200ResponsePlanAvailableInInner `json:"available_in,omitempty"`

	// Shows which metros the plan is available in, and the metro-based price if it is different from the default price.
	AvailableInMetros []FindDeviceById200ResponsePlanAvailableInMetrosInner `json:"available_in_metros,omitempty"`

	Class string `json:"class,omitempty"`

	Description string `json:"description,omitempty"`

	DeploymentTypes []string `json:"deployment_types,omitempty"`

	Id string `json:"id,omitempty"`

	Legacy bool `json:"legacy,omitempty"`

	Line string `json:"line,omitempty"`

	Name string `json:"name,omitempty"`

	Pricing map[string]interface{} `json:"pricing,omitempty"`

	Slug string `json:"slug,omitempty"`

	Specs FindDeviceById200ResponsePlanSpecs `json:"specs,omitempty"`

	// The plan type
	Type string `json:"type,omitempty"`
}

type PlanList ¶

type PlanList struct {
	Plans []FindDeviceById200ResponsePlan `json:"plans,omitempty"`
}

type Port ¶

type Port struct {
	Bond FindDeviceById200ResponseNetworkPortsInnerBond `json:"bond,omitempty"`

	Data FindDeviceById200ResponseNetworkPortsInnerData `json:"data,omitempty"`

	// Indicates whether or not the bond can be broken on the port (when applicable).
	DisbondOperationSupported bool `json:"disbond_operation_supported,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Name string `json:"name,omitempty"`

	// Type is either \"NetworkBondPort\" for bond ports or \"NetworkPort\" for bondable ethernet ports
	Type string `json:"type,omitempty"`

	// Composite network type of the bond
	NetworkType string `json:"network_type,omitempty"`

	NativeVirtualNetwork FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetwork `json:"native_virtual_network,omitempty"`

	VirtualNetworks []FindBatchById200ResponseDevicesInner `json:"virtual_networks,omitempty"`
}

Port - Port is a hardware port associated with a reserved or instantiated hardware device.

type PortAssignInput ¶

type PortAssignInput struct {

	// Virtual Network ID. May be the UUID of the Virtual Network record, or the VLAN value itself.
	Vnid string `json:"vnid,omitempty"`
}

type PortConvertLayer3Input ¶

type PortConvertLayer3Input struct {
	RequestIps []ConvertLayer3RequestRequestIpsInner `json:"request_ips,omitempty"`
}

type PortVlanAssignment ¶

type PortVlanAssignment struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	Id string `json:"id,omitempty"`

	Native bool `json:"native,omitempty"`

	Port FindBatchById200ResponseDevicesInner `json:"port,omitempty"`

	State string `json:"state,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	VirtualNetwork FindBatchById200ResponseDevicesInner `json:"virtual_network,omitempty"`

	Vlan int32 `json:"vlan,omitempty"`
}

type PortVlanAssignmentBatch ¶

type PortVlanAssignmentBatch struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	ErrorMessages []string `json:"error_messages,omitempty"`

	Id string `json:"id,omitempty"`

	Port FindDeviceById200ResponseNetworkPortsInner `json:"port,omitempty"`

	Quantity int32 `json:"quantity,omitempty"`

	State string `json:"state,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	VlanAssignments []FindPortVlanAssignmentBatches200ResponseBatchesInnerVlanAssignmentsInner `json:"vlan_assignments,omitempty"`
}

type PortVlanAssignmentBatchCreateInput ¶

type PortVlanAssignmentBatchCreateInput struct {
	VlanAssignments []CreatePortVlanAssignmentBatchRequestVlanAssignmentsInner `json:"vlan_assignments,omitempty"`
}

type PortVlanAssignmentBatchList ¶

type PortVlanAssignmentBatchList struct {
	Batches []FindPortVlanAssignmentBatches200ResponseBatchesInner `json:"batches,omitempty"`
}

type PortVlanAssignmentList ¶

type PortVlanAssignmentList struct {
	VlanAssignments []FindPortVlanAssignments200ResponseVlanAssignmentsInner `json:"vlan_assignments,omitempty"`
}

type Project ¶

type Project struct {
	BgpConfig FindBatchById200ResponseDevicesInner `json:"bgp_config,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Devices []FindBatchById200ResponseDevicesInner `json:"devices,omitempty"`

	Id string `json:"id,omitempty"`

	Invitations []FindBatchById200ResponseDevicesInner `json:"invitations,omitempty"`

	MaxDevices map[string]interface{} `json:"max_devices,omitempty"`

	Members []FindBatchById200ResponseDevicesInner `json:"members,omitempty"`

	Memberships []FindBatchById200ResponseDevicesInner `json:"memberships,omitempty"`

	Name string `json:"name,omitempty"`

	NetworkStatus map[string]interface{} `json:"network_status,omitempty"`

	PaymentMethod FindBatchById200ResponseDevicesInner `json:"payment_method,omitempty"`

	SshKeys []FindBatchById200ResponseDevicesInner `json:"ssh_keys,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	Volumes []FindBatchById200ResponseDevicesInner `json:"volumes,omitempty"`
}

type ProjectCreateFromRootInput ¶

type ProjectCreateFromRootInput struct {
	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Name string `json:"name"`

	OrganizationId string `json:"organization_id,omitempty"`

	PaymentMethodId string `json:"payment_method_id,omitempty"`
}

type ProjectCreateInput ¶

type ProjectCreateInput struct {
	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Name string `json:"name"`

	PaymentMethodId string `json:"payment_method_id,omitempty"`
}

type ProjectList ¶

type ProjectList struct {
	Meta FindDeviceEvents200ResponseMeta `json:"meta,omitempty"`

	Projects []GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfProject `json:"projects,omitempty"`
}

type ProjectUpdateInput ¶

type ProjectUpdateInput struct {
	BackendTransferEnabled bool `json:"backend_transfer_enabled,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Name string `json:"name,omitempty"`

	PaymentMethodId string `json:"payment_method_id,omitempty"`
}

type ProjectUsage ¶

type ProjectUsage struct {
	Facility string `json:"facility,omitempty"`

	Name string `json:"name,omitempty"`

	Plan string `json:"plan,omitempty"`

	PlanVersion string `json:"plan_version,omitempty"`

	Price string `json:"price,omitempty"`

	Quantity string `json:"quantity,omitempty"`

	Total string `json:"total,omitempty"`

	Type string `json:"type,omitempty"`

	Unit string `json:"unit,omitempty"`
}

type ProjectUsageList ¶

type ProjectUsageList struct {
	Usages []FindProjectUsage200ResponseUsagesInner `json:"usages,omitempty"`
}

type RecoveryCodeList ¶

type RecoveryCodeList struct {
	RecoveryCodes []string `json:"recovery_codes,omitempty"`
}

type RequestBgpConfigRequest ¶

type RequestBgpConfigRequest struct {
	Asn int32 `json:"asn"`

	DeploymentType string `json:"deployment_type"`

	Md5 string `json:"md5,omitempty"`

	UseCase string `json:"use_case,omitempty"`
}

type RequestIpReservation201Response ¶

type RequestIpReservation201Response struct {
	Addon bool `json:"addon,omitempty"`

	AddressFamily int32 `json:"address_family,omitempty"`

	Assignments []FindDeviceById200ResponseIpAddressesInner `json:"assignments,omitempty"`

	Bill bool `json:"bill,omitempty"`

	Cidr int32 `json:"cidr,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	Enabled bool `json:"enabled,omitempty"`

	Facility FindIpAddressById200ResponseOneOfFacility `json:"facility,omitempty"`

	GlobalIp bool `json:"global_ip,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Manageable bool `json:"manageable,omitempty"`

	Management bool `json:"management,omitempty"`

	MetalGateway FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetworkMetalGatewaysInner `json:"metal_gateway,omitempty"`

	Metro FindIpAddressById200ResponseOneOfMetro `json:"metro,omitempty"`

	Netmask string `json:"netmask,omitempty"`

	Network string `json:"network,omitempty"`

	Public bool `json:"public,omitempty"`

	State string `json:"state,omitempty"`

	Tags []string `json:"tags,omitempty"`

	CreatedBy FindBatchById200ResponseDevicesInner `json:"created_by,omitempty"`

	Details string `json:"details,omitempty"`

	Project GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfProject `json:"project,omitempty"`

	Type string `json:"type,omitempty"`

	Vrf GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1Vrf `json:"vrf"`
}

type RequestIpReservationRequest ¶

type RequestIpReservationRequest struct {
	Comments string `json:"comments,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Details string `json:"details,omitempty"`

	Facility string `json:"facility,omitempty"`

	FailOnApprovalRequired bool `json:"fail_on_approval_required,omitempty"`

	// The code of the metro you are requesting the IP reservation in.
	Metro string `json:"metro,omitempty"`

	Quantity int32 `json:"quantity"`

	Tags []string `json:"tags,omitempty"`

	// Must be set to 'vrf'
	Type string `json:"type"`

	// The size of the VRF IP Reservation's subnet
	Cidr int32 `json:"cidr"`

	// The starting address for this VRF IP Reservation's subnet
	Network string `json:"network"`

	// The ID of the VRF in which this VRF IP Reservation is created. The VRF must have an existing IP Range that contains the requested subnet. This field may be aliased as just 'vrf'.
	VrfId string `json:"vrf_id"`
}

type RequestIpReservationRequestOneOf ¶

type RequestIpReservationRequestOneOf struct {
	Comments string `json:"comments,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Details string `json:"details,omitempty"`

	Facility string `json:"facility,omitempty"`

	FailOnApprovalRequired bool `json:"fail_on_approval_required,omitempty"`

	// The code of the metro you are requesting the IP reservation in.
	Metro string `json:"metro,omitempty"`

	Quantity int32 `json:"quantity"`

	Tags []string `json:"tags,omitempty"`

	Type string `json:"type"`
}

type RequestIpReservationRequestOneOf1 ¶

type RequestIpReservationRequestOneOf1 struct {

	// The size of the VRF IP Reservation's subnet
	Cidr int32 `json:"cidr"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Details string `json:"details,omitempty"`

	// The starting address for this VRF IP Reservation's subnet
	Network string `json:"network"`

	Tags []string `json:"tags,omitempty"`

	// Must be set to 'vrf'
	Type string `json:"type"`

	// The ID of the VRF in which this VRF IP Reservation is created. The VRF must have an existing IP Range that contains the requested subnet. This field may be aliased as just 'vrf'.
	VrfId string `json:"vrf_id"`
}

type RequestSuppertRequest ¶

type RequestSuppertRequest struct {
	DeviceId string `json:"device_id,omitempty"`

	Message string `json:"message"`

	Priority string `json:"priority,omitempty"`

	ProjectId string `json:"project_id,omitempty"`

	Subject string `json:"subject"`
}

type ResetPassword201Response ¶

type ResetPassword201Response struct {
	NewPassword string `json:"new_password,omitempty"`
}

type Route ¶

type Route struct {
	// Name is the name of this Route.
	Name string
	// Method is the string for the HTTP method. ex) GET, POST etc..
	Method string
	// Pattern is the pattern of the URI.
	Pattern string
	// HandlerFunc is the handler function of this route.
	HandlerFunc gin.HandlerFunc
}

Route is the information for every URI.

type Routes ¶

type Routes []Route

Routes is the list of the generated Route.

type SelfServiceReservationItemRequest ¶

type SelfServiceReservationItemRequest struct {
	Amount float32 `json:"amount,omitempty"`

	MetroId string `json:"metro_id,omitempty"`

	PlanId string `json:"plan_id,omitempty"`

	Quantity int32 `json:"quantity,omitempty"`

	Term string `json:"term,omitempty"`
}

type SelfServiceReservationItemResponse ¶

type SelfServiceReservationItemResponse struct {
	Amount float32 `json:"amount,omitempty"`

	Id string `json:"id,omitempty"`

	MetroCode string `json:"metro_code,omitempty"`

	MetroId string `json:"metro_id,omitempty"`

	MetroName string `json:"metro_name,omitempty"`

	PlanId string `json:"plan_id,omitempty"`

	PlanName string `json:"plan_name,omitempty"`

	PlanSlug string `json:"plan_slug,omitempty"`

	Quantity int32 `json:"quantity,omitempty"`

	Term string `json:"term,omitempty"`
}

type SelfServiceReservationList ¶

type SelfServiceReservationList struct {
	Reservations []FindSelfServiceReservations200ResponseReservationsInner `json:"reservations,omitempty"`
}

type SelfServiceReservationResponse ¶

type SelfServiceReservationResponse struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	Item []FindSelfServiceReservations200ResponseReservationsInnerItemInner `json:"item,omitempty"`

	Notes string `json:"notes,omitempty"`

	Organization string `json:"organization,omitempty"`

	OrganizationId string `json:"organization_id,omitempty"`

	Period FindSelfServiceReservations200ResponseReservationsInnerPeriod `json:"period,omitempty"`

	Project string `json:"project,omitempty"`

	ProjectId string `json:"project_id,omitempty"`

	StartDate time.Time `json:"start_date,omitempty"`

	Status string `json:"status,omitempty"`

	TotalCost int32 `json:"total_cost,omitempty"`
}

type ServerInfo ¶

type ServerInfo struct {
	Facility string `json:"facility,omitempty"`

	Plan string `json:"plan,omitempty"`

	Quantity string `json:"quantity,omitempty"`
}

type SpotMarketPricesList ¶

type SpotMarketPricesList struct {
	SpotMarketPrices FindSpotMarketPrices200ResponseSpotMarketPrices `json:"spot_market_prices,omitempty"`
}

type SpotMarketPricesPerMetroList ¶

type SpotMarketPricesPerMetroList struct {
	SpotMarketPrices FindMetroSpotMarketPrices200ResponseSpotMarketPrices `json:"spot_market_prices,omitempty"`
}

type SpotMarketRequest ¶

type SpotMarketRequest struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	DevicesMax int32 `json:"devices_max,omitempty"`

	DevicesMin int32 `json:"devices_min,omitempty"`

	EndAt time.Time `json:"end_at,omitempty"`

	Facilities FindBatchById200ResponseDevicesInner `json:"facilities,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Instances FindBatchById200ResponseDevicesInner `json:"instances,omitempty"`

	MaxBidPrice float32 `json:"max_bid_price,omitempty"`

	Metro ListSpotMarketRequests200ResponseSpotMarketRequestsInnerMetro `json:"metro,omitempty"`

	Project FindBatchById200ResponseDevicesInner `json:"project,omitempty"`
}

type SpotMarketRequestCreateInput ¶

type SpotMarketRequestCreateInput struct {
	DevicesMax int32 `json:"devices_max,omitempty"`

	DevicesMin int32 `json:"devices_min,omitempty"`

	EndAt time.Time `json:"end_at,omitempty"`

	Facilities []string `json:"facilities,omitempty"`

	InstanceAttributes CreateSpotMarketRequestRequestInstanceAttributes `json:"instance_attributes,omitempty"`

	MaxBidPrice float32 `json:"max_bid_price,omitempty"`

	// The metro ID or code the spot market request will be created in.
	Metro string `json:"metro,omitempty"`
}

type SpotMarketRequestList ¶

type SpotMarketRequestList struct {
	SpotMarketRequests []ListSpotMarketRequests200ResponseSpotMarketRequestsInner `json:"spot_market_requests,omitempty"`
}

type SpotPricesDatapoints ¶

type SpotPricesDatapoints struct {
	Datapoints [][]float32 `json:"datapoints,omitempty"`
}

type SpotPricesHistoryReport ¶

type SpotPricesHistoryReport struct {
	PricesHistory FindSpotMarketPricesHistory200ResponsePricesHistory `json:"prices_history,omitempty"`
}

type SpotPricesPerBaremetal ¶

type SpotPricesPerBaremetal struct {
	Price float32 `json:"price,omitempty"`
}

type SpotPricesPerFacility ¶

type SpotPricesPerFacility struct {
	Baremetal0 FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"baremetal_0,omitempty"`

	Baremetal1 FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"baremetal_1,omitempty"`

	Baremetal2 FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"baremetal_2,omitempty"`

	Baremetal2a FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"baremetal_2a,omitempty"`

	Baremetal2a2 FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"baremetal_2a2,omitempty"`

	Baremetal3 FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"baremetal_3,omitempty"`

	BaremetalS FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"baremetal_s,omitempty"`

	C2MediumX86 FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"c2.medium.x86,omitempty"`

	M2XlargeX86 FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"m2.xlarge.x86,omitempty"`
}

type SpotPricesPerNewFacility ¶

type SpotPricesPerNewFacility struct {
	Baremetal1e FindSpotMarketPrices200ResponseSpotMarketPricesAms1Baremetal0 `json:"baremetal_1e,omitempty"`
}

type SshKey ¶

type SshKey struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	Entity FindBatchById200ResponseDevicesInner `json:"entity,omitempty"`

	Fingerprint string `json:"fingerprint,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Key string `json:"key,omitempty"`

	Label string `json:"label,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

type SshKeyCreateInput ¶

type SshKeyCreateInput struct {

	// List of instance UUIDs to associate SSH key with, when empty array is sent all instances belonging       to entity will be included
	InstancesIds []string `json:"instances_ids,omitempty"`

	Key string `json:"key,omitempty"`

	Label string `json:"label,omitempty"`
}

type SshKeyInput ¶

type SshKeyInput struct {
	Key string `json:"key,omitempty"`

	Label string `json:"label,omitempty"`
}

type SshKeyList ¶

type SshKeyList struct {
	SshKeys []FindDeviceSshKeys200ResponseSshKeysInner `json:"ssh_keys,omitempty"`
}

type SupportRequestInput ¶

type SupportRequestInput struct {
	DeviceId string `json:"device_id,omitempty"`

	Message string `json:"message"`

	Priority string `json:"priority,omitempty"`

	ProjectId string `json:"project_id,omitempty"`

	Subject string `json:"subject"`
}

type TransferRequest ¶

type TransferRequest struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	Project FindBatchById200ResponseDevicesInner `json:"project,omitempty"`

	TargetOrganization FindBatchById200ResponseDevicesInner `json:"target_organization,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

type TransferRequestInput ¶

type TransferRequestInput struct {
	TargetOrganizationId string `json:"target_organization_id,omitempty"`
}

type TransferRequestList ¶

type TransferRequestList struct {
	Transfers []FindOrganizationTransfers200ResponseTransfersInner `json:"transfers,omitempty"`
}

type UpdateCurrentUserRequest ¶

type UpdateCurrentUserRequest struct {
	Customdata map[string]interface{} `json:"customdata,omitempty"`

	FirstName string `json:"first_name,omitempty"`

	LastName string `json:"last_name,omitempty"`

	Password string `json:"password,omitempty"`

	PhoneNumber string `json:"phone_number,omitempty"`

	Timezone string `json:"timezone,omitempty"`
}

type UpdateDeviceRequest ¶

type UpdateDeviceRequest struct {
	AlwaysPxe bool `json:"always_pxe,omitempty"`

	BillingCycle string `json:"billing_cycle,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Description string `json:"description,omitempty"`

	Hostname string `json:"hostname,omitempty"`

	IpxeScriptUrl string `json:"ipxe_script_url,omitempty"`

	Locked bool `json:"locked,omitempty"`

	// If true, this instance can not be converted to a different network type.
	NetworkFrozen bool `json:"network_frozen,omitempty"`

	SpotInstance bool `json:"spot_instance,omitempty"`

	Tags []string `json:"tags,omitempty"`

	Userdata string `json:"userdata,omitempty"`
}

type UpdateEmailInput ¶

type UpdateEmailInput struct {
	Default bool `json:"default,omitempty"`
}

type UpdateEmailRequest ¶

type UpdateEmailRequest struct {
	Default bool `json:"default,omitempty"`
}

type UpdateInterconnectionRequest ¶

type UpdateInterconnectionRequest struct {
	ContactEmail string `json:"contact_email,omitempty"`

	Description string `json:"description,omitempty"`

	// The mode of the interconnection (only relevant to Dedicated Ports). Shared connections won't have this field. Can be either 'standard' or 'tunnel'.   The default mode of an interconnection on a Dedicated Port is 'standard'. The mode can only be changed when there are no associated virtual circuits on the interconnection.   In tunnel mode, an 802.1q tunnel is added to a port to send/receive double tagged packets from server instances.
	Mode string `json:"mode,omitempty"`

	Name string `json:"name,omitempty"`

	// Updating from 'redundant' to 'primary' will remove a secondary port, while updating from 'primary' to 'redundant' will add one.
	Redundancy string `json:"redundancy,omitempty"`

	Tags []string `json:"tags,omitempty"`
}

type UpdateLicenseRequest ¶

type UpdateLicenseRequest struct {
	Description string `json:"description,omitempty"`

	Size float32 `json:"size,omitempty"`
}

type UpdateMembershipRequest ¶

type UpdateMembershipRequest struct {
	Role []string `json:"role,omitempty"`
}

type UpdatePaymentMethodRequest ¶

type UpdatePaymentMethodRequest struct {
	BillingAddress map[string]interface{} `json:"billing_address,omitempty"`

	CardholderName string `json:"cardholder_name,omitempty"`

	Default bool `json:"default,omitempty"`

	ExpirationMonth string `json:"expiration_month,omitempty"`

	ExpirationYear int32 `json:"expiration_year,omitempty"`

	Name string `json:"name,omitempty"`
}

type UpdateProjectRequest ¶

type UpdateProjectRequest struct {
	BackendTransferEnabled bool `json:"backend_transfer_enabled,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Name string `json:"name,omitempty"`

	PaymentMethodId string `json:"payment_method_id,omitempty"`
}

type UpdateVirtualCircuitRequest ¶

type UpdateVirtualCircuitRequest struct {
	Description string `json:"description,omitempty"`

	Name string `json:"name,omitempty"`

	// Speed can be changed only if it is an interconnection on a Dedicated Port
	Speed string `json:"speed,omitempty"`

	Tags []string `json:"tags,omitempty"`

	// A Virtual Network record UUID or the VNID of a Virtual Network in your project.
	Vnid string `json:"vnid,omitempty"`
}

type UpdateVirtualCircuitRequestOneOf ¶

type UpdateVirtualCircuitRequestOneOf struct {
	Description string `json:"description,omitempty"`

	Name string `json:"name,omitempty"`

	// Speed can be changed only if it is an interconnection on a Dedicated Port
	Speed string `json:"speed,omitempty"`

	Tags []string `json:"tags,omitempty"`

	// A Virtual Network record UUID or the VNID of a Virtual Network in your project.
	Vnid string `json:"vnid,omitempty"`
}

type UpdateVirtualCircuitRequestOneOf1 ¶

type UpdateVirtualCircuitRequestOneOf1 struct {
	Description string `json:"description,omitempty"`

	Name string `json:"name,omitempty"`

	// Speed can be changed only if it is an interconnection on a Dedicated Port
	Speed string `json:"speed,omitempty"`

	Tags []string `json:"tags,omitempty"`
}

type UpdateVrfRequest ¶

type UpdateVrfRequest struct {
	Description string `json:"description,omitempty"`

	// A list of CIDR network addresses. Like [\"10.0.0.0/16\", \"2001:d78::/56\"]. IPv4 blocks must be between /8 and /29 in size. IPv6 blocks must be between /56 and /64. A VRF\\'s IP ranges must be defined in order to create VRF IP Reservations, which can then be used for Metal Gateways or Virtual Circuits. Adding a new CIDR address to the list will result in the creation of a new IP Range for this VRF. Removal of an existing CIDR address from the list will result in the deletion of an existing IP Range for this VRF. Deleting an IP Range will result in the deletion of any VRF IP Reservations contained within the IP Range, as well as the VRF IP Reservation\\'s associated Metal Gateways or Virtual Circuits. If you do not wish to add or remove IP Ranges, either include the full existing list of IP Ranges in the update request, or do not specify the `ip_ranges` field in the update request. Specifying a value of `[]` will remove all existing IP Ranges from the VRF.
	IpRanges []string `json:"ip_ranges,omitempty"`

	// The new `local_asn` value for the VRF. This field cannot be updated when there are active Interconnection Virtual Circuits associated to the VRF.
	LocalAsn int32 `json:"local_asn,omitempty"`

	Name string `json:"name,omitempty"`
}

type User ¶

type User struct {
	AvatarThumbUrl string `json:"avatar_thumb_url,omitempty"`

	AvatarUrl string `json:"avatar_url,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Email string `json:"email,omitempty"`

	Emails []FindBatchById200ResponseDevicesInner `json:"emails,omitempty"`

	FirstName string `json:"first_name,omitempty"`

	FraudScore string `json:"fraud_score,omitempty"`

	FullName string `json:"full_name,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	LastLoginAt time.Time `json:"last_login_at,omitempty"`

	LastName string `json:"last_name,omitempty"`

	MaxOrganizations int32 `json:"max_organizations,omitempty"`

	MaxProjects int32 `json:"max_projects,omitempty"`

	PhoneNumber string `json:"phone_number,omitempty"`

	ShortId string `json:"short_id,omitempty"`

	Timezone string `json:"timezone,omitempty"`

	TwoFactorAuth string `json:"two_factor_auth,omitempty"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

type UserCreateInput ¶

type UserCreateInput struct {
	Avatar *os.File `json:"avatar,omitempty"`

	CompanyName string `json:"company_name,omitempty"`

	CompanyUrl string `json:"company_url,omitempty"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Emails []CreateUserRequestEmailsInner `json:"emails"`

	FirstName string `json:"first_name"`

	LastName string `json:"last_name"`

	Level string `json:"level,omitempty"`

	Locked bool `json:"locked,omitempty"`

	Password string `json:"password,omitempty"`

	PhoneNumber string `json:"phone_number,omitempty"`

	SocialAccounts map[string]interface{} `json:"social_accounts,omitempty"`

	Timezone string `json:"timezone,omitempty"`

	Title string `json:"title,omitempty"`

	TwoFactorAuth string `json:"two_factor_auth,omitempty"`

	VerifiedAt time.Time `json:"verified_at,omitempty"`
}

type UserList ¶

type UserList struct {
	Meta FindDeviceEvents200ResponseMeta `json:"meta,omitempty"`

	Users []GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfCreatedBy `json:"users,omitempty"`
}

type UserLite ¶

type UserLite struct {

	// Avatar thumbnail URL of the User
	AvatarThumbUrl string `json:"avatar_thumb_url,omitempty"`

	// When the user was created
	CreatedAt time.Time `json:"created_at,omitempty"`

	// Primary email address of the User
	Email string `json:"email,omitempty"`

	// First name of the User
	FirstName string `json:"first_name,omitempty"`

	// Full name of the User
	FullName string `json:"full_name,omitempty"`

	// API URL uniquely representing the User
	Href string `json:"href,omitempty"`

	// ID of the User
	Id string `json:"id"`

	// Last name of the User
	LastName string `json:"last_name,omitempty"`

	// Short ID of the User
	ShortId string `json:"short_id"`

	// When the user details were last updated
	UpdatedAt time.Time `json:"updated_at,omitempty"`
}

type UserUpdateInput ¶

type UserUpdateInput struct {
	Customdata map[string]interface{} `json:"customdata,omitempty"`

	FirstName string `json:"first_name,omitempty"`

	LastName string `json:"last_name,omitempty"`

	Password string `json:"password,omitempty"`

	PhoneNumber string `json:"phone_number,omitempty"`

	Timezone string `json:"timezone,omitempty"`
}

type Userdata ¶

type Userdata struct {
	Userdata string `json:"userdata,omitempty"`
}

type VirtualCircuit ¶

type VirtualCircuit struct {

	// True if the Virtual Circuit is being billed. Currently, only Virtual Circuits of Fabric VCs (Metal Billed) will be billed. Usage will start the first time the Virtual Circuit becomes active, and will not stop until it is deleted from Metal.
	Bill bool `json:"bill"`

	Description string `json:"description"`

	Id string `json:"id"`

	Name string `json:"name"`

	NniVlan int32 `json:"nni_vlan"`

	Port FindBatchById200ResponseDevicesInner `json:"port"`

	Project FindBatchById200ResponseDevicesInner `json:"project"`

	// For Virtual Circuits on shared and dedicated connections, this speed should match the one set on their Interconnection Ports. For Virtual Circuits on Fabric VCs (both Metal and Fabric Billed) that have found their corresponding Fabric connection, this is the actual speed of the interconnection that was configured when setting up the interconnection on the Fabric Portal. Details on Fabric VCs are included in the specification as a developer preview and is generally unavailable. Please contact our Support team for more details.
	Speed int32 `json:"speed,omitempty"`

	// The status of a Virtual Circuit is always 'Pending' on creation. The status can turn to 'Waiting on Customer VLAN' if the VLAN was not set yet on the Virtual Circuit and is the last step needed for full activation. For Dedicated interconnections, as long as the Dedicated Port has been associated to the Virtual Circuit and a NNI VNID has been set, it will turn to 'Waiting on Customer VLAN'. For Fabric VCs, which are not generally available, it will only change to 'Waiting on Customer VLAN' once the corresponding Fabric connection has been found on the Fabric side. Once a VLAN is set on the Virtual Circuit (which for Fabric VCs, can be set on creation) and the necessary set up is done, it will turn into 'Activating' status as it tries to activate the Virtual Circuit. Once the Virtual Circuit fully activates and is configured on the switch, it will turn to staus 'Active'. For Fabric VCs (Metal Billed), we will start billing the moment the status of the Virtual Circuit turns to 'Active'. If there are any changes to the VLAN after the Virtual Circuit is in an 'Active' status, the status will show 'Changing VLAN' if a new VLAN has been provided, or 'Deactivating' if we are removing the VLAN. When a deletion request is issued for the Virtual Circuit, it will move to a 'deleting' status until it is fully deleted. If the Virtual Circuit is on a Fabric VC, it can also change into an 'Expired' status if the associated service token has expired. To get access to Fabric VCs, please contact our Support Team for more details.
	Status string `json:"status"`

	Tags []string `json:"tags"`

	VirtualNetwork FindBatchById200ResponseDevicesInner `json:"virtual_network"`

	Vnid int32 `json:"vnid"`
}

type VirtualCircuitCreateInput ¶

type VirtualCircuitCreateInput struct {
	Description string `json:"description,omitempty"`

	Name string `json:"name,omitempty"`

	NniVlan int32 `json:"nni_vlan,omitempty"`

	Project string `json:"project,omitempty"`

	// speed can be passed as integer number representing bps speed or string (e.g. '52m' or '100g' or '4 gbps')
	Speed int32 `json:"speed,omitempty"`

	Tags []string `json:"tags,omitempty"`

	// A Virtual Network record UUID or the VNID of a Virtual Network in your project (sent as integer).
	Vnid string `json:"vnid,omitempty"`
}

type VirtualCircuitList ¶

type VirtualCircuitList struct {
	VirtualCircuits []GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInner `json:"virtual_circuits,omitempty"`
}

type VirtualCircuitUpdateInput ¶

type VirtualCircuitUpdateInput struct {
	Description string `json:"description,omitempty"`

	Name string `json:"name,omitempty"`

	// Speed can be changed only if it is an interconnection on a Dedicated Port
	Speed string `json:"speed,omitempty"`

	Tags []string `json:"tags,omitempty"`

	// A Virtual Network record UUID or the VNID of a Virtual Network in your project.
	Vnid string `json:"vnid,omitempty"`
}

type VirtualNetwork ¶

type VirtualNetwork struct {
	AssignedTo FindBatchById200ResponseDevicesInner `json:"assigned_to,omitempty"`

	// True if the virtual network is attached to a virtual circuit. False if not.
	AssignedToVirtualCircuit bool `json:"assigned_to_virtual_circuit,omitempty"`

	Description string `json:"description,omitempty"`

	Facility FindBatchById200ResponseDevicesInner `json:"facility,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	// A list of instances with ports currently associated to this Virtual Network.
	Instances []FindBatchById200ResponseDevicesInner `json:"instances,omitempty"`

	// A list of metal gateways currently associated to this Virtual Network.
	MetalGateways []FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetworkMetalGatewaysInner `json:"metal_gateways,omitempty"`

	Metro FindBatchById200ResponseDevicesInner `json:"metro,omitempty"`

	// The Metro code of the metro in which this Virtual Network is defined.
	MetroCode string `json:"metro_code,omitempty"`

	Vxlan int32 `json:"vxlan,omitempty"`
}

type VirtualNetworkCreateInput ¶

type VirtualNetworkCreateInput struct {
	Description string `json:"description,omitempty"`

	// The UUID (or facility code) for the Facility in which to create this Virtual network.
	Facility string `json:"facility,omitempty"`

	// The UUID (or metro code) for the Metro in which to create this Virtual Network.
	Metro string `json:"metro,omitempty"`

	ProjectId string `json:"project_id"`

	// VLAN ID between 2-3999. Must be unique for the project within the Metro in which this Virtual Network is being created. If no value is specified, the next-available VLAN ID in the range 1000-1999 will be automatically selected.
	Vxlan int32 `json:"vxlan,omitempty"`
}

type VirtualNetworkList ¶

type VirtualNetworkList struct {
	VirtualNetworks []FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetwork `json:"virtual_networks,omitempty"`
}

type Vrf ¶

type Vrf struct {
	Id string `json:"id,omitempty"`

	Name string `json:"name,omitempty"`

	// Optional field that can be set to describe the VRF
	Description string `json:"description,omitempty"`

	// A 4-byte ASN associated with the VRF.
	LocalAsn int32 `json:"local_asn,omitempty"`

	// A list of CIDR network addresses. Like [\"10.0.0.0/16\", \"2001:d78::/56\"].
	IpRanges []string `json:"ip_ranges,omitempty"`

	Project GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfProject `json:"project,omitempty"`

	Metro GetInterconnection200ResponseMetroAllOf `json:"metro,omitempty"`

	CreatedBy GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfCreatedBy `json:"created_by,omitempty"`

	Href string `json:"href,omitempty"`
}

type VrfCreateInput ¶

type VrfCreateInput struct {
	Description string `json:"description,omitempty"`

	// A list of CIDR network addresses. Like [\"10.0.0.0/16\", \"2001:d78::/56\"]. IPv4 blocks must be between /8 and /29 in size. IPv6 blocks must be between /56 and /64. A VRF\\'s IP ranges must be defined in order to create VRF IP Reservations, which can then be used for Metal Gateways or Virtual Circuits.
	IpRanges []string `json:"ip_ranges,omitempty"`

	LocalAsn int32 `json:"local_asn,omitempty"`

	// The UUID (or metro code) for the Metro in which to create this VRF.
	Metro string `json:"metro"`

	Name string `json:"name"`

	ProjectId string `json:"project_id"`
}

type VrfIpReservation ¶

type VrfIpReservation struct {
	AddressFamily int32 `json:"address_family,omitempty"`

	Cidr int32 `json:"cidr,omitempty"`

	CreatedAt time.Time `json:"created_at,omitempty"`

	CreatedBy FindBatchById200ResponseDevicesInner `json:"created_by,omitempty"`

	Details string `json:"details,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	MetalGateway FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetworkMetalGatewaysInner `json:"metal_gateway,omitempty"`

	Netmask string `json:"netmask,omitempty"`

	Network string `json:"network,omitempty"`

	Project GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfProject `json:"project,omitempty"`

	State string `json:"state,omitempty"`

	Tags []string `json:"tags,omitempty"`

	Type string `json:"type,omitempty"`

	Vrf GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1Vrf `json:"vrf"`
}

type VrfIpReservationCreateInput ¶

type VrfIpReservationCreateInput struct {

	// The size of the VRF IP Reservation's subnet
	Cidr int32 `json:"cidr"`

	Customdata map[string]interface{} `json:"customdata,omitempty"`

	Details string `json:"details,omitempty"`

	// The starting address for this VRF IP Reservation's subnet
	Network string `json:"network"`

	Tags []string `json:"tags,omitempty"`

	// Must be set to 'vrf'
	Type string `json:"type"`

	// The ID of the VRF in which this VRF IP Reservation is created. The VRF must have an existing IP Range that contains the requested subnet. This field may be aliased as just 'vrf'.
	VrfId string `json:"vrf_id"`
}

type VrfIpReservationList ¶

type VrfIpReservationList struct {
	IpAddresses []FindIpAddressById200ResponseOneOf1 `json:"ip_addresses,omitempty"`
}

type VrfList ¶

type VrfList struct {
	Vrfs []GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1Vrf `json:"vrfs,omitempty"`
}

type VrfMetalGateway ¶

type VrfMetalGateway struct {
	CreatedAt time.Time `json:"created_at,omitempty"`

	CreatedBy FindBatchById200ResponseDevicesInner `json:"created_by,omitempty"`

	Href string `json:"href,omitempty"`

	Id string `json:"id,omitempty"`

	IpReservation FindIpAddressById200ResponseOneOf1 `json:"ip_reservation,omitempty"`

	Project GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1VrfProject `json:"project,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"`

	UpdatedAt time.Time `json:"updated_at,omitempty"`

	VirtualNetwork FindDeviceById200ResponseNetworkPortsInnerNativeVirtualNetwork `json:"virtual_network,omitempty"`

	Vrf GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1Vrf `json:"vrf,omitempty"`
}

type VrfMetalGatewayCreateInput ¶

type VrfMetalGatewayCreateInput struct {

	// The UUID an a VRF IP Reservation that belongs to the same project as the one in which the Metal Gateway is to be created. Additionally, the VRF IP Reservation and the Virtual Network must reside in the same Metro.
	IpReservationId string `json:"ip_reservation_id"`

	// THe UUID of a Metro Virtual Network that belongs to the same project as the one in which the Metal Gateway is to be created. Additionally, the Virtual Network and the VRF IP Reservation must reside in the same metro.
	VirtualNetworkId string `json:"virtual_network_id"`
}

type VrfUpdateInput ¶

type VrfUpdateInput struct {
	Description string `json:"description,omitempty"`

	// A list of CIDR network addresses. Like [\"10.0.0.0/16\", \"2001:d78::/56\"]. IPv4 blocks must be between /8 and /29 in size. IPv6 blocks must be between /56 and /64. A VRF\\'s IP ranges must be defined in order to create VRF IP Reservations, which can then be used for Metal Gateways or Virtual Circuits. Adding a new CIDR address to the list will result in the creation of a new IP Range for this VRF. Removal of an existing CIDR address from the list will result in the deletion of an existing IP Range for this VRF. Deleting an IP Range will result in the deletion of any VRF IP Reservations contained within the IP Range, as well as the VRF IP Reservation\\'s associated Metal Gateways or Virtual Circuits. If you do not wish to add or remove IP Ranges, either include the full existing list of IP Ranges in the update request, or do not specify the `ip_ranges` field in the update request. Specifying a value of `[]` will remove all existing IP Ranges from the VRF.
	IpRanges []string `json:"ip_ranges,omitempty"`

	// The new `local_asn` value for the VRF. This field cannot be updated when there are active Interconnection Virtual Circuits associated to the VRF.
	LocalAsn int32 `json:"local_asn,omitempty"`

	Name string `json:"name,omitempty"`
}

type VrfVirtualCircuit ¶

type VrfVirtualCircuit struct {

	// An IP address from the subnet that will be used on the Customer side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Metal IP. By default, the last usable IP address in the subnet will be used.
	CustomerIp string `json:"customer_ip,omitempty"`

	Description string `json:"description,omitempty"`

	Id string `json:"id,omitempty"`

	// The MD5 password for the BGP peering in plaintext (not a checksum).
	Md5 string `json:"md5,omitempty"`

	// An IP address from the subnet that will be used on the Metal side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Customer IP. By default, the first usable IP address in the subnet will be used.
	MetalIp string `json:"metal_ip,omitempty"`

	Name string `json:"name,omitempty"`

	Port FindBatchById200ResponseDevicesInner `json:"port,omitempty"`

	NniVlan int32 `json:"nni_vlan,omitempty"`

	// The peer ASN that will be used with the VRF on the Virtual Circuit.
	PeerAsn int32 `json:"peer_asn,omitempty"`

	Project FindBatchById200ResponseDevicesInner `json:"project,omitempty"`

	// integer representing bps speed
	Speed int32 `json:"speed,omitempty"`

	Status string `json:"status,omitempty"`

	// The /30 or /31 subnet of one of the VRF IP Blocks that will be used with the VRF for the Virtual Circuit. This subnet does not have to be an existing VRF IP reservation, as we will create the VRF IP reservation on creation if it does not exist. The Metal IP and Customer IP must be IPs from this subnet. For /30 subnets, the network and broadcast IPs cannot be used as the Metal or Customer IP.
	Subnet string `json:"subnet,omitempty"`

	Tags []string `json:"tags,omitempty"`

	Vrf GetInterconnection200ResponsePortsInnerVirtualCircuitsVirtualCircuitsInnerAnyOf1Vrf `json:"vrf,omitempty"`
}

type VrfVirtualCircuitCreateInput ¶

type VrfVirtualCircuitCreateInput struct {

	// An IP address from the subnet that will be used on the Customer side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Metal IP. By default, the last usable IP address in the subnet will be used.
	CustomerIp string `json:"customer_ip,omitempty"`

	Description string `json:"description,omitempty"`

	// The MD5 password for the BGP peering in plaintext (not a checksum).
	Md5 *string `json:"md5,omitempty"`

	// An IP address from the subnet that will be used on the Metal side. This parameter is optional, but if supplied, we will use the other usable IP address in the subnet as the Customer IP. By default, the first usable IP address in the subnet will be used.
	MetalIp string `json:"metal_ip,omitempty"`

	Name string `json:"name,omitempty"`

	NniVlan int32 `json:"nni_vlan"`

	// The peer ASN that will be used with the VRF on the Virtual Circuit.
	PeerAsn int32 `json:"peer_asn"`

	Project string `json:"project"`

	// speed can be passed as integer number representing bps speed or string (e.g. '52m' or '100g' or '4 gbps')
	Speed int32 `json:"speed,omitempty"`

	// The /30 or /31 subnet of one of the VRF IP Blocks that will be used with the VRF for the Virtual Circuit. This subnet does not have to be an existing VRF IP reservation, as we will create the VRF IP reservation on creation if it does not exist. The Metal IP and Customer IP must be IPs from this subnet. For /30 subnets, the network and broadcast IPs cannot be used as the Metal or Customer IP. The subnet specified must be contained within an already-defined IP Range for the VRF.
	Subnet string `json:"subnet"`

	Tags []string `json:"tags,omitempty"`

	// The UUID of the VRF that will be associated with the Virtual Circuit.
	Vrf string `json:"vrf"`
}

type VrfVirtualCircuitUpdateInput ¶

type VrfVirtualCircuitUpdateInput struct {
	Description string `json:"description,omitempty"`

	Name string `json:"name,omitempty"`

	// Speed can be changed only if it is an interconnection on a Dedicated Port
	Speed string `json:"speed,omitempty"`

	Tags []string `json:"tags,omitempty"`
}

Source Files ¶

Jump to

Keyboard shortcuts

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