Documentation ¶
Index ¶
- Constants
- Variables
- func Create(paperspaceProvider *PaperspaceProvider) error
- func Delete(paperspaceProvider *PaperspaceProvider) error
- func GetPrivateKey(paperspaceProvider *PaperspaceProvider) (string, error)
- func GetPrivateKeyBase(paperspaceProvider *PaperspaceProvider) ([]byte, error)
- func GetPublicKey(paperspaceProvider *PaperspaceProvider) (string, error)
- func GetPublicKeyBase(paperspaceProvider *PaperspaceProvider) (string, error)
- func Init(paperspaceProvider *PaperspaceProvider) error
- func Start(paperspaceProvider *PaperspaceProvider) error
- func Status(paperspaceProvider *PaperspaceProvider) (client.Status, error)
- func Stop(paperspaceProvider *PaperspaceProvider) error
- type APIBackend
- type Backend
- type Client
- func (c Client) CreateMachine(params CreateMachineParams) (Machine, error)
- func (c Client) CreateScript(params CreateScriptParams) (Script, error)
- func (c Client) DestroyMachine(params DestroyMachineParams) (Machine, error)
- func (c Client) DestroyScript(params DestroyScriptParams) (Script, error)
- func (c Client) GetMachine(params GetMachineParams) (GetMachineResponse, error)
- func (c Client) GetMachines(params GetMachinesParams) ([]Machine, error)
- func (c *Client) Request(method string, url string, params, result interface{}, ...) (*http.Response, error)
- func (c Client) RestartMachine(params RestartMachineParams) (Machine, error)
- func (c Client) StartMachine(params StartMachineParams) (Machine, error)
- func (c Client) StopMachine(params StopMachineParams) (Machine, error)
- func (c Client) UpdateMachine(params UpdateMachineParams) (Machine, error)
- type CreateMachineParams
- type CreateScriptParams
- type DestroyMachineParams
- type DestroyScriptParams
- type Event
- type GetMachineParams
- type GetMachineResponse
- type GetMachinesParams
- type Machine
- type PaperspaceError
- type PaperspaceErrorResponse
- type PaperspaceProvider
- type RequestParams
- type RestartMachineParams
- type Script
- type StartMachineParams
- type StopMachineParams
- type UpdateMachineParams
Constants ¶
const ( Off = "off" Starting = "starting" Stopping = "stopping" Restarting = "restarting" ServiceReady = "serviceReady" Ready = "ready" Upgrading = "upgrading" Provisioning = "provisioning" )
MachineState represents the state of a Paperspace machine
Variables ¶
var DefaultBaseURL = "https://api.paperspace.io"
var SuccessStatusCodes = []int{ http.StatusOK, http.StatusCreated, http.StatusAccepted, http.StatusNonAuthoritativeInfo, http.StatusNoContent, }
Functions ¶
func Create ¶
func Create(paperspaceProvider *PaperspaceProvider) error
func Delete ¶
func Delete(paperspaceProvider *PaperspaceProvider) error
func GetPrivateKey ¶ added in v0.0.15
func GetPrivateKey(paperspaceProvider *PaperspaceProvider) (string, error)
GetPublicKey returns the public key of the Paperspace provider
func GetPrivateKeyBase ¶ added in v0.0.15
func GetPrivateKeyBase(paperspaceProvider *PaperspaceProvider) ([]byte, error)
GetPrivateKeyBase returns the private key of the Paperspace provider in a byte slice
func GetPublicKey ¶ added in v0.0.15
func GetPublicKey(paperspaceProvider *PaperspaceProvider) (string, error)
GetPublicKey returns the public key of the Paperspace provider
func GetPublicKeyBase ¶ added in v0.0.15
func GetPublicKeyBase(paperspaceProvider *PaperspaceProvider) (string, error)
GetPublicKeyBase returns the public key of the Paperspace provider in Base64 string
func Init ¶
func Init(paperspaceProvider *PaperspaceProvider) error
func Start ¶
func Start(paperspaceProvider *PaperspaceProvider) error
func Stop ¶
func Stop(paperspaceProvider *PaperspaceProvider) error
Types ¶
type APIBackend ¶
type APIBackend struct { BaseURL string Debug bool DebugBody bool HTTPClient *http.Client RetryCount int }
func NewAPIBackend ¶
func NewAPIBackend() *APIBackend
func (*APIBackend) Request ¶
func (c *APIBackend) Request(method string, url string, params, result interface{}, requestParams RequestParams) (res *http.Response, err error)
type Client ¶
func NewClientWithBackend ¶
func (Client) CreateMachine ¶
func (c Client) CreateMachine(params CreateMachineParams) (Machine, error)
CreateMachine creates a machine
func (Client) CreateScript ¶ added in v0.0.15
func (c Client) CreateScript(params CreateScriptParams) (Script, error)
CreateScript creates a script
func (Client) DestroyMachine ¶
func (c Client) DestroyMachine(params DestroyMachineParams) (Machine, error)
DestroyMachine destroys a machine
func (Client) DestroyScript ¶ added in v0.0.15
func (c Client) DestroyScript(params DestroyScriptParams) (Script, error)
DestroyScript destroys a script
func (Client) GetMachine ¶
func (c Client) GetMachine(params GetMachineParams) (GetMachineResponse, error)
CreateMachine creates a machine
func (Client) GetMachines ¶
func (c Client) GetMachines(params GetMachinesParams) ([]Machine, error)
GetMachines gets a list of machines
func (Client) RestartMachine ¶
func (c Client) RestartMachine(params RestartMachineParams) (Machine, error)
RestartMachine restarts a machine
func (Client) StartMachine ¶
func (c Client) StartMachine(params StartMachineParams) (Machine, error)
StartMachine starts a machine
func (Client) StopMachine ¶
func (c Client) StopMachine(params StopMachineParams) (Machine, error)
StopMachine stops a machine
func (Client) UpdateMachine ¶
func (c Client) UpdateMachine(params UpdateMachineParams) (Machine, error)
UpdateMachine updates a machine
type CreateMachineParams ¶
type CreateMachineParams struct { RequestParams MachineName string `json:"machineName"` // required MachineType string `json:"machineType"` // required TemplateID string `json:"templateId"` // required Region string `json:"region"` // required Size int `json:"size"` // required BillingType string `json:"billingType"` // required NetworkId string `json:"networkId,omitempty"` AssignPublicIP bool `json:"assignPublicIp,omitempty"` DynamicPublicIP bool `json:"dynamicPublicIp,omitempty"` StartOnCreate bool `json:"startOnCreate,omitempty"` StartupScriptId string `json:"startupScriptId,omitempty"` UserId string `json:"userId,omitempty"` Email string `json:"email,omitempty"` Password string `json:"password,omitempty"` FirstName string `json:"firstName,omitempty"` LastName string `json:"lastName,omitempty"` NotificationEmail string `json:"notificationEmail,omitempty"` TakeInitialSnapshot bool `json:"takeInitialSnapshot,omitempty"` RestorePointEnabled bool `json:"restorePointEnabled,omitempty"` RestorePointFrequency string `json:"restorePointFrequency,omitempty"` EnableNvlink bool `json:"enableNvlink,omitempty"` }
CreateMachineParams represents the parameters for CreateMachine method
type CreateScriptParams ¶ added in v0.0.15
type CreateScriptParams struct { RequestParams ScriptName string `json:"scriptName"` ScriptFile string `json:"scriptFile,omitempty"` ScriptText string `json:"scriptText,omitempty"` ScriptDescription string `json:"scriptDescription,omitempty"` IsEnabled bool `json:"isEnabled,omitempty"` RunOnce bool `json:"runOnce,omitempty"` MachineID string `json:"machineId,omitempty"` }
CreateScriptParams are the parameters for creating a script
type DestroyMachineParams ¶
type DestroyMachineParams struct { RequestParams MachineID string `json:"machineId"` // required ReleasePublicIP bool `json:"releasePublicIp,omitempty"` }
DestroyMachineParams represents the parameters for StopMachine method
type DestroyScriptParams ¶ added in v0.0.15
type DestroyScriptParams struct { RequestParams ScriptID string `json:"machineId,omitempty"` }
DestroyScriptParams are the parameters for destroying a script
type GetMachineParams ¶
type GetMachineParams struct { RequestParams MachineID string `json:"machineId" url:"machineId"` // required }
GetMachineParams represents the parameters for GetMachine method
type GetMachineResponse ¶
type GetMachineResponse struct { ID string `json:"id"` Name string `json:"name"` OS string `json:"os"` RAM int64 `json:"ram,string"` CPUs int `json:"cpus"` GPU string `json:"gpu"` StorageTotal int64 `json:"storageTotal,string"` StorageUsed int64 `json:"storageUsed,string"` MachineType string `json:"machineType"` UsageRate string `json:"usageRate"` ShutdownTimeoutInHours int `json:"shutdownTimeoutInHours"` ShutdownTimeoutForces bool `json:"shutdownTimeoutForces"` PerformAutoSnapshot bool `json:"performAutoSnapshot"` AutoSnapshotFrequency string `json:"autoSnapshotFrequency"` AutoSnapshotSaveCount int `json:"autoSnapshotSaveCount"` DynamicPublicIP bool `json:"dynamicPublicIp"` AgentType string `json:"agentType"` DtCreated time.Time `json:"dtCreated"` State string `json:"state"` UpdatesPending bool `json:"updatesPending"` NetworkID string `json:"networkId"` PrivateIPAddress string `json:"privateIpAddress"` PublicIPAddress string `json:"publicIpAddress"` Region string `json:"region"` ScriptID string `json:"scriptId"` // pointer to handle null value DtLastRun time.Time `json:"dtLastRun"` // pointer to handle null value RestorePointSnapshotID string `json:"restorePointSnapshotId"` // pointer to handle null value RestorePointFrequency string `json:"restorePointFrequency"` // pointer to handle null value Events []Event `json:"events"` // slice of Event structs }
func GetDevpodInstance ¶
func GetDevpodInstance(paperspaceProvider *PaperspaceProvider) (*GetMachineResponse, error)
type GetMachinesParams ¶
type GetMachinesParams struct { RequestParams Limit string `json:"limit,omitempty" url:"limit,omitempty"` Skip string `json:"skip,omitempty" url:"skip,omitempty"` MachineID string `json:"machineId,omitempty" url:"machineId,omitempty"` Name string `json:"name,omitempty" url:"name,omitempty"` OS string `json:"os,omitempty" url:"os,omitempty"` RAM string `json:"ram,omitempty" url:"ram,omitempty"` CPUs int `json:"cpu,omitempty" url:"cpu,omitempty"` GPU string `json:"gpu,omitempty" url:"gpu,omitempty"` StorageTotal string `json:"storageTotal,omitempty" url:"storageTotal,omitempty"` StorageUsed string `json:"storageUsed,omitempty" url:"storageUsed,omitempty"` UsageRate string `json:"usageRate,omitempty" url:"usageRate,omitempty"` ShutdownTimeoutInHours int `json:"shutdownTimeoutInHours,omitempty" url:"shutdownTimeoutInHours,omitempty"` PerformAutoSnapshot bool `json:"performAutoSnapshot,omitempty" url:"performAutoSnapshot,omitempty"` AutoSnapshotFrequency string `json:"autoSnapshotFrequency,omitempty" url:"autoSnapshotFrequency,omitempty"` AutoSnapshotSaveCount int `json:"autoSnapshotSaveCount,omitempty" url:"autoSnapshotSaveCount,omitempty"` AgentType string `json:"agentType,omitempty" url:"agentType,omitempty"` DtCreated string `json:"dtCreated,omitempty" url:"dtCreated,omitempty"` State string `json:"state,omitempty" url:"state,omitempty"` UpdatesPending string `json:"updatesPending,omitempty" url:"updatesPending,omitempty"` NetworkID string `json:"networkId,omitempty" url:"networkId,omitempty"` PrivateIPAddress string `json:"privateIpAddress,omitempty" url:"privateIpAddress,omitempty"` PublicIPAddress string `json:"publicIpAddress,omitempty" url:"publicIpAddress,omitempty"` Region string `json:"region,omitempty" url:"region,omitempty"` UserID string `json:"userId,omitempty" url:"userId,omitempty"` TeamID string `json:"teamId,omitempty" url:"teamId,omitempty"` ScriptID string `json:"scriptId,omitempty" url:"scriptId,omitempty"` DtLastRun string `json:"dtLastRun,omitempty" url:"dtLastRun,omitempty"` }
ListMachinesParams represents the parameters object for ListMachines method
type Machine ¶
type Machine struct { ID string `json:"id"` Name string `json:"name"` OS string `json:"os"` RAM string `json:"ram"` CPUs int `json:"cpus"` GPU string `json:"gpu"` StorageTotal string `json:"storageTotal"` StorageUsed string `json:"storageUsed"` MachineType string `json:"machineType"` UsageRate string `json:"usageRate"` ShutdownTimeoutInHours int `json:"shutdownTimeoutInHours"` ShutdownTimeoutForces bool `json:"shutdownTimeoutForces"` PerformAutoSnapshot bool `json:"performAutoSnapshot"` AutoSnapshotFrequency string `json:"autoSnapshotFrequency"` AutoSnapshotSaveCount int `json:"autoSnapshotSaveCount"` DynamicPublicIP bool `json:"dynamicPublicIp"` AgentType string `json:"agentType"` DtCreated string `json:"dtCreated"` State string `json:"state"` UpdatesPending bool `json:"updatesPending"` NetworkID string `json:"networkId"` PrivateIPAddress string `json:"privateIpAddress"` PublicIPAddress string `json:"publicIpAddress"` Region string `json:"region"` ScriptID string `json:"scriptId"` DtLastRun string `json:"dtLastRun"` RestorePointSnapshotID string `json:"restorePointSnapshotId"` RestorePointFrequency string `json:"restorePointFrequency"` InternalID int `json:"internalId"` }
Machine represents a Paperspace machine
type PaperspaceError ¶
type PaperspaceError struct { Name string `json:"name"` Message string `json:"message"` Status int `json:"status"` }
func (PaperspaceError) Error ¶
func (e PaperspaceError) Error() string
type PaperspaceErrorResponse ¶
type PaperspaceErrorResponse struct {
Error *PaperspaceError `json:"error"`
}
type PaperspaceProvider ¶
func NewProvider ¶
func NewProvider(logs log.Logger, init bool) (*PaperspaceProvider, error)
type RequestParams ¶
type RestartMachineParams ¶
type RestartMachineParams struct { RequestParams MachineID string `json:"machineId"` // required }
RestartMachineParams represents the parameters for StopMachine method
type Script ¶ added in v0.0.15
type Script struct { ID string `json:"id"` OwnerType string `json:"ownerType"` OwnerID string `json:"ownerId"` Name string `json:"name"` Description string `json:"description"` DtCreated time.Time `json:"dtCreated"` IsEnabled bool `json:"isEnabled"` RunOnce bool `json:"runOnce"` }
Script is the structure of a script
type StartMachineParams ¶
type StartMachineParams struct { RequestParams MachineID string `json:"machineId"` // required }
StartMachineParams represents the parameters for StartMachine method
type StopMachineParams ¶
type StopMachineParams struct { RequestParams MachineID string `json:"machineId"` // required }
StopMachineParams represents the parameters for StopMachine method
type UpdateMachineParams ¶
type UpdateMachineParams struct { RequestParams MachineID string `json:"machineId"` // required MachineName string `json:"machineName,omitempty"` // optional ShutdownTimeoutInHours int `json:"shutdownTimeoutInHours,omitempty"` // optional ShutdownTimeoutForces int `json:"shutdownTimeoutForces,omitempty"` // optional PerformAutoSnapshot bool `json:"performAutoSnapshot,omitempty"` // optional AutoSnapshotFrequency string `json:"autoSnapshotFrequency,omitempty"` // optional AutoSnapshotSaveCount int `json:"autoSnapshotSaveCount,omitempty"` // optional DynamicPublicIP bool `json:"dynamicPublicIp,omitempty"` // optional AssignPublicIP bool `json:"assignPublicIp,omitempty"` // optional }
UpdateMachineParams represents the parameters for UpdateMachine method