Skip to content

CreateMachine

POST
/otterscale.machine.v1.MachineService/CreateMachine
Connect-Protocol-Version
required
Connect-Protocol-Version

Define the version of the Connect protocol

number
Allowed values: 1
Connect-Timeout-Ms
Connect-Timeout-Ms

Define the timeout, in ms

number
CreateMachineRequest
object
id
id
string
scope
scope
string

Success

Machine
object
id
id
string
lastCommissioned
last_commissioned

A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar backwards to year one.

All minutes are 60 seconds long. Leap seconds are “smeared” so that no leap second table is needed for interpretation, using a 24-hour linear smear.

The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings.

Examples

Example 1: Compute Timestamp from POSIX time().

 Timestamp timestamp;
 timestamp.set_seconds(time(NULL));
 timestamp.set_nanos(0);

Example 2: Compute Timestamp from POSIX gettimeofday().

 struct timeval tv;
 gettimeofday(&tv, NULL);

 Timestamp timestamp;
 timestamp.set_seconds(tv.tv_sec);
 timestamp.set_nanos(tv.tv_usec * 1000);

Example 3: Compute Timestamp from Win32 GetSystemTimeAsFileTime().

 FILETIME ft;
 GetSystemTimeAsFileTime(&ft);
 UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;

 // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
 // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
 Timestamp timestamp;
 timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
 timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

Example 4: Compute Timestamp from Java System.currentTimeMillis().

 long millis = System.currentTimeMillis();

 Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
     .setNanos((int) ((millis % 1000) * 1000000)).build();

Example 5: Compute Timestamp from Java Instant.now().

 Instant now = Instant.now();

 Timestamp timestamp =
     Timestamp.newBuilder().setSeconds(now.getEpochSecond())
         .setNanos(now.getNano()).build();

Example 6: Compute Timestamp from current time in Python.

 timestamp = Timestamp()
 timestamp.GetCurrentTime()

JSON Mapping

In JSON format, the Timestamp type is encoded as a string in the RFC 3339 format. That is, the format is “{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z” where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The “Z” suffix indicates the timezone (“UTC”); the timezone is required. A proto3 JSON serializer should always use UTC (as indicated by “Z”) when printing the Timestamp type and a proto3 JSON parser should be able to accept both UTC and other timezones (as indicated by an offset).

For example, “2017-01-15T01:30:15.01Z” encodes 15.01 seconds past 01:30 UTC on January 15, 2017.

In JavaScript, one can convert a Date object to this format using the standard toISOString() method. In Python, a standard datetime.datetime object can be converted to this format using strftime with the time format spec ‘%Y-%m-%dT%H:%M:%S.%fZ’. Likewise, in Java, one can use the Joda Time’s ISODateTimeFormat.dateTime() to obtain a formatter capable of generating timestamps in this format.

string format: date-time
hardwareUuid
hardware_uuid
string
hostname
hostname
string
fqdn
fqdn
string
tags
tags
Array<string>
description
description
string
status
status
string
statusMessage
status_message
string
agentStatus
agent_status
string
powerState
power_state
string
powerType
power_type
string
osystem
osystem
string
distroSeries
distro_series
string
hweKernel
hwe_kernel
string
architecture
architecture
string
cpuSpeed
cpu_speed
integer | string format: int64
cpuCount
cpu_count
integer | string format: int64
memoryMb
memory_mb
integer | string format: int64
storageMb
storage_mb
number format: double
ipAddresses
ip_addresses
Array<string>
workloadAnnotations
workload_annotations
object
key
additional properties
value
string
hardwareInformation
hardware_information
object
key
additional properties
value
string
biosBootMethod
bios_boot_method
string
numaNodes
numa_nodes
Array<object>
NUMANode
object
index
index
integer | string format: int64
cpuCores
cpu_cores
integer | string format: int64
memoryMb
memory_mb
integer | string format: int64
blockDevices
block_devices
Array<object>
BlockDevice
object
bootDisk
boot_disk
boolean
name
name
string
serial
serial
string
model
model
string
firmwareVersion
firmware_version
string
storageMb
storage_mb
number format: double
type
type
string
tags
tags
Array<string>
usedFor
used_for
string
networkInterfaces
network_interfaces
Array<object>
NetworkInterface
object
bootInterface
boot_interface
boolean
name
name
string
macAddress
mac_address
string
linkConnected
link_connected
boolean
linkSpeed
link_speed
integer | string format: int64
interfaceSpeed
interface_speed
integer | string format: int64
type
type
string
fabricName
fabric_name
string
fabricId
fabric_id
integer | string format: int64
vlanName
vlan_name
string
vlanId
vlan_id
integer | string format: int64
subnetName
subnet_name
string
subnetId
subnet_id
integer | string format: int64
ipAddress
ip_address
string
dhcpOn
dhcp_on
boolean
gpuDevices
gpu_devices
Array<object>
NodeDevice
object
vendorId
vendor_id
string
vendorName
vendor_name
string
productId
product_id
string
productName
product_name
string
busName
bus_name
string
pciAddress
pci_address
string

Error

Connect Error
object
code

The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].

string
Allowed values: canceled unknown invalid_argument deadline_exceeded not_found already_exists permission_denied resource_exhausted failed_precondition aborted out_of_range unimplemented internal unavailable data_loss unauthenticated
message

A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.

string
details

A list of messages that carry the error details. There is no limit on the number of messages.

Array<object>

Contains an arbitrary serialized message along with a @type that describes the type of the serialized message, with an additional debug field for ConnectRPC error details.

object
type

A URL that acts as a globally unique identifier for the type of the serialized message. For example: type.googleapis.com/google.rpc.ErrorInfo. This is used to determine the schema of the data in the value field and is the discriminator for the debug field.

string
value

The Protobuf message, serialized as bytes and base64-encoded. The specific message type is identified by the type field.

string format: binary
debug
One of: discriminator: type
Any

Detailed error information.

object
key
additional properties
any
key
additional properties
any
key
additional properties
any