Instances

CycleCloud tracks each instance in your account in a Cloud.Instance record, even instances not started by CycleCloud. It collects the data periodically and removes instances that are no longer listed in your cloud provider. Note that Cloud.Instance is an abstract type: records from the cloud provider are actually stored in a cloud-specific type (e.g., AWS.Instance), and Cloud.Instance is a standardized reflection of the records from all the actual types. The terminology used in Cloud.Instance does not always match perfectly with the terminology provided by the cloud-service provider’s own tools (e.g., StartTime instead of the AWS-specific LaunchTime).

InstanceId
Uniquely identifies this instance across a cloud provider. This value
comes from the cloud provider, and is either their unique id or a
composite name that CycleCloud creates which is uniquely identifying.
Provider
The name of the cloud-service provider for this instance. This is a
CycleCloud name for the provider being used, e.g., “aws”. Taken
together with the InstanceId, this uniquely identifies a single
instance.

The properties of the instances are available as the following attributes:

CreatedTime
The time that this instance was created.
DeletedTime
The time that this instance was deleted. This is only defined after
the instance is no longer listed in the cloud provider.
EndTime
The time this instance stopped running.
EnteredCurrentState
The time that this instance transitioned into its current state. For
example, if this instance is Started, this is the time it started.
ImageId
The specific OS image from which this instance was started. This name
is supplied by the cloud-service provider.
InputEndpoints
A record of all the protocols defined on this instance. Provides a
mapping from the protocol (eg, ‘ssh’, ‘rdp’) to the public and/or
private ports for this protocol.
KeyPair
The name of the keypair used to access this instance. This is supplied
by the cloud-service provider.
MachineState
Indicates the overall state of this virtual machine. One of
Starting, Started, Stopping, Stopped, Terminating,
Terminated, or Unknown. Cloud-provider-specific states are
translated into this state. Generally speaking, you are billed for the
instance while in the Starting and Started states, and not in the
Stopping, Stopped, Terminating or Terminated states.You will typically
be billed for some period of time after the instance leaves the
Started state, according to the billing granularity specified by your
cloud provider.If an instance is in the Unknown state, CycleCloud
cannot determine if you are being billed or not.
MachineStateMessage
Provides more detail about the machine state in human-readable form.
MachineType
The cloud-provider-specific name or class of the hardware this
instance is running on.
PrivateHostName
The internal DNS name used to access this instance.
PrivateIp
The internal IP address used to access this instance.
PublicHostname
The external DNS name used to access this instance. This is undefined
if the instance cannot be reached from outside of its subnet.
PublicIp
The external IP address used to access this instance. This is
undefined if the instance cannot be reached from outside of its
subnet.
Region
The name of the geographical locality in which this instance is
located. This name is specific to a cloud-service-provider.
StartTime
The time this instance was started.
Status
An overall summary of the status or health of this instance. If there
are no known issues with this instance, the Status is ok. If there
are problems that may require attention, the Status attribute is
warning. If there are currently known issues with the instance, the
Status attribute is error.
StatusChecks
A collection of all the status checks that have been run on this
instance. This is a nested record containing potentially many entries.
Each attribute is the name of the status check being run; each value
is itself a nested record which consists of Status and Description
attributes, as well as additional information that may be provided by
the specific check. The Status attribute on each check is ok,
warning or error, similar to the overall status. Note: not all
cloud providers support the same set of checks.
TagList
A list of names used to tag this instance. This attribute depends on
the cloud-service provider. Some providers may not offer a way to tag
instances. Some may only support a list of strings.
Tags
A nested record of custom key-value used to tag this instance. This
depends on the cloud-service provider. For providers that only support
a list of strings,each name is converted to a key-value pair if it is
in the form key:value or key=value.
Zone
A data center or availability zone within a region (optional). This
name is specific to a cloud-service-provider.

There are also attributes that CycleCloud provides to track the billing on an instance.

SessionUptime
How long this instance has been running since it was last started.
This is reset every time the instance is stopped and started again.
SessionBilledTime
How much billable time this instance has accumulated since it was last
started.
PreviousUptime
How long this instance has been running in total prior to the current
session. 0 if this instance has never been stopped.
PreviousBilledTime
How much billable time this instance has accumulated prior to the
current session. 0 if this instance has never been stopped.
TotalUptime
How long this instance has been running, including previous sessions.
TotalBilledTime
How much billable time this instance has accumulated in total,
including previous sessions.
Price
The hourly cost of this instance at its current rate.
PriceName
The price entry used for this instance (stored in Cloud.Price
records). This points to a Cloud.Price record that reflects the per-
hour cost of this instance.
PriceUpdatedTime
The time at which the price was last updated.