diff --git a/OMICRON_VERSION b/OMICRON_VERSION
index d6b430e711..1c7645f60b 100644
--- a/OMICRON_VERSION
+++ b/OMICRON_VERSION
@@ -1 +1 @@
-f2e6237e57a36873fc748b6ecd9e42b8ef208c88
+d1fc7da4c01c4e7b17c7b3319df712390fae68fa
diff --git a/app/forms/instance-create.tsx b/app/forms/instance-create.tsx
index 604deae583..20ac80f22e 100644
--- a/app/forms/instance-create.tsx
+++ b/app/forms/instance-create.tsx
@@ -22,6 +22,7 @@ import {
import { GiB } from '@oxide/util'
import type { DiskTableItem } from 'app/components/form'
+import { CheckboxField } from 'app/components/form'
import { FullPageForm } from 'app/components/form'
import { DiskSizeField } from 'app/components/form'
import {
@@ -72,6 +73,8 @@ const values: InstanceCreateInput = {
* We actually don't care about this value outside of that.
*/
networkInterfaceType: 'default',
+
+ start: true,
}
export default function CreateInstanceForm({
@@ -166,6 +169,7 @@ export default function CreateInstanceForm({
...values.disks,
],
externalIps: [{ type: 'ephemeral' }],
+ start: values.start,
},
})
})
@@ -176,6 +180,9 @@ export default function CreateInstanceForm({
>
+
+ Start Instance
+
diff --git a/libs/api/__generated__/Api.ts b/libs/api/__generated__/Api.ts
index 9625eed032..50e87fbb90 100644
--- a/libs/api/__generated__/Api.ts
+++ b/libs/api/__generated__/Api.ts
@@ -671,6 +671,10 @@ export type InstanceCreate = {
* The network interfaces to be created for this instance.
*/
networkInterfaces?: InstanceNetworkInterfaceAttachment | null
+ /**
+ * Should this instance be started upon creation; true by default.
+ */
+ start?: boolean | null
/**
* User data for instance initialization systems (such as cloud-init). Must be a Base64-encoded string, as specified in RFC 4648 ยง 4 (+ and / characters with padding). Maximum 32 KiB unencoded data.
*/
@@ -2298,10 +2302,6 @@ export interface DeviceAuthConfirmParams {}
export interface DeviceAccessTokenParams {}
-export interface GlobalPolicyViewParams {}
-
-export interface GlobalPolicyUpdateParams {}
-
export interface RackListParams {
limit?: number | null
pageToken?: string | null
@@ -2922,6 +2922,10 @@ export interface SiloIdentityProviderViewParams {
siloName: Name
}
+export interface SystemPolicyViewParams {}
+
+export interface SystemPolicyUpdateParams {}
+
export interface SystemUserListParams {
limit?: number | null
pageToken?: string | null
@@ -3158,31 +3162,6 @@ export class Api extends HttpClient {
...params,
}),
- /**
- * Fetch the top-level IAM policy
- */
- globalPolicyView: (query: GlobalPolicyViewParams, params: RequestParams = {}) =>
- this.request({
- path: `/global/policy`,
- method: 'GET',
- ...params,
- }),
-
- /**
- * Update the top-level IAM policy
- */
- globalPolicyUpdate: (
- query: GlobalPolicyUpdateParams,
- body: FleetRolePolicy,
- params: RequestParams = {}
- ) =>
- this.request({
- path: `/global/policy`,
- method: 'PUT',
- body,
- ...params,
- }),
-
/**
* List racks
*/
@@ -4672,6 +4651,31 @@ export class Api extends HttpClient {
...params,
}),
+ /**
+ * Fetch the top-level IAM policy
+ */
+ systemPolicyView: (query: SystemPolicyViewParams, params: RequestParams = {}) =>
+ this.request({
+ path: `/system/policy`,
+ method: 'GET',
+ ...params,
+ }),
+
+ /**
+ * Update the top-level IAM policy
+ */
+ systemPolicyUpdate: (
+ query: SystemPolicyUpdateParams,
+ body: FleetRolePolicy,
+ params: RequestParams = {}
+ ) =>
+ this.request({
+ path: `/system/policy`,
+ method: 'PUT',
+ body,
+ ...params,
+ }),
+
/**
* List built-in users
*/
diff --git a/libs/api/__generated__/OMICRON_VERSION b/libs/api/__generated__/OMICRON_VERSION
index 2a005845f9..c9e163b8c9 100644
--- a/libs/api/__generated__/OMICRON_VERSION
+++ b/libs/api/__generated__/OMICRON_VERSION
@@ -1,2 +1,2 @@
# generated file. do not update manually. see docs/update-pinned-api.md
-f2e6237e57a36873fc748b6ecd9e42b8ef208c88
+d1fc7da4c01c4e7b17c7b3319df712390fae68fa