diff --git a/OMICRON_VERSION b/OMICRON_VERSION index bb0015b..ea552e7 100644 --- a/OMICRON_VERSION +++ b/OMICRON_VERSION @@ -1 +1 @@ -6132e1393d2587606631beab04e1445fbaf745ce +d514878f417a94247791bd5564fbaafa9b4170a0 diff --git a/client/Api.ts b/client/Api.ts index 7c4147d..987f428 100644 --- a/client/Api.ts +++ b/client/Api.ts @@ -1145,9 +1145,9 @@ export type FloatingIpAttach = { * Parameters for creating a new floating IP address for instances. */ export type FloatingIpCreate = { - /** An IP address to reserve for use as a floating IP. This field is optional: when not set, an address will be automatically chosen from `pool`. If set, then the IP must be available in the resolved `pool`. */ - address?: string; description: string; + /** An IP address to reserve for use as a floating IP. This field is optional: when not set, an address will be automatically chosen from `pool`. If set, then the IP must be available in the resolved `pool`. */ + ip?: string; name: Name; /** The parent IP pool that a floating IP is pulled from. If unset, the default pool is selected. */ pool?: NameOrId; @@ -2178,16 +2178,44 @@ export type SiloUtilizationResultsPage = { }; /** - * The provision state of a sled. + * The operator-defined provision policy of a sled. * * This controls whether new resources are going to be provisioned on this sled. */ -export type SledProvisionState = +export type SledProvisionPolicy = /** New resources will be provisioned on this sled. */ | "provisionable" - /** New resources will not be provisioned on this sled. However, existing resources will continue to be on this sled unless manually migrated off. */ + /** New resources will not be provisioned on this sled. However, if the sled is currently in service, existing resources will continue to be on this sled unless manually migrated off. */ | "non_provisionable"; +/** + * The operator-defined policy of a sled. + */ +export type SledPolicy = + /** The operator has indicated that the sled is in-service. */ + | { + kind: "in_service"; + /** Determines whether new resources can be provisioned onto the sled. */ + provisionPolicy: SledProvisionPolicy; + } + /** The operator has indicated that the sled has been permanently removed from service. + +This is a terminal state: once a particular sled ID is expunged, it will never return to service. (The actual hardware may be reused, but it will be treated as a brand-new sled.) + +An expunged sled is always non-provisionable. */ + | { kind: "expunged" }; + +/** + * The current state of the sled, as determined by Nexus. + */ +export type SledState = + /** The sled is currently active, and has resources allocated on it. */ + | "active" + /** The sled has been permanently removed from service. + +This is a terminal state: once a particular sled ID is decommissioned, it will never return to service. (The actual hardware may be reused, but it will be treated as a brand-new sled.) */ + | "decommissioned"; + /** * An operator's view of a Sled. */ @@ -2195,10 +2223,12 @@ export type Sled = { baseboard: Baseboard; /** unique, immutable, system-controlled identifier for each resource */ id: string; - /** The provision state of the sled. */ - provisionState: SledProvisionState; + /** The operator-defined policy of a sled. */ + policy: SledPolicy; /** The rack to which this Sled is currently attached */ rackId: string; + /** The current state Nexus believes the sled to be in. */ + state: SledState; /** timestamp when this resource was created */ timeCreated: Date; /** timestamp when this resource was last modified */ @@ -2240,21 +2270,21 @@ export type SledInstanceResultsPage = { }; /** - * Parameters for `sled_set_provision_state`. + * Parameters for `sled_set_provision_policy`. */ -export type SledProvisionStateParams = { +export type SledProvisionPolicyParams = { /** The provision state. */ - state: SledProvisionState; + state: SledProvisionPolicy; }; /** - * Response to `sled_set_provision_state`. + * Response to `sled_set_provision_policy`. */ -export type SledProvisionStateResponse = { +export type SledProvisionPolicyResponse = { /** The new provision state. */ - newState: SledProvisionState; + newState: SledProvisionPolicy; /** The old provision state. */ - oldState: SledProvisionState; + oldState: SledProvisionPolicy; }; /** @@ -3545,7 +3575,7 @@ export interface SledInstanceListQueryParams { sortBy?: IdSortMode; } -export interface SledSetProvisionStatePathParams { +export interface SledSetProvisionPolicyPathParams { sledId: string; } @@ -4082,7 +4112,7 @@ export class Api extends HttpClient { }); }, /** - * Create a new system-wide x.509 certificate + * Create new system-wide x.509 certificate */ certificateCreate: ( { body }: { body: CertificateCreate }, @@ -4096,7 +4126,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch a certificate + * Fetch certificate */ certificateView: ( { path }: { path: CertificateViewPathParams }, @@ -4109,7 +4139,7 @@ export class Api extends HttpClient { }); }, /** - * Delete a certificate + * Delete certificate */ certificateDelete: ( { path }: { path: CertificateDeletePathParams }, @@ -4151,7 +4181,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch a disk + * Fetch disk */ diskView: ( { @@ -4168,7 +4198,7 @@ export class Api extends HttpClient { }); }, /** - * Delete a disk + * Delete disk */ diskDelete: ( { @@ -4185,7 +4215,7 @@ export class Api extends HttpClient { }); }, /** - * Import blocks into a disk + * Import blocks into disk */ diskBulkWriteImport: ( { @@ -4208,7 +4238,7 @@ export class Api extends HttpClient { }); }, /** - * Start importing blocks into a disk + * Start importing blocks into disk */ diskBulkWriteImportStart: ( { @@ -4228,7 +4258,7 @@ export class Api extends HttpClient { }); }, /** - * Stop importing blocks into a disk + * Stop importing blocks into disk */ diskBulkWriteImportStop: ( { @@ -4305,7 +4335,7 @@ export class Api extends HttpClient { }); }, /** - * Create a floating IP + * Create floating IP */ floatingIpCreate: ( { @@ -4323,7 +4353,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch a floating IP + * Fetch floating IP */ floatingIpView: ( { @@ -4340,7 +4370,7 @@ export class Api extends HttpClient { }); }, /** - * Delete a floating IP + * Delete floating IP */ floatingIpDelete: ( { @@ -4360,7 +4390,7 @@ export class Api extends HttpClient { }); }, /** - * Attach a floating IP to an instance or other resource + * Attach floating IP */ floatingIpAttach: ( { @@ -4383,7 +4413,7 @@ export class Api extends HttpClient { }); }, /** - * Detach a floating IP from an instance or other resource + * Detach floating IP */ floatingIpDetach: ( { @@ -4444,7 +4474,7 @@ export class Api extends HttpClient { }); }, /** - * Create an image + * Create image */ imageCreate: ( { @@ -4462,7 +4492,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch an image + * Fetch image */ imageView: ( { @@ -4479,7 +4509,7 @@ export class Api extends HttpClient { }); }, /** - * Delete an image + * Delete image */ imageDelete: ( { @@ -4496,7 +4526,7 @@ export class Api extends HttpClient { }); }, /** - * Demote a silo image + * Demote silo image */ imageDemote: ( { @@ -4513,7 +4543,7 @@ export class Api extends HttpClient { }); }, /** - * Promote a project image + * Promote project image */ imagePromote: ( { @@ -4544,7 +4574,7 @@ export class Api extends HttpClient { }); }, /** - * Create an instance + * Create instance */ instanceCreate: ( { @@ -4562,7 +4592,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch an instance + * Fetch instance */ instanceView: ( { @@ -4579,7 +4609,7 @@ export class Api extends HttpClient { }); }, /** - * Delete an instance + * Delete instance */ instanceDelete: ( { @@ -4596,7 +4626,7 @@ export class Api extends HttpClient { }); }, /** - * List an instance's disks + * List disks for instance */ instanceDiskList: ( { @@ -4616,7 +4646,7 @@ export class Api extends HttpClient { }); }, /** - * Attach a disk to an instance + * Attach disk to instance */ instanceDiskAttach: ( { @@ -4639,7 +4669,7 @@ export class Api extends HttpClient { }); }, /** - * Detach a disk from an instance + * Detach disk from instance */ instanceDiskDetach: ( { @@ -4682,7 +4712,7 @@ export class Api extends HttpClient { }); }, /** - * Allocate and attach an ephemeral IP to an instance + * Allocate and attach ephemeral IP to instance */ instanceEphemeralIpAttach: ( { @@ -4705,7 +4735,7 @@ export class Api extends HttpClient { }); }, /** - * Detach and deallocate an ephemeral IP from an instance + * Detach and deallocate ephemeral IP from instance */ instanceEphemeralIpDetach: ( { @@ -4765,7 +4795,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch an instance's serial console + * Fetch instance serial console */ instanceSerialConsole: ( { @@ -4785,7 +4815,7 @@ export class Api extends HttpClient { }); }, /** - * List the SSH public keys added to the instance via cloud-init during instance creation + * List SSH public keys for instance */ instanceSshPublicKeyList: ( { @@ -4805,7 +4835,7 @@ export class Api extends HttpClient { }); }, /** - * Boot an instance + * Boot instance */ instanceStart: ( { @@ -4822,7 +4852,7 @@ export class Api extends HttpClient { }); }, /** - * Stop an instance + * Stop instance */ instanceStop: ( { @@ -4853,7 +4883,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch an IP pool + * Fetch IP pool */ projectIpPoolView: ( { path }: { path: ProjectIpPoolViewPathParams }, @@ -4893,7 +4923,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch the user associated with the current session + * Fetch user for current session */ currentUserView: (_: EmptyObj, params: FetchParams = {}) => { return this.request({ @@ -4903,7 +4933,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch the silo groups the current user belongs to + * Fetch current user's groups */ currentUserGroups: ( { query = {} }: { query?: CurrentUserGroupsQueryParams }, @@ -4931,7 +4961,7 @@ export class Api extends HttpClient { }); }, /** - * Create an SSH public key + * Create SSH public key */ currentUserSshKeyCreate: ( { body }: { body: SshKeyCreate }, @@ -4945,7 +4975,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch an SSH public key + * Fetch SSH public key */ currentUserSshKeyView: ( { path }: { path: CurrentUserSshKeyViewPathParams }, @@ -4958,7 +4988,7 @@ export class Api extends HttpClient { }); }, /** - * Delete an SSH public key + * Delete SSH public key */ currentUserSshKeyDelete: ( { path }: { path: CurrentUserSshKeyDeletePathParams }, @@ -5002,7 +5032,7 @@ export class Api extends HttpClient { }); }, /** - * Create a network interface + * Create network interface */ instanceNetworkInterfaceCreate: ( { @@ -5023,7 +5053,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch a network interface + * Fetch network interface */ instanceNetworkInterfaceView: ( { @@ -5043,7 +5073,7 @@ export class Api extends HttpClient { }); }, /** - * Update a network interface + * Update network interface */ instanceNetworkInterfaceUpdate: ( { @@ -5066,7 +5096,7 @@ export class Api extends HttpClient { }); }, /** - * Delete a network interface + * Delete network interface */ instanceNetworkInterfaceDelete: ( { @@ -5096,7 +5126,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch the current silo's IAM policy + * Fetch current silo's IAM policy */ policyView: (_: EmptyObj, params: FetchParams = {}) => { return this.request({ @@ -5106,7 +5136,7 @@ export class Api extends HttpClient { }); }, /** - * Update the current silo's IAM policy + * Update current silo's IAM policy */ policyUpdate: ( { body }: { body: SiloRolePolicy }, @@ -5134,7 +5164,7 @@ export class Api extends HttpClient { }); }, /** - * Create a project + * Create project */ projectCreate: ( { body }: { body: ProjectCreate }, @@ -5148,7 +5178,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch a project + * Fetch project */ projectView: ( { path }: { path: ProjectViewPathParams }, @@ -5175,7 +5205,7 @@ export class Api extends HttpClient { }); }, /** - * Delete a project + * Delete project */ projectDelete: ( { path }: { path: ProjectDeletePathParams }, @@ -5188,7 +5218,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch a project's IAM policy + * Fetch project's IAM policy */ projectPolicyView: ( { path }: { path: ProjectPolicyViewPathParams }, @@ -5201,7 +5231,7 @@ export class Api extends HttpClient { }); }, /** - * Update a project's IAM policy + * Update project's IAM policy */ projectPolicyUpdate: ( { @@ -5232,7 +5262,7 @@ export class Api extends HttpClient { }); }, /** - * Create a snapshot + * Create snapshot */ snapshotCreate: ( { @@ -5250,7 +5280,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch a snapshot + * Fetch snapshot */ snapshotView: ( { @@ -5267,7 +5297,7 @@ export class Api extends HttpClient { }); }, /** - * Delete a snapshot + * Delete snapshot */ snapshotDelete: ( { @@ -5312,7 +5342,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch a rack + * Fetch rack */ rackView: ( { path }: { path: RackViewPathParams }, @@ -5339,7 +5369,7 @@ export class Api extends HttpClient { }); }, /** - * Add a sled to an initialized rack + * Add sled to initialized rack */ sledAdd: ( { body }: { body: UninitializedSledId }, @@ -5353,7 +5383,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch a sled + * Fetch sled */ sledView: ( { path }: { path: SledViewPathParams }, @@ -5386,7 +5416,7 @@ export class Api extends HttpClient { }); }, /** - * List instances running on a given sled + * List instances running on given sled */ sledInstanceList: ( { @@ -5406,27 +5436,27 @@ export class Api extends HttpClient { }); }, /** - * Set the sled's provision state + * Set sled provision policy */ - sledSetProvisionState: ( + sledSetProvisionPolicy: ( { path, body, }: { - path: SledSetProvisionStatePathParams; - body: SledProvisionStateParams; + path: SledSetProvisionPolicyPathParams; + body: SledProvisionPolicyParams; }, params: FetchParams = {} ) => { - return this.request({ - path: `/v1/system/hardware/sleds/${path.sledId}/provision-state`, + return this.request({ + path: `/v1/system/hardware/sleds/${path.sledId}/provision-policy`, method: "PUT", body, ...params, }); }, /** - * List uninitialized sleds in a given rack + * List uninitialized sleds */ sledListUninitialized: ( { query = {} }: { query?: SledListUninitializedQueryParams }, @@ -5511,7 +5541,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch a switch + * Fetch switch */ switchView: ( { path }: { path: SwitchViewPathParams }, @@ -5538,7 +5568,7 @@ export class Api extends HttpClient { }); }, /** - * Create a user + * Create user */ localIdpUserCreate: ( { @@ -5556,7 +5586,7 @@ export class Api extends HttpClient { }); }, /** - * Delete a user + * Delete user */ localIdpUserDelete: ( { @@ -5576,7 +5606,7 @@ export class Api extends HttpClient { }); }, /** - * Set or invalidate a user's password + * Set or invalidate user's password */ localIdpUserSetPassword: ( { @@ -5599,7 +5629,7 @@ export class Api extends HttpClient { }); }, /** - * Create a SAML IdP + * Create SAML IdP */ samlIdentityProviderCreate: ( { @@ -5620,7 +5650,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch a SAML IdP + * Fetch SAML IdP */ samlIdentityProviderView: ( { @@ -5654,7 +5684,7 @@ export class Api extends HttpClient { }); }, /** - * Create an IP pool + * Create IP pool */ ipPoolCreate: ( { body }: { body: IpPoolCreate }, @@ -5668,7 +5698,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch an IP pool + * Fetch IP pool */ ipPoolView: ( { path }: { path: IpPoolViewPathParams }, @@ -5681,7 +5711,7 @@ export class Api extends HttpClient { }); }, /** - * Update an IP pool + * Update IP pool */ ipPoolUpdate: ( { path, body }: { path: IpPoolUpdatePathParams; body: IpPoolUpdate }, @@ -5695,7 +5725,7 @@ export class Api extends HttpClient { }); }, /** - * Delete an IP pool + * Delete IP pool */ ipPoolDelete: ( { path }: { path: IpPoolDeletePathParams }, @@ -5708,7 +5738,7 @@ export class Api extends HttpClient { }); }, /** - * List ranges for an IP pool + * List ranges for IP pool */ ipPoolRangeList: ( { @@ -5728,7 +5758,7 @@ export class Api extends HttpClient { }); }, /** - * Add a range to an IP pool + * Add range to IP pool */ ipPoolRangeAdd: ( { path, body }: { path: IpPoolRangeAddPathParams; body: IpRange }, @@ -5742,7 +5772,7 @@ export class Api extends HttpClient { }); }, /** - * Remove a range from an IP pool + * Remove range from IP pool */ ipPoolRangeRemove: ( { path, body }: { path: IpPoolRangeRemovePathParams; body: IpRange }, @@ -5756,7 +5786,7 @@ export class Api extends HttpClient { }); }, /** - * List an IP pool's linked silos + * List IP pool's linked silos */ ipPoolSiloList: ( { @@ -5773,7 +5803,7 @@ export class Api extends HttpClient { }); }, /** - * Make an IP pool available within a silo + * Link IP pool to silo */ ipPoolSiloLink: ( { path, body }: { path: IpPoolSiloLinkPathParams; body: IpPoolLinkSilo }, @@ -5787,7 +5817,7 @@ export class Api extends HttpClient { }); }, /** - * Make an IP pool default or not-default for a silo + * Make IP pool default for silo */ ipPoolSiloUpdate: ( { @@ -5804,7 +5834,7 @@ export class Api extends HttpClient { }); }, /** - * Unlink an IP pool from a silo + * Unlink IP pool from silo */ ipPoolSiloUnlink: ( { path }: { path: IpPoolSiloUnlinkPathParams }, @@ -5817,7 +5847,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch the IP pool used for Oxide services + * Fetch Oxide service IP pool */ ipPoolServiceView: (_: EmptyObj, params: FetchParams = {}) => { return this.request({ @@ -5827,7 +5857,7 @@ export class Api extends HttpClient { }); }, /** - * List ranges for the IP pool used for Oxide services + * List IP ranges for the Oxide service pool */ ipPoolServiceRangeList: ( { query = {} }: { query?: IpPoolServiceRangeListQueryParams }, @@ -5841,7 +5871,7 @@ export class Api extends HttpClient { }); }, /** - * Add a range to an IP pool used for Oxide services + * Add IP range to Oxide service pool */ ipPoolServiceRangeAdd: ( { body }: { body: IpRange }, @@ -5855,7 +5885,7 @@ export class Api extends HttpClient { }); }, /** - * Remove a range from an IP pool used for Oxide services + * Remove IP range from Oxide service pool */ ipPoolServiceRangeRemove: ( { body }: { body: IpRange }, @@ -5900,7 +5930,7 @@ export class Api extends HttpClient { }); }, /** - * Create an address lot + * Create address lot */ networkingAddressLotCreate: ( { body }: { body: AddressLotCreate }, @@ -5914,7 +5944,7 @@ export class Api extends HttpClient { }); }, /** - * Delete an address lot + * Delete address lot */ networkingAddressLotDelete: ( { path }: { path: NetworkingAddressLotDeletePathParams }, @@ -5927,7 +5957,7 @@ export class Api extends HttpClient { }); }, /** - * List the blocks in an address lot + * List blocks in address lot */ networkingAddressLotBlockList: ( { @@ -5947,7 +5977,7 @@ export class Api extends HttpClient { }); }, /** - * Disable a BFD session. + * Disable a BFD session */ networkingBfdDisable: ( { body }: { body: BfdSessionDisable }, @@ -5961,7 +5991,7 @@ export class Api extends HttpClient { }); }, /** - * Enable a BFD session. + * Enable a BFD session */ networkingBfdEnable: ( { body }: { body: BfdSessionEnable }, @@ -5975,7 +6005,7 @@ export class Api extends HttpClient { }); }, /** - * Get BFD status. + * Get BFD status */ networkingBfdStatus: (_: EmptyObj, params: FetchParams = {}) => { return this.request({ @@ -5999,7 +6029,7 @@ export class Api extends HttpClient { }); }, /** - * Create a new BGP configuration + * Create new BGP configuration */ networkingBgpConfigCreate: ( { body }: { body: BgpConfigCreate }, @@ -6013,7 +6043,7 @@ export class Api extends HttpClient { }); }, /** - * Delete a BGP configuration + * Delete BGP configuration */ networkingBgpConfigDelete: ( { query }: { query?: NetworkingBgpConfigDeleteQueryParams }, @@ -6041,7 +6071,7 @@ export class Api extends HttpClient { }); }, /** - * Create a new BGP announce set + * Create new BGP announce set */ networkingBgpAnnounceSetCreate: ( { body }: { body: BgpAnnounceSetCreate }, @@ -6055,7 +6085,7 @@ export class Api extends HttpClient { }); }, /** - * Delete a BGP announce set + * Delete BGP announce set */ networkingBgpAnnounceSetDelete: ( { query }: { query?: NetworkingBgpAnnounceSetDeleteQueryParams }, @@ -6107,7 +6137,7 @@ export class Api extends HttpClient { }); }, /** - * Create a loopback address + * Create loopback address */ networkingLoopbackAddressCreate: ( { body }: { body: LoopbackAddressCreate }, @@ -6121,7 +6151,7 @@ export class Api extends HttpClient { }); }, /** - * Delete a loopback address + * Delete loopback address */ networkingLoopbackAddressDelete: ( { path }: { path: NetworkingLoopbackAddressDeletePathParams }, @@ -6176,7 +6206,7 @@ export class Api extends HttpClient { }); }, /** - * Get information about a switch port + * Get information about switch port */ networkingSwitchPortSettingsView: ( { path }: { path: NetworkingSwitchPortSettingsViewPathParams }, @@ -6189,7 +6219,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch the top-level IAM policy + * Fetch top-level IAM policy */ systemPolicyView: (_: EmptyObj, params: FetchParams = {}) => { return this.request({ @@ -6199,7 +6229,7 @@ export class Api extends HttpClient { }); }, /** - * Update the top-level IAM policy + * Update top-level IAM policy */ systemPolicyUpdate: ( { body }: { body: FleetRolePolicy }, @@ -6227,7 +6257,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch a built-in role + * Fetch built-in role */ roleView: ( { path }: { path: RoleViewPathParams }, @@ -6279,7 +6309,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch a silo + * Fetch silo */ siloView: ( { path }: { path: SiloViewPathParams }, @@ -6305,7 +6335,7 @@ export class Api extends HttpClient { }); }, /** - * List IP pools available within silo + * List IP pools linked to silo */ siloIpPoolList: ( { @@ -6322,7 +6352,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch a silo's IAM policy + * Fetch silo IAM policy */ siloPolicyView: ( { path }: { path: SiloPolicyViewPathParams }, @@ -6335,7 +6365,7 @@ export class Api extends HttpClient { }); }, /** - * Update a silo's IAM policy + * Update silo IAM policy */ siloPolicyUpdate: ( { @@ -6352,7 +6382,7 @@ export class Api extends HttpClient { }); }, /** - * View the resource quotas of a given silo + * Fetch resource quotas for silo */ siloQuotasView: ( { path }: { path: SiloQuotasViewPathParams }, @@ -6365,7 +6395,7 @@ export class Api extends HttpClient { }); }, /** - * Update the resource quotas of a given silo + * Update resource quotas for silo */ siloQuotasUpdate: ( { @@ -6382,7 +6412,7 @@ export class Api extends HttpClient { }); }, /** - * List built-in (system) users in a silo + * List built-in (system) users in silo */ siloUserList: ( { query = {} }: { query?: SiloUserListQueryParams }, @@ -6396,7 +6426,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch a built-in (system) user + * Fetch built-in (system) user */ siloUserView: ( { @@ -6427,7 +6457,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch a built-in user + * Fetch built-in user */ userBuiltinView: ( { path }: { path: UserBuiltinViewPathParams }, @@ -6454,7 +6484,7 @@ export class Api extends HttpClient { }); }, /** - * View the current utilization of a given silo + * Fetch current utilization for given silo */ siloUtilizationView: ( { path }: { path: SiloUtilizationViewPathParams }, @@ -6481,7 +6511,7 @@ export class Api extends HttpClient { }); }, /** - * View the resource utilization of the user's current silo + * Fetch resource utilization for user's current silo */ utilizationView: (_: EmptyObj, params: FetchParams = {}) => { return this.request({ @@ -6540,7 +6570,7 @@ export class Api extends HttpClient { }); }, /** - * Create a subnet + * Create subnet */ vpcSubnetCreate: ( { @@ -6558,7 +6588,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch a subnet + * Fetch subnet */ vpcSubnetView: ( { @@ -6575,7 +6605,7 @@ export class Api extends HttpClient { }); }, /** - * Update a subnet + * Update subnet */ vpcSubnetUpdate: ( { @@ -6598,7 +6628,7 @@ export class Api extends HttpClient { }); }, /** - * Delete a subnet + * Delete subnet */ vpcSubnetDelete: ( { @@ -6652,7 +6682,7 @@ export class Api extends HttpClient { }); }, /** - * Create a VPC + * Create VPC */ vpcCreate: ( { query, body }: { query?: VpcCreateQueryParams; body: VpcCreate }, @@ -6667,7 +6697,7 @@ export class Api extends HttpClient { }); }, /** - * Fetch a VPC + * Fetch VPC */ vpcView: ( { @@ -6707,7 +6737,7 @@ export class Api extends HttpClient { }); }, /** - * Delete a VPC + * Delete VPC */ vpcDelete: ( { @@ -6726,7 +6756,7 @@ export class Api extends HttpClient { }; ws = { /** - * Stream an instance's serial console + * Stream instance serial console */ instanceSerialConsoleStream: ({ host, diff --git a/client/msw-handlers.ts b/client/msw-handlers.ts index ad693c6..3510892 100644 --- a/client/msw-handlers.ts +++ b/client/msw-handlers.ts @@ -612,13 +612,13 @@ export interface MSWHandlers { req: Request; cookies: Record; }) => Promisable>; - /** `PUT /v1/system/hardware/sleds/:sledId/provision-state` */ - sledSetProvisionState: (params: { - path: Api.SledSetProvisionStatePathParams; - body: Json; + /** `PUT /v1/system/hardware/sleds/:sledId/provision-policy` */ + sledSetProvisionPolicy: (params: { + path: Api.SledSetProvisionPolicyPathParams; + body: Json; req: Request; cookies: Record; - }) => Promisable>; + }) => Promisable>; /** `GET /v1/system/hardware/sleds-uninitialized` */ sledListUninitialized: (params: { query: Api.SledListUninitializedQueryParams; @@ -1740,11 +1740,11 @@ export function makeHandlers(handlers: MSWHandlers): HttpHandler[] { handler(handlers["sledInstanceList"], schema.SledInstanceListParams, null) ), http.put( - "/v1/system/hardware/sleds/:sledId/provision-state", + "/v1/system/hardware/sleds/:sledId/provision-policy", handler( - handlers["sledSetProvisionState"], - schema.SledSetProvisionStateParams, - schema.SledProvisionStateParams + handlers["sledSetProvisionPolicy"], + schema.SledSetProvisionPolicyParams, + schema.SledProvisionPolicyParams ) ), http.get( diff --git a/client/type-test.ts b/client/type-test.ts index a9ac57c..ec0a9df 100644 --- a/client/type-test.ts +++ b/client/type-test.ts @@ -318,19 +318,24 @@ assert< z.infer > >(); -assert>>(); +assert>>(); +assert>>(); +assert>>(); assert>>(); assert>>(); assert< Equals> >(); assert< - Equals> + Equals< + A.SledProvisionPolicyParams, + z.infer + > >(); assert< Equals< - A.SledProvisionStateResponse, - z.infer + A.SledProvisionPolicyResponse, + z.infer > >(); assert>>(); diff --git a/client/validate.ts b/client/validate.ts index 4bdc69e..b4a2ffb 100644 --- a/client/validate.ts +++ b/client/validate.ts @@ -1272,8 +1272,8 @@ export const FloatingIpAttach = z.preprocess( export const FloatingIpCreate = z.preprocess( processResponseBody, z.object({ - address: z.string().ip().optional(), description: z.string(), + ip: z.string().ip().optional(), name: Name, pool: NameOrId.optional(), }) @@ -2274,15 +2274,37 @@ export const SiloUtilizationResultsPage = z.preprocess( ); /** - * The provision state of a sled. + * The operator-defined provision policy of a sled. * * This controls whether new resources are going to be provisioned on this sled. */ -export const SledProvisionState = z.preprocess( +export const SledProvisionPolicy = z.preprocess( processResponseBody, z.enum(["provisionable", "non_provisionable"]) ); +/** + * The operator-defined policy of a sled. + */ +export const SledPolicy = z.preprocess( + processResponseBody, + z.union([ + z.object({ + kind: z.enum(["in_service"]), + provisionPolicy: SledProvisionPolicy, + }), + z.object({ kind: z.enum(["expunged"]) }), + ]) +); + +/** + * The current state of the sled, as determined by Nexus. + */ +export const SledState = z.preprocess( + processResponseBody, + z.enum(["active", "decommissioned"]) +); + /** * An operator's view of a Sled. */ @@ -2291,8 +2313,9 @@ export const Sled = z.preprocess( z.object({ baseboard: Baseboard, id: z.string().uuid(), - provisionState: SledProvisionState, + policy: SledPolicy, rackId: z.string().uuid(), + state: SledState, timeCreated: z.coerce.date(), timeModified: z.coerce.date(), usableHardwareThreads: z.number().min(0).max(4294967295), @@ -2329,19 +2352,19 @@ export const SledInstanceResultsPage = z.preprocess( ); /** - * Parameters for `sled_set_provision_state`. + * Parameters for `sled_set_provision_policy`. */ -export const SledProvisionStateParams = z.preprocess( +export const SledProvisionPolicyParams = z.preprocess( processResponseBody, - z.object({ state: SledProvisionState }) + z.object({ state: SledProvisionPolicy }) ); /** - * Response to `sled_set_provision_state`. + * Response to `sled_set_provision_policy`. */ -export const SledProvisionStateResponse = z.preprocess( +export const SledProvisionPolicyResponse = z.preprocess( processResponseBody, - z.object({ newState: SledProvisionState, oldState: SledProvisionState }) + z.object({ newState: SledProvisionPolicy, oldState: SledProvisionPolicy }) ); /** @@ -4058,7 +4081,7 @@ export const SledInstanceListParams = z.preprocess( }) ); -export const SledSetProvisionStateParams = z.preprocess( +export const SledSetProvisionPolicyParams = z.preprocess( processResponseBody, z.object({ path: z.object({