diff --git a/docs/openapi/spec.yaml b/docs/openapi/spec.yaml index 9abf86ec08..3a5495dae9 100644 --- a/docs/openapi/spec.yaml +++ b/docs/openapi/spec.yaml @@ -1,280 +1,513 @@ -# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - openapi: 3.1.0 info: title: NCX Infra Controller REST API version: 1.3.0 - summary: NCX Infra Controller REST API is the centralized RESTful gateway to access NCX Infra Controller service - description: 'NCX Infra Controller REST API allows users to create and manage resources e.g. VPC, Subnets, Instances across all connected NCX Infra Controller datacenters, also referred to as Sites.' + summary: >- + NCX Infra Controller REST API is the centralized RESTful gateway to access + NCX Infra Controller service + description: >- + NCX Infra Controller REST API allows users to create and manage resources + e.g. VPC, Subnets, Instances across all connected NCX Infra Controller + datacenters, also referred to as Sites. license: name: Apache-2.0 - url: 'https://www.apache.org/licenses/LICENSE-2.0' + url: https://www.apache.org/licenses/LICENSE-2.0 contact: name: NCX Infra Controller Dev Team servers: - - url: 'https://carbide-rest-api.carbide.svc.cluster.local' + - url: https://carbide-rest-api.carbide.svc.cluster.local description: Kubernetes Cluster tags: - name: Getting Started - description: |- + description: >- This section provides a quick overview of the API and how to get started. + ### Authentication - The first step is to authenticate using a JWT bearer token. Organization structures and roles depend on the authentication configuration used. For details on authentication, please consult the - NICo REST `auth` module [README](https://github.com/NVIDIA/ncx-infra-controller-rest/tree/main/auth). + + The first step is to authenticate using a JWT bearer token. Organization + structures and roles depend on the authentication configuration used. For + details on authentication, please consult the + + NICo REST `auth` module + [README](https://github.com/NVIDIA/ncx-infra-controller-rest/tree/main/auth). + ### API Version - The next step is to be aware of the API version being used. The API version can be retrieved by calling the [Retrieve Metadata endpoint](#tag/Metadata/operation/get-metadata). In general, the API maintains backward - compatibility with the previous versions. Any breaking changes are announced using a deprecation notice. Current and past deprecations are listed in the [Deprecations](#tag/Deprecations) section. + + The next step is to be aware of the API version being used. The API + version can be retrieved by calling the [Retrieve Metadata + endpoint](#tag/Metadata/operation/get-metadata). In general, the API + maintains backward + + compatibility with the previous versions. Any breaking changes are + announced using a deprecation notice. Current and past deprecations are + listed in the [Deprecations](#tag/Deprecations) section. + ### Service Account Mode - Depending on the auth configuration used, the NICo REST API may be configured in Service Account mode. In this mode, API users can act as both Provider and Tenant as part of the same organization. - If this is the case, the user must first retrieve the Service Account by making a call to the [Retrieve Service Account endpoint](#tag/Service-Account/operation/get-current-service-account). - For service accounts, the Tenant entity is initialized as a privileged Tenant with `targetedInstanceCreation` capability enabled. + + Depending on the auth configuration used, the NICo REST API may be + configured in Service Account mode. In this mode, API users can act as + both Provider and Tenant as part of the same organization. + + If this is the case, the user must first retrieve the Service Account by + making a call to the [Retrieve Service Account + endpoint](#tag/Service-Account/operation/get-current-service-account). + + For service accounts, the Tenant entity is initialized as a privileged + Tenant with `targetedInstanceCreation` capability enabled. + ### Provider or Tenant Mode - If NICo REST API is not configured in Service Account mode, the user should retrieve the Infrastructure Provider by making a call to the [Retrieve Infrastructure Provider endpoint](#tag/Infrastructure-Provider/operation/get-current-infrastructure-provider) - or the Tenant by making a call to the [Retrieve Tenant endpoint](#tag/Tenant/operation/get-current-tenant). - In both cases, these calls initialize Provider and Tenant entities for the organization. All resources created are anchored to either the Provider or Tenant entity. + If NICo REST API is not configured in Service Account mode, the user + should retrieve the Infrastructure Provider by making a call to the + [Retrieve Infrastructure Provider + endpoint](#tag/Infrastructure-Provider/operation/get-current-infrastructure-provider) + + or the Tenant by making a call to the [Retrieve Tenant + endpoint](#tag/Tenant/operation/get-current-tenant). + + + In both cases, these calls initialize Provider and Tenant entities for the + organization. All resources created are anchored to either the Provider or + Tenant entity. + + + Once the Provider and the Tenant are initialized, the user can create + resources by making calls to the appropriate endpoints. - Once the Provider and the Tenant are initialized, the user can create resources by making calls to the appropriate endpoints. ### Creating Site Level IP Blocks - To utilize a NICo Site, the Provider or Service Account holder must create IP Blocks for each network overlay defined in NICo Core [Site configuration toml file](https://github.com/NVIDIA/ncx-infra-controller-core/blob/v0.5.8/deploy/files/carbide-api/carbide-api-site-config.toml#L30). - To create an IP Block, the user must make a call to the [Create IP Block endpoint](#tag/IP-Block/operation/create-ipblock). + To utilize a NICo Site, the Provider or Service Account holder must create + IP Blocks for each network overlay defined in NICo Core [Site + configuration toml + file](https://github.com/NVIDIA/ncx-infra-controller-core/blob/v0.5.8/deploy/files/carbide-api/carbide-api-site-config.toml#L30). + + + To create an IP Block, the user must make a call to the [Create IP Block + endpoint](#tag/IP-Block/operation/create-ipblock). + + + > **Note:** From this point onwards, a brief outline is provided for the + typical API call flows for various use cases. - > **Note:** From this point onwards, a brief outline is provided for the typical API call flows for various use cases. ### Typical API Call Flow for Service Account - - Retrieve available Sites using the [Retrieve All Sites endpoint](#tag/Site/operation/get-all-site) and choose a Site to create resources in. For _Disconnected_ NICo installations where NICo - REST is deployed alongside NICo Core, typically there will be a single Site available. - - For each Site IP Block, create a Network Allocation for the Tenant entity using the [Create Allocation endpoint](#tag/Allocation/operation/create-allocation) using the full prefix length. + + - Retrieve available Sites using the [Retrieve All Sites + endpoint](#tag/Site/operation/get-all-site) and choose a Site to create + resources in. For _Disconnected_ NICo installations where NICo + + REST is deployed alongside NICo Core, typically there will be a single + Site available. + + - For each Site IP Block, create a Network Allocation for the Tenant + entity using the [Create Allocation + endpoint](#tag/Allocation/operation/create-allocation) using the full + prefix length. + This will create a Tenant IP Block for each Site IP Block. - Creating an Allocation will create the Tenant in NICo Core. - - Create a VPC using the [Create VPC endpoint](#tag/VPC/operation/create-vpc). + - Create a VPC using the [Create VPC + endpoint](#tag/VPC/operation/create-vpc). + - Create a VPC Prefix or Subnet referencing the VPC and a Tenant IP Block - If the Site supports Native Networking (FNN), create a VPC Prefix using the [Create VPC Prefix endpoint](#tag/VPC-Prefix/operation/create-vpc-prefix). Otherwise the user should create a Subnet using the [Create Subnet endpoint](#tag/Subnet/operation/create-subnet). - - Create an Operating System using the [Create Operating System endpoint](#tag/Operating-System/operation/create-operating-system) specifying iPXE script and user data. - - Retrieve available Machines on Site using the [Retrieve All Machines endpoint](#tag/Machine/operation/get-all-machine) - - Create an Instance specifying the VPC, VPC Prefix or Subnet, Operating System, and Machine + - Create an Operating System using the [Create Operating System + endpoint](#tag/Operating-System/operation/create-operating-system) + specifying iPXE script and user data. + + - Retrieve available Machines on Site using the [Retrieve All Machines + endpoint](#tag/Machine/operation/get-all-machine) + + - Create an Instance specifying the VPC, VPC Prefix or Subnet, Operating + System, and Machine + ### Typical API Call Flow for Provider - - Create a Tenant Account using the [Create Tenant Account endpoint](#tag/Tenant-Account/operation/create-tenant-account). Provider must know the Tenant org name. - - Once the Tenant has accepted the Tenant Account, the Provider can allocate resources to the Tenant. - - Retrieve available Sites using the [Retrieve All Sites endpoint](#tag/Site/operation/get-all-site) and choose a Site to create resources in. - - Create an Instance Type using the [Create Instance Type endpoint](#tag/Instance-Type/operation/create-instance-type) - - Retrieve available Machines on Site using the [Retrieve All Machines endpoint](#tag/Machine/operation/get-all-machine) - - Update a Machine's Instance Type using the [Update Machine endpoint](#tag/Machine/operation/update-machine) or assign multiple Machines to an Instance Type using the - [Create Instance Type/Machine Association endpoint](#tag/Instance-Type/operation/create-instance-type-machine-association) - - Create a Compute Allocation for Tenant using the [Create Compute Allocation endpoint](#tag/Allocation/operation/create-allocation) referencing the Instance Type + + - Create a Tenant Account using the [Create Tenant Account + endpoint](#tag/Tenant-Account/operation/create-tenant-account). Provider + must know the Tenant org name. + + - Once the Tenant has accepted the Tenant Account, the Provider can + allocate resources to the Tenant. + + - Retrieve available Sites using the [Retrieve All Sites + endpoint](#tag/Site/operation/get-all-site) and choose a Site to create + resources in. + + - Create an Instance Type using the [Create Instance Type + endpoint](#tag/Instance-Type/operation/create-instance-type) + + - Retrieve available Machines on Site using the [Retrieve All Machines + endpoint](#tag/Machine/operation/get-all-machine) + + - Update a Machine's Instance Type using the [Update Machine + endpoint](#tag/Machine/operation/update-machine) or assign multiple + Machines to an Instance Type using the + + [Create Instance Type/Machine Association + endpoint](#tag/Instance-Type/operation/create-instance-type-machine-association) + + - Create a Compute Allocation for Tenant using the [Create Compute + Allocation endpoint](#tag/Allocation/operation/create-allocation) + referencing the Instance Type - Creating any type of Allocation for a Tenant will create the Tenant in NICo Core. - - Create a Network Allocation for Tenant using the [Create Allocation endpoint](#tag/Allocation/operation/create-allocation) referencing a Site IP Block + - Create a Network Allocation for Tenant using the [Create Allocation + endpoint](#tag/Allocation/operation/create-allocation) referencing a Site + IP Block - Creating a Network Allocation will create a Tenant IP Block ### Typical API Call Flow for Tenant - - Accept the Tenant Account using the [Update Tenant Account endpoint](#tag/Tenant-Account/operation/update-tenant-account). - - Retrieve available Sites using the [Retrieve All Sites endpoint](#tag/Site/operation/get-all-site) and choose a Site to create resources in. Any Site where the Tenant + + - Accept the Tenant Account using the [Update Tenant Account + endpoint](#tag/Tenant-Account/operation/update-tenant-account). + + - Retrieve available Sites using the [Retrieve All Sites + endpoint](#tag/Site/operation/get-all-site) and choose a Site to create + resources in. Any Site where the Tenant + has an Allocation will be returned. - - Create a VPC using the [Create VPC endpoint](#tag/VPC/operation/create-vpc). - - Retrieve available Site IP Blocks using the [Retrieve All IP Blocks endpoint](#tag/IP-Block/operation/get-all-ipblock). Any IP Block for which the Tenant has received + + - Create a VPC using the [Create VPC + endpoint](#tag/VPC/operation/create-vpc). + + - Retrieve available Site IP Blocks using the [Retrieve All IP Blocks + endpoint](#tag/IP-Block/operation/get-all-ipblock). Any IP Block for which + the Tenant has received + a Network Allocation from the Provider will be returned. + - Create a VPC Prefix or Subnet referencing the VPC and a Tenant IP Block - Site supports Native Networking (FNN), create a VPC Prefix using the [Create VPC Prefix endpoint](#tag/VPC-Prefix/operation/create-vpc-prefix) - Otherwise the user should create a Subnet using the [Create Subnet endpoint](#tag/Subnet/operation/create-subnet) - - Create an Operating System using the [Create Operating System endpoint](#tag/Operating-System/operation/create-operating-system) specifying iPXE script and user data. - - Retrieve available Instance Types using the [Retrieve All Instance Types endpoint](#tag/Instance-Type/operation/get-all-instance-type). Any Instance Type for which - the Tenant has received a Compute Allocation from the Provider will be returned. - - Create an Instance specifying the VPC, VPC Prefix or Subnet, Operating System, and Instance Type + - Create an Operating System using the [Create Operating System + endpoint](#tag/Operating-System/operation/create-operating-system) + specifying iPXE script and user data. + + - Retrieve available Instance Types using the [Retrieve All Instance Types + endpoint](#tag/Instance-Type/operation/get-all-instance-type). Any + Instance Type for which + the Tenant has received a Compute Allocation from the Provider will be + returned. + + - Create an Instance specifying the VPC, VPC Prefix or Subnet, Operating + System, and Instance Type - name: Service Account - description: |- - When API service is configured in Service Account mode, API users can act as both Provider and Tenant. For service accounts, the Tenant entity is initialized as a + description: >- + When API service is configured in Service Account mode, API users can act + as both Provider and Tenant. For service accounts, the Tenant entity is + initialized as a + privileged Tenant with `targetedInstanceCreation` capability enabled. - name: Infrastructure Provider - description: |- - Infrastructure Provider is the anchor entity for an organization that owns and manages Site resources. + description: >- + Infrastructure Provider is the anchor entity for an organization that owns + and manages Site resources. + Deprecation history: - - `name` attribute was deprecated and was removed on August 17th, 2023 0:00 UTC. Please use `orgDisplayName` instead. - - `POST /org/:orgName/carbide/infrastructure-provider` endpoint was deprecated and was removed on August 17th, 2023 0:00 UTC. Infrastructure Providers are automatically created when retrieved by a Provider Admin. - - `PATCH /org/:orgName/carbide/infrastructure-provider/current` endpoint was deprecated and was removed on August 17th, 2023 0:00 UTC. Infrastructure Provider details are populated from Org information and cannot be updated by the user. + + - `name` attribute was deprecated and was removed on August 17th, 2023 + 0:00 UTC. Please use `orgDisplayName` instead. + + - `POST /org/:orgName/carbide/infrastructure-provider` endpoint was + deprecated and was removed on August 17th, 2023 0:00 UTC. Infrastructure + Providers are automatically created when retrieved by a Provider Admin. + + - `PATCH /org/:orgName/carbide/infrastructure-provider/current` endpoint + was deprecated and was removed on August 17th, 2023 0:00 UTC. + Infrastructure Provider details are populated from Org information and + cannot be updated by the user. - name: Tenant - description: |- - Tenant is the anchor entity for an organization that consumes Network and Compute resources on a Site. + description: >- + Tenant is the anchor entity for an organization that consumes Network and + Compute resources on a Site. + Deprecation history: - - `name` attribute was deprecated and was removed on August 17th, 2023. Please use `orgDisplayName` instead. - - `enableSSHAccess` attribute was deprecated and was removed on August 17th, 2023 0:00 UTC. Please use 'isSerialConsoleSSHKeysEnabled' attribute of Site instead. - - `POST /org/:orgName/carbide/tenant` endpoint was deprecated and was removed on August 17th, 2023 0:00 UTC. Tenants are automatically created when retrieved by a Tenant Admin. - - `PATCH /org/:orgName/carbide/tenant/current` endpoint was deprecated and was removed on August 17th, 2023 0:00 UTC. Tenant details are populated from Org information and cannot be updated by the user. + + - `name` attribute was deprecated and was removed on August 17th, 2023. + Please use `orgDisplayName` instead. + + - `enableSSHAccess` attribute was deprecated and was removed on August + 17th, 2023 0:00 UTC. Please use 'isSerialConsoleSSHKeysEnabled' attribute + of Site instead. + + - `POST /org/:orgName/carbide/tenant` endpoint was deprecated and was + removed on August 17th, 2023 0:00 UTC. Tenants are automatically created + when retrieved by a Tenant Admin. + + - `PATCH /org/:orgName/carbide/tenant/current` endpoint was deprecated and + was removed on August 17th, 2023 0:00 UTC. Tenant details are populated + from Org information and cannot be updated by the user. - name: Tenant Account - description: Tenant Account connects a Tenant with an Infrastructure Provider. It represents/contains any information pertaining to their relationship. + description: >- + Tenant Account connects a Tenant with an Infrastructure Provider. It + represents/contains any information pertaining to their relationship. - name: Site - description: |- - Site is a datacenter that contains physical hardware and networking resources. All resources created by Provider or Tenant are directly or indirectly anchored to the Site object. + description: >- + Site is a datacenter that contains physical hardware and networking + resources. All resources created by Provider or Tenant are directly or + indirectly anchored to the Site object. - name: Allocation - description: |- - Allocations are the mechanism by which Provider can delegate Network and Compute resources to Tenant. + description: >- + Allocations are the mechanism by which Provider can delegate Network and + Compute resources to Tenant. - name: VPC - description: |- - VPC defines the networking isolation boundary for Tenant's Instances. + description: VPC defines the networking isolation boundary for Tenant's Instances. - name: VPC Peering - description: |- - VPC Peering allows Instances in one VPC to communicate with Instances in another VPC on the same Site. + description: >- + VPC Peering allows Instances in one VPC to communicate with Instances in + another VPC on the same Site. - name: VPC Prefix - description: |- - VPC Prefix is a network prefix belonging to an IP Block allocated to a Tenant. Tenant can use VPC Prefixes to enable network connectivity between their Instances. + description: >- + VPC Prefix is a network prefix belonging to an IP Block allocated to a + Tenant. Tenant can use VPC Prefixes to enable network connectivity between + their Instances. + - Only Sites that support Native Networking (FNN) offer VPC Prefix management. + Only Sites that support Native Networking (FNN) offer VPC Prefix + management. - name: Subnet - description: |- - Subnet is a network prefix belonging to an IP Block allocated to a Tenant. Tenant can use Subnets to enable network connectivity between their Instances. + description: >- + Subnet is a network prefix belonging to an IP Block allocated to a Tenant. + Tenant can use Subnets to enable network connectivity between their + Instances. + Subnets are used on Sites that do not support Native Networking (FNN). + Deprecation history: - - `ipBlockSize` was deprecated in favor of `prefixLength` and was removed on April 15th, 2023 0:00 UTC. Please use `prefixLength` instead. + + - `ipBlockSize` was deprecated in favor of `prefixLength` and was removed + on April 15th, 2023 0:00 UTC. Please use `prefixLength` instead. - name: Expected Machine - description: |- - Expected Machine identifies a Machine that is expected to be discovered at a Site. Infrastructure Providers can pre-register Expected Machines using BMC credentials + description: >- + Expected Machine identifies a Machine that is expected to be discovered at + a Site. Infrastructure Providers can pre-register Expected Machines using + BMC credentials + and serial numbers to help with Machine discovery and ingestion. - name: Expected Power Shelf - description: |- - Expected Power Shelf identifies a Power Shelf that is expected to be discovered at a Site. Infrastructure Providers can pre-register Expected Power Shelves using BMC - credentials and serial numbers to help with Power Shelf discovery and ingestion. + description: >- + Expected Power Shelf identifies a Power Shelf that is expected to be + discovered at a Site. Infrastructure Providers can pre-register Expected + Power Shelves using BMC + + credentials and serial numbers to help with Power Shelf discovery and + ingestion. - name: Expected Switch - description: |- - Expected Switch identifies a Switch that is expected to be discovered at a Site. Infrastructure Providers can pre-register Expected Switches using BMC, NvOS credentials + description: >- + Expected Switch identifies a Switch that is expected to be discovered at a + Site. Infrastructure Providers can pre-register Expected Switches using + BMC, NvOS credentials + and serial numbers to help with Switch discovery and ingestion. - name: SKU - description: |- - SKU (Stock Keeping Unit) defines one or more hardware configurations or Machine Bill of Materials (BOM). + description: >- + SKU (Stock Keeping Unit) defines one or more hardware configurations or + Machine Bill of Materials (BOM). - SKUs are automatically derived from machine hardware characteristics and used to group similar machines. SKUs are read-only and managed by the system. + + SKUs are automatically derived from machine hardware characteristics and + used to group similar machines. SKUs are read-only and managed by the + system. - name: InfiniBand Partition - description: |- - InfiniBand (IB) is a high-performance, low-latency networking standard designed for interconnecting servers and storage in HPC (High-Performance Computing) and AI systems, - utilizing RDMA (Remote Direct Memory Access) to reduce CPU overhead. InfiniBand Partitions are used to group Machines into logical partitions for network isolation and load distribution. + description: >- + InfiniBand (IB) is a high-performance, low-latency networking standard + designed for interconnecting servers and storage in HPC (High-Performance + Computing) and AI systems, + + utilizing RDMA (Remote Direct Memory Access) to reduce CPU overhead. + InfiniBand Partitions are used to group Machines into logical partitions + for network isolation and load distribution. - name: NVLink Logical Partition - description: |- - NVLink Logical Partitions are used to group GPUs into logical partitions for shared memory and low-latency direct communication between GPUs. + description: >- + NVLink Logical Partitions are used to group GPUs into logical partitions + for shared memory and low-latency direct communication between GPUs. - name: Operating System - description: |- - Operating Systems in NICo are typically iPXE scripts that are used to boot Machines. + description: >- + Operating Systems in NICo are typically iPXE scripts that are used to boot + Machines. - name: Instance Type - description: |- - Instance Types allow grouping Machines into a pool defined by their capabilities. Providers can then allocate a portion of the Instance Type pool to a Tenant. + description: >- + Instance Types allow grouping Machines into a pool defined by their + capabilities. Providers can then allocate a portion of the Instance Type + pool to a Tenant. + Deprecation history: - - `includeMachineAssociation` was deprecated in favor of `includeMachineAssignment` and was removed on July 26th, 2023 0:00 UTC. Please use `includeMachineAssignment` instead. - - `displayName` attribute was deprecated and removed on October 30, 2024 0:00 UTC. Please update your usage accordingly. + + - `includeMachineAssociation` was deprecated in favor of + `includeMachineAssignment` and was removed on July 26th, 2023 0:00 UTC. + Please use `includeMachineAssignment` instead. + + - `displayName` attribute was deprecated and removed on October 30, 2024 + 0:00 UTC. Please update your usage accordingly. - name: Instance - description: |- - Instance is a Machine provisioned with an Operating System by a Tenant and attached to one or more VPC Prefixes or Subnets. + description: >- + Instance is a Machine provisioned with an Operating System by a Tenant and + attached to one or more VPC Prefixes or Subnets. + Deprecation history: - - `sshUrl` was deprecated in favor of `serialConsoleUrl` and was removed on April 25th, 2023 0:00 UTC. Please use `serialConsoleUrl` instead. - - `instanceSubnets` was deprecated in favor of `interfaces` and was removed on May 10th, 2023 0:00 UTC. Please use `interfaces` instead. - - `sshkeygroups` was deprecated in favor of `sshKeyGroups` and was removed on September 4th, 2025 0:00 UTC. Please use `sshKeyGroups` instead. + + - `sshUrl` was deprecated in favor of `serialConsoleUrl` and was removed + on April 25th, 2023 0:00 UTC. Please use `serialConsoleUrl` instead. + + - `instanceSubnets` was deprecated in favor of `interfaces` and was + removed on May 10th, 2023 0:00 UTC. Please use `interfaces` instead. + + - `sshkeygroups` was deprecated in favor of `sshKeyGroups` and was removed + on September 4th, 2025 0:00 UTC. Please use `sshKeyGroups` instead. - name: Machine - description: |- - Machine is a physical server that contains CPUs, GPUs, memory, storage, and networking hardware. Machines are the physical building blocks of a Site. + description: >- + Machine is a physical server that contains CPUs, GPUs, memory, storage, + and networking hardware. Machines are the physical building blocks of a + Site. - name: Machine Capability - description: |- - Machine Capability defines the hardware capabilities of a Machine. Machine Capabilities can be used to group Machines into Instance Types. + description: >- + Machine Capability defines the hardware capabilities of a Machine. Machine + Capabilities can be used to group Machines into Instance Types. - name: Rack - description: |- - Rack is a physical enclosure that contains a number of Machines. Racks are the physical building blocks of a Site. + description: >- + Rack is a physical enclosure that contains a number of Machines. Racks are + the physical building blocks of a Site. - name: Tray - description: |- - Tray represents a component within a Rack. + description: Tray represents a component within a Rack. - name: Network Security Group - description: |- - Network Security Group is a security policy that controls the traffic flowing between Instances. + description: >- + Network Security Group is a security policy that controls the traffic + flowing between Instances. - name: IP Block - description: |- - IP Block is a contiguous block of IP addresses defined by a prefix and prefix length. + description: >- + IP Block is a contiguous block of IP addresses defined by a prefix and + prefix length. + + + It can be used by the Provider to describe the overlay network of a + particular Site. Providers can also use Allocations to delegate portions + of these IP Blocks to Tenants. - It can be used by the Provider to describe the overlay network of a particular Site. Providers can also use Allocations to delegate portions of these IP Blocks to Tenants. Deprecation history: - - `blockSize` was deprecated in favor of `prefixLength` and was removed on April 15th, 2023 0:00 UTC. Please use `prefixLength` instead. + + - `blockSize` was deprecated in favor of `prefixLength` and was removed on + April 15th, 2023 0:00 UTC. Please use `prefixLength` instead. - name: DPU Extension Service - description: |- - DPU Extension Service allows users to run custom services in the DPUs of their Instances. Currently K8s pods are the only supported service type. + description: >- + DPU Extension Service allows users to run custom services in the DPUs of + their Instances. Currently K8s pods are the only supported service type. - name: SSH Key Group - description: |- - SSH Key Groups allow grouping several SSH Keys together so they can be synced to Sites and used to access the Serial Console of Instances. + description: >- + SSH Key Groups allow grouping several SSH Keys together so they can be + synced to Sites and used to access the Serial Console of Instances. - name: SSH Key - description: |- - SSH Key is a public key that can be used to access the Serial Console of an Instance. + description: >- + SSH Key is a public key that can be used to access the Serial Console of + an Instance. - name: User - description: |- - User is a logical entity that identifies individuals operating on behalf of an organization. + description: >- + User is a logical entity that identifies individuals operating on behalf + of an organization. - name: Audit - description: |- - Audit is a record of actions taken by users on the API. + description: Audit is a record of actions taken by users on the API. - name: Metadata - description: |- - Metadata describes various system level attributes of the API service. + description: Metadata describes various system level attributes of the API service. - name: Deprecations - description: |- - NICo REST API maintains backward compatibility with the previous versions. Any breaking changes are announced using deprecation notices. + description: >- + NICo REST API maintains backward compatibility with the previous versions. + Any breaking changes are announced using deprecation notices. + + + Endpoints that have deprecations will be grouped here. Following + deprecations are in effect or slated to be effective in future: - Endpoints that have deprecations will be grouped here. Following deprecations are in effect or slated to be effective in future: Infrastructure Provider: - - `name` attribute was deprecated and was removed on August 17th, 2023 0:00 UTC. Please use `orgDisplayName` instead. - - `POST /org/:orgName/carbide/infrastructure-provider` endpoint was deprecated and was removed on August 17th, 2023 0:00 UTC. Infrastructure Providers are automatically created when retrieved by a Provider Admin. - - `PATCH /org/:orgName/carbide/infrastructure-provider/current` endpoint was deprecated and was removed on August 17th, 2023 0:00 UTC. Infrastructure Provider details are populated from Org information and cannot be updated by user. + + - `name` attribute was deprecated and was removed on August 17th, 2023 + 0:00 UTC. Please use `orgDisplayName` instead. + + - `POST /org/:orgName/carbide/infrastructure-provider` endpoint was + deprecated and was removed on August 17th, 2023 0:00 UTC. Infrastructure + Providers are automatically created when retrieved by a Provider Admin. + + - `PATCH /org/:orgName/carbide/infrastructure-provider/current` endpoint + was deprecated and was removed on August 17th, 2023 0:00 UTC. + Infrastructure Provider details are populated from Org information and + cannot be updated by user. + Tenant: - - `name` attribute was deprecated and was removed on August 17th, 2023. Please use `orgDisplayName` instead. - - `enableSSHAccess` attribute was deprecated and was removed on August 17th, 2023 0:00 UTC. Please use 'isSerialConsoleSSHKeysEnabled' attribute of Site instead. - - `POST /org/:orgName/carbide/tenant` endpoint was deprecated and was removed on August 17th, 2023 0:00 UTC. Tenants are automatically created when retrieved by a Tenant Admin. - - `PATCH /org/:orgName/carbide/tenant/current` endpoint was deprecated and was removed on August 17th, 2023 0:00 UTC. Tenant details are populated from Org information and cannot be updated by user. + + - `name` attribute was deprecated and was removed on August 17th, 2023. + Please use `orgDisplayName` instead. + + - `enableSSHAccess` attribute was deprecated and was removed on August + 17th, 2023 0:00 UTC. Please use 'isSerialConsoleSSHKeysEnabled' attribute + of Site instead. + + - `POST /org/:orgName/carbide/tenant` endpoint was deprecated and was + removed on August 17th, 2023 0:00 UTC. Tenants are automatically created + when retrieved by a Tenant Admin. + + - `PATCH /org/:orgName/carbide/tenant/current` endpoint was deprecated and + was removed on August 17th, 2023 0:00 UTC. Tenant details are populated + from Org information and cannot be updated by user. + Instance Type: - - `includeMachineAssociation` was deprecated in favor of `includeMachineAssignment` and was removed on July 26th, 2023 0:00 UTC. Please use `includeMachineAssignment` instead. - - `displayName` attribute was deprecated and removed on October 30, 2024 0:00 UTC. Please update your usage accordingly. + + - `includeMachineAssociation` was deprecated in favor of + `includeMachineAssignment` and was removed on July 26th, 2023 0:00 UTC. + Please use `includeMachineAssignment` instead. + + - `displayName` attribute was deprecated and removed on October 30, 2024 + 0:00 UTC. Please update your usage accordingly. + Instance: - - `sshUrl` was deprecated in favor of `serialConsoleUrl` and was removed on April 25th, 2023 0:00 UTC. Please use `serialConsoleUrl` instead. - - `instanceSubnets` was deprecated in favor of `interfaces` and was removed on May 10th, 2023 0:00 UTC. Please use `interfaces` instead. - - `sshkeygroups` was deprecated in favor of `sshKeyGroups` and was removed on September 4th, 2025 0:00 UTC. Please use `sshKeyGroups` instead. + + - `sshUrl` was deprecated in favor of `serialConsoleUrl` and was removed + on April 25th, 2023 0:00 UTC. Please use `serialConsoleUrl` instead. + + - `instanceSubnets` was deprecated in favor of `interfaces` and was + removed on May 10th, 2023 0:00 UTC. Please use `interfaces` instead. + + - `sshkeygroups` was deprecated in favor of `sshKeyGroups` and was removed + on September 4th, 2025 0:00 UTC. Please use `sshKeyGroups` instead. + IP Block: - - `blockSize` was deprecated in favor of `prefixLength` and was removed on April 15th, 2023 0:00 UTC. Please use `prefixLength` instead. + + - `blockSize` was deprecated in favor of `prefixLength` and was removed on + April 15th, 2023 0:00 UTC. Please use `prefixLength` instead. + Subnet: - - `ipBlockSize` was deprecated in favor of `prefixLength` and was removed on April 15th, 2023 0:00 UTC. Please use `prefixLength` instead. + + - `ipBlockSize` was deprecated in favor of `prefixLength` and was removed + on April 15th, 2023 0:00 UTC. Please use `prefixLength` instead. paths: - '/v2/org/{org}/carbide/service-account/current': + /v2/org/{org}/carbide/service-account/current: parameters: - schema: type: string @@ -294,14 +527,16 @@ paths: '403': $ref: '#/components/responses/ForbiddenError' operationId: get-current-service-account - description: |- + description: >- Retrieve Service Account status for current org - API service must be configured for Service Account access at the time of deployment. It cannot be enabled or disabled via API. + + API service must be configured for Service Account access at the time of + deployment. It cannot be enabled or disabled via API. parameters: [] tags: - Service Account - '/v2/org/{org}/carbide/infrastructure-provider/current': + /v2/org/{org}/carbide/infrastructure-provider/current: parameters: - schema: type: string @@ -336,7 +571,7 @@ paths: parameters: [] tags: - Infrastructure Provider - '/v2/org/{org}/carbide/infrastructure-provider/current/stats': + /v2/org/{org}/carbide/infrastructure-provider/current/stats: parameters: - schema: type: string @@ -363,7 +598,7 @@ paths: parameters: [] tags: - Infrastructure Provider - '/v2/org/{org}/carbide/tenant/current': + /v2/org/{org}/carbide/tenant/current: parameters: - schema: type: string @@ -400,7 +635,7 @@ paths: User must have `FORGE_TENANT_ADMIN` authorization role. parameters: [] - '/v2/org/{org}/carbide/tenant/current/stats': + /v2/org/{org}/carbide/tenant/current/stats: parameters: - schema: type: string @@ -427,7 +662,7 @@ paths: User must have `FORGE_TENANT_ADMIN` authorization role. parameters: [] - '/v2/org/{org}/carbide/tenant/account': + /v2/org/{org}/carbide/tenant/account: parameters: - schema: type: string @@ -467,7 +702,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -476,19 +711,29 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-tenant-account - description: |- + description: >- Retrieve all Tenant Accounts. - Either `infrastructureProviderId` or `tenantId` query param must be specified. - If `infrastructureProviderId` query param is provided, then org must have an Infrastructure Provider entity and its ID should match the query param value. User must have `FORGE_PROVIDER_ADMIN` role. + Either `infrastructureProviderId` or `tenantId` query param must be + specified. + + + If `infrastructureProviderId` query param is provided, then org must + have an Infrastructure Provider entity and its ID should match the query + param value. User must have `FORGE_PROVIDER_ADMIN` role. - If `tenantId` query param is provided, then org must have a Tenant entity and its ID should match the query param value. User must have `FORGE_TENANT_ADMIN` role. + + If `tenantId` query param is provided, then org must have a Tenant + entity and its ID should match the query param value. User must have + `FORGE_TENANT_ADMIN` role. parameters: - schema: type: string @@ -506,7 +751,9 @@ paths: type: string in: query name: query - description: 'Search string to filter Tenant Accounts by account number, tenant org, or tenant org display name' + description: >- + Search string to filter Tenant Accounts by account number, tenant + org, or tenant org display name - schema: type: string enum: @@ -582,7 +829,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -591,12 +838,20 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Create a Tenant Account. - Org must have an Infrastructure Provider entity and its ID must match the Infrastructure Provider ID in request data. User must have `FORGE_PROVIDER_ADMIN` authorization role - Infrastructure Provider can create a Tenant Account by specifying the Tenant's UUID or Tenant's org name. This will set the status of the Tenant Account to "Invited". Then the Tenant can view this account information and are able to confirm/accept the account by updating the Tenant Account. + Org must have an Infrastructure Provider entity and its ID must match + the Infrastructure Provider ID in request data. User must have + `FORGE_PROVIDER_ADMIN` authorization role + + + Infrastructure Provider can create a Tenant Account by specifying the + Tenant's UUID or Tenant's org name. This will set the status of the + Tenant Account to "Invited". Then the Tenant can view this account + information and are able to confirm/accept the account by updating the + Tenant Account. requestBody: content: application/json: @@ -609,7 +864,7 @@ paths: tenantOrg: rf43bbtnb9c5 tags: - Tenant Account - '/v2/org/{org}/carbide/tenant/account/{accountId}': + /v2/org/{org}/carbide/tenant/account/{accountId}: parameters: - schema: type: string @@ -654,11 +909,11 @@ paths: status: Ready statusHistory: - status: Ready - message: 'Account ready, Tenant accepted invite' + message: Account ready, Tenant accepted invite created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - status: Invited - message: 'Request received, pending Tenant acceptance' + message: Request received, pending Tenant acceptance created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -666,14 +921,22 @@ paths: '403': $ref: '#/components/responses/ForbiddenError' operationId: get-tenant-account - description: |- + description: >- Retrieve a Tenant Account by ID - Either `infrastructureProviderId` or `tenantId` query param must be specified. - If `infrastructureProviderId` query param is provided, then org must have an Infrastructure Provider entity and its ID should match the query param value. User must have `FORGE_PROVIDER_ADMIN` role. + Either `infrastructureProviderId` or `tenantId` query param must be + specified. - If `tenantId` query param is provided, then org must have a Tenant entity and its ID should match the query param value. User must have `FORGE_TENANT_ADMIN` role. + + If `infrastructureProviderId` query param is provided, then org must + have an Infrastructure Provider entity and its ID should match the query + param value. User must have `FORGE_PROVIDER_ADMIN` role. + + + If `tenantId` query param is provided, then org must have a Tenant + entity and its ID should match the query param value. User must have + `FORGE_TENANT_ADMIN` role. parameters: - schema: type: string @@ -724,11 +987,11 @@ paths: status: Ready statusHistory: - status: Ready - message: 'Account ready, Tenant accepted invite' + message: Account ready, Tenant accepted invite created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - status: Invited - message: 'Request received, pending Tenant acceptance' + message: Request received, pending Tenant acceptance created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -739,12 +1002,16 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Tenant Account - description: |- + description: >- Update a Tenant Account. + Can be used to accept an invitation sent by Infrastructure Provider. - Org must have a tenant entity whose ID matches the `tenantId` of the Tenant Account object. User must have `FORGE_TENANT_ADMIN` role. Can only update a TenantAccount that has `Invited` status. + + Org must have a tenant entity whose ID matches the `tenantId` of the + Tenant Account object. User must have `FORGE_TENANT_ADMIN` role. Can + only update a TenantAccount that has `Invited` status. requestBody: content: application/json: @@ -753,7 +1020,7 @@ paths: examples: example-1: value: {} - description: 'No params needed, an empty request body will suffice.' + description: No params needed, an empty request body will suffice. delete: summary: Delete Tenant Account operationId: delete-tenant-account @@ -762,15 +1029,19 @@ paths: description: Accepted '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Delete a Tenant Account by ID. - Org must have an Infrastructure Provider entity, specified Tenant Account must be created by said Provider. Requesting user must have `FORGE_PROVIDER_ADMIN` role. + + Org must have an Infrastructure Provider entity, specified Tenant + Account must be created by said Provider. Requesting user must have + `FORGE_PROVIDER_ADMIN` role. + Tenant cannot delete a Tenant Account. tags: - Tenant Account - '/v2/org/{org}/carbide/site': + /v2/org/{org}/carbide/site: parameters: - schema: type: string @@ -795,15 +1066,20 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-site - description: |- + description: >- Retrieve all Sites for org. - User must have `FORGE_PROVIDER_ADMIN` or `FORGE_TENANT_ADMIN` role. `infrastructureProviderId` or `tenantId` query param may be required for older API versions. + + User must have `FORGE_PROVIDER_ADMIN` or `FORGE_TENANT_ADMIN` role. + `infrastructureProviderId` or `tenantId` query param may be required for + older API versions. parameters: - schema: type: string @@ -821,37 +1097,51 @@ paths: type: string in: query name: status - description: Filter Sites by Status. Can be specified multiple times to filter on more than one status + description: >- + Filter Sites by Status. Can be specified multiple times to filter on + more than one status - schema: type: boolean in: query name: isNativeNetworkingEnabled - description: Filter Sites by native networking enabled flag. Requires Provider Admin role. + description: >- + Filter Sites by native networking enabled flag. Requires Provider + Admin role. - schema: type: boolean in: query name: isNetworkSecurityGroupEnabled - description: Filter Sites by network security group enabled flag. Requires Provider Admin role. + description: >- + Filter Sites by network security group enabled flag. Requires + Provider Admin role. - schema: type: boolean in: query name: isNVLinkPartitionEnabled - description: Filter Sites by NVLink partitioning enabled flag. Requires Provider Admin role. + description: >- + Filter Sites by NVLink partitioning enabled flag. Requires Provider + Admin role. - schema: type: boolean in: query name: isRackLevelAdministrationEnabled - description: Filter Sites by Rack Level Administration enabled flag. Requires Provider Admin role. + description: >- + Filter Sites by Rack Level Administration enabled flag. Requires + Provider Admin role. - schema: type: boolean in: query name: includeMachineStats - description: Include a breakdown of Machine counts by life-cycle status and health. Requires Provider Admin role. + description: >- + Include a breakdown of Machine counts by life-cycle status and + health. Requires Provider Admin role. - schema: type: string in: query name: query - description: 'Search for matches across all Sites. Input will be matched against name, description, location, contact, and status fields' + description: >- + Search for matches across all Sites. Input will be matched against + name, description, location, contact, and status fields - schema: type: string enum: @@ -909,10 +1199,13 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Create a Site for the org. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. + Tenants cannot create Sites. requestBody: @@ -933,7 +1226,7 @@ paths: email: johndoe@nvidia.com tags: - Site - '/v2/org/{org}/carbide/site/{siteId}': + /v2/org/{org}/carbide/site/{siteId}: parameters: - schema: type: string @@ -984,12 +1277,16 @@ paths: $ref: '#/components/schemas/Site' tags: - Site - description: |- + description: >- Update a specific Site + User must have `FORGE_PROVIDER_ADMIN` role. - Infrastructure Provider updating the Site must be the owner of the Site. At present, there are no Site specific configuration modifiable by Tenant. + + Infrastructure Provider updating the Site must be the owner of the Site. + At present, there are no Site specific configuration modifiable by + Tenant. requestBody: content: application/json: @@ -1021,10 +1318,13 @@ paths: description: Deletion request was accepted tags: - Site - description: |- + description: >- Delete a specific Site - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. + Site can only be deleted if all Allocations have been deleted. parameters: @@ -1033,7 +1333,7 @@ paths: in: query name: purgeMachines description: Scrub all Machine data associated with this Site to re-pair - '/v2/org/{org}/carbide/site/{siteId}/status-history': + /v2/org/{org}/carbide/site/{siteId}/status-history: parameters: - schema: type: string @@ -1065,7 +1365,7 @@ paths: Example 1: value: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' headers: @@ -1101,7 +1401,7 @@ paths: in: query name: orderBy description: Ordering for pagination query - '/v2/org/{org}/carbide/allocation': + /v2/org/{org}/carbide/allocation: parameters: - schema: type: string @@ -1134,7 +1434,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -1158,17 +1458,23 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-allocation - description: |- + description: >- Retrieve all Allocations for the org. - Provider and Tenant roles are inferred from the org's membership. User must have `FORGE_PROVIDER_ADMIN` or `FORGE_TENANT_ADMIN` role. - Results are returned from both Provider and Tenant perspectives when the org has both roles. + Provider and Tenant roles are inferred from the org's membership. User + must have `FORGE_PROVIDER_ADMIN` or `FORGE_TENANT_ADMIN` role. + + + Results are returned from both Provider and Tenant perspectives when the + org has both roles. parameters: - schema: type: string @@ -1188,12 +1494,16 @@ paths: format: uuid in: query name: siteId - description: Filter Allocations by Site ID. Can be specified multiple times to filter on more than one Site ID. + description: >- + Filter Allocations by Site ID. Can be specified multiple times to + filter on more than one Site ID. - schema: type: string in: query name: id - description: Filter Allocations by ID. Can be specified multiple times to filter on more than one ID. + description: >- + Filter Allocations by ID. Can be specified multiple times to filter + on more than one ID. - schema: type: string enum: @@ -1201,17 +1511,24 @@ paths: - IPBlock in: query name: resourceType - description: Filter Allocations by Constraint Resource Type. Can be specified multiple times to filter on more than one Constraint Resource Type. + description: >- + Filter Allocations by Constraint Resource Type. Can be specified + multiple times to filter on more than one Constraint Resource Type. - schema: type: string in: query name: status - description: Filter Allocations by Status. Can be specified multiple times to filter on more than one Status. + description: >- + Filter Allocations by Status. Can be specified multiple times to + filter on more than one Status. - schema: type: string in: query name: resourceTypeId - description: Filter Allocations by Constraint Resource Type ID. Can be specified multiple times to filter on more than one Constraint Resource Type ID. + description: >- + Filter Allocations by Constraint Resource Type ID. Can be specified + multiple times to filter on more than one Constraint Resource Type + ID. - schema: type: string enum: @@ -1220,17 +1537,23 @@ paths: - Preemptible in: query name: constraintType - description: Filter Allocations by Constraint Type. Can be specified multiple times to filter on more than one Constraint Type. + description: >- + Filter Allocations by Constraint Type. Can be specified multiple + times to filter on more than one Constraint Type. - schema: type: integer in: query name: constraintValue - description: Filter Allocations by Constraint Value. Can be specified multiple times to filter on more than one Constraint Value. + description: >- + Filter Allocations by Constraint Value. Can be specified multiple + times to filter on more than one Constraint Value. - schema: type: string in: query name: query - description: 'Search for matches across all Sites. Input will be matched against name, description and status fields' + description: >- + Search for matches across all Sites. Input will be matched against + name, description and status fields - schema: type: string enum: @@ -1302,7 +1625,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -1321,10 +1644,13 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Create an Allocation for the org. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` role. + Tenant management of Allocation is not supported in MVP. requestBody: @@ -1346,7 +1672,7 @@ paths: constraintValue: 10 tags: - Allocation - '/v2/org/{org}/carbide/allocation/{allocationId}': + /v2/org/{org}/carbide/allocation/{allocationId}: parameters: - schema: type: string @@ -1384,7 +1710,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -1407,10 +1733,14 @@ paths: '403': $ref: '#/components/responses/ForbiddenError' operationId: get-allocation - description: |- + description: >- Retrieve Allocation by ID - Provider and Tenant roles are inferred from the org's membership. Allocation must belong to the Provider or Tenant associated with the org. + + Provider and Tenant roles are inferred from the org's membership. + Allocation must belong to the Provider or Tenant associated with the + org. + User must have `FORGE_PROVIDER_ADMIN` or `FORGE_TENANT_ADMIN` role. parameters: @@ -1443,10 +1773,14 @@ paths: responses: '202': description: Accepted - description: |- + description: >- Delete an Allocation by ID. - Org must have an Infrastructure Provider entity, specified Allocation must be created by said Provider. Requesting user must have `FORGE_PROVIDER_ADMIN` role. + + Org must have an Infrastructure Provider entity, specified Allocation + must be created by said Provider. Requesting user must have + `FORGE_PROVIDER_ADMIN` role. + Tenant management of Allocation is not supported in MVP. tags: @@ -1473,7 +1807,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -1488,10 +1822,13 @@ paths: derivedResourceId: null created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - description: |- + description: >- Update an existing Allocation - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` role. Provider must own the Allocation. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` role. Provider must own the Allocation. + Tenant management of Allocation is not supported in MVP. tags: @@ -1506,7 +1843,7 @@ paths: value: name: Echo Studios Compute description: Echo Studios compute resource allocation in SJC4 - '/v2/org/{org}/carbide/allocation/{allocationId}/constraint': + /v2/org/{org}/carbide/allocation/{allocationId}/constraint: parameters: - schema: type: string @@ -1553,17 +1890,25 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-allocation-constraint - description: |- + description: >- Retrieve all Allocation Constraints for a given Allocation ID. - If org has an Infrastructure Provider entity, then specified Allocation must have been created by the Provider and requesting user must have `FORGE_PROVIDER_ADMIN` role. - If org does not have an Infrastructure Provider entity but has a Tenant entity, then specified Allocation must belong to the Tenant and requesting user must have `FORGE_TENANT_ADMIN` role. + If org has an Infrastructure Provider entity, then specified Allocation + must have been created by the Provider and requesting user must have + `FORGE_PROVIDER_ADMIN` role. + + + If org does not have an Infrastructure Provider entity but has a Tenant + entity, then specified Allocation must belong to the Tenant and + requesting user must have `FORGE_TENANT_ADMIN` role. parameters: - schema: type: integer @@ -1626,10 +1971,13 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Create an Allocation Constraint for a given Allocation ID. - Org must have an Infrastructure Provider entity and specified Allocation must have been created by the Provider. User must have `FORGE_PROVIDER_ADMIN` role. + + Org must have an Infrastructure Provider entity and specified Allocation + must have been created by the Provider. User must have + `FORGE_PROVIDER_ADMIN` role. requestBody: content: application/json: @@ -1644,7 +1992,7 @@ paths: constraintValue: 10 tags: - Allocation - '/v2/org/{org}/carbide/allocation/{allocationId}/constraint/{allocationConstraintId}': + /v2/org/{org}/carbide/allocation/{allocationId}/constraint/{allocationConstraintId}: parameters: - schema: type: string @@ -1698,12 +2046,18 @@ paths: '403': $ref: '#/components/responses/ForbiddenError' operationId: get-allocation-constraint - description: |- + description: >- Retrieve an Allocation Constraint for a given Allocation ID. - If org has an Infrastructure Provider entity, then specified Allocation must have been created by the Provider and requesting user must have `FORGE_PROVIDER_ADMIN` role. - If org does not have an Infrastructure Provider entity but has a Tenant entity, then specified Allocation must belong to the Tenant and requesting user must have `FORGE_TENANT_ADMIN` role. + If org has an Infrastructure Provider entity, then specified Allocation + must have been created by the Provider and requesting user must have + `FORGE_PROVIDER_ADMIN` role. + + + If org does not have an Infrastructure Provider entity but has a Tenant + entity, then specified Allocation must belong to the Tenant and + requesting user must have `FORGE_TENANT_ADMIN` role. parameters: [] patch: summary: Update Allocation Constraint @@ -1732,16 +2086,26 @@ paths: status: Ready created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - description: | + description: > Update an existing Allocation Constraint by ID - Org must have an Infrastructure Provider. Specified Allocation must have been created by the Provider and requesting user must have `FORGE_PROVIDER_ADMIN` role. - Modifying allocations may not be possible if Tenant has started utilizing resources from this allocation. + Org must have an Infrastructure Provider. Specified Allocation must have + been created by the Provider and requesting user must have + `FORGE_PROVIDER_ADMIN` role. + - In case of InstanceType resource, `constraintValue` can be incremented anytime, but not decremented if it requires decommissioning Tenant resources. + Modifying allocations may not be possible if Tenant has started + utilizing resources from this allocation. - In case of IPBlock resource, `constraintValue` can not be modified if Tenant resources are using IPs from the block. + + In case of InstanceType resource, `constraintValue` can be incremented + anytime, but not decremented if it requires decommissioning Tenant + resources. + + + In case of IPBlock resource, `constraintValue` can not be modified if + Tenant resources are using IPs from the block. requestBody: content: application/json: @@ -1759,13 +2123,16 @@ paths: responses: '202': description: Accepted - description: | + description: > Delete an existing Allocation Constraint by ID - Org must have an Infrastructure Provider. Specified Allocation must have been created by the Provider and requesting user must have `FORGE_PROVIDER_ADMIN` role. + + Org must have an Infrastructure Provider. Specified Allocation must have + been created by the Provider and requesting user must have + `FORGE_PROVIDER_ADMIN` role. tags: - Allocation - '/v2/org/{org}/carbide/ipblock': + /v2/org/{org}/carbide/ipblock: parameters: - schema: type: string @@ -1791,7 +2158,9 @@ paths: value: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 name: Public Network Overlay for Site SJC4 - description: This is the primary IP overlay for SJC4. All IPs are publicly routable + description: >- + This is the primary IP overlay for SJC4. All IPs are + publicly routable siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 infrastructureProviderId: e94bcfda-f6cb-42e4-80ec-516811e5abbf tenantId: null @@ -1802,7 +2171,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -1811,15 +2180,20 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-ipblock - description: |- + description: >- Retrieve all IP blocks for the org. - User must have `FORGE_PROVIDER_ADMIN` or `FORGE_TENANT_ADMIN` role. `infrastructureProviderId` or `tenantId` query param may be required for older API versions. + + User must have `FORGE_PROVIDER_ADMIN` or `FORGE_TENANT_ADMIN` role. + `infrastructureProviderId` or `tenantId` query param may be required for + older API versions. parameters: - schema: type: string @@ -1853,7 +2227,9 @@ paths: type: string in: query name: query - description: 'Search for matches across all Sites. Input will be matched against name, description and status fields' + description: >- + Search for matches across all Sites. Input will be matched against + name, description and status fields - schema: type: string enum: @@ -1910,7 +2286,9 @@ paths: value: id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 name: Public Network Overlay for Site SJC4 - description: This is the primary IP overlay for SJC4. All IPs are publicly routable + description: >- + This is the primary IP overlay for SJC4. All IPs are + publicly routable siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 infrastructureProviderId: e94bcfda-f6cb-42e4-80ec-516811e5abbf tenantId: null @@ -1921,7 +2299,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -1930,10 +2308,13 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Create an IP block for the org. - Only Infrastructure Providers can create a root IP Block. User must have `FORGE_PROVIDER_ADMIN` role. + + Only Infrastructure Providers can create a root IP Block. User must have + `FORGE_PROVIDER_ADMIN` role. + Tenant IP Blocks are created via Allocation. requestBody: @@ -1945,7 +2326,9 @@ paths: example-1: value: name: Public Network Overlay for Site SJC4 - description: This is the primary IP overlay for SJC4. All IPs are publicly routable + description: >- + This is the primary IP overlay for SJC4. All IPs are + publicly routable siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 routingType: Public prefix: 202.168.1.0 @@ -1953,7 +2336,7 @@ paths: protocolVersion: IPv4 tags: - IP Block - '/v2/org/{org}/carbide/ipblock/{ipBlockId}': + /v2/org/{org}/carbide/ipblock/{ipBlockId}: parameters: - schema: type: string @@ -1983,7 +2366,9 @@ paths: value: id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 name: Public Network Overlay for Site SJC4 - description: This is the primary IP overlay for SJC4. All IPs are publicly routable + description: >- + This is the primary IP overlay for SJC4. All IPs are + publicly routable siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 infrastructureProviderId: e94bcfda-f6cb-42e4-80ec-516811e5abbf tenantId: null @@ -2001,7 +2386,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -2050,10 +2435,14 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Delete an IP block - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` role. Only root IP Blocks can be deleted if there are no allocations associated with it. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` role. Only root IP Blocks can be deleted if there + are no allocations associated with it. + Tenant IP Blocks are managed via Allocation. tags: @@ -2073,7 +2462,9 @@ paths: value: id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 name: Public Network Overlay for Site SJC-4 - description: This is the primary IP overlay for SJC-4. All IPs are publicly routable + description: >- + This is the primary IP overlay for SJC-4. All IPs are + publicly routable siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 infrastructureProviderId: e94bcfda-f6cb-42e4-80ec-516811e5abbf tenantId: null @@ -2084,15 +2475,19 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - description: |- + description: >- Update an existing IP Block - Org must have an Infrastructure Provider. Specified IP Block must have been created by the Provider and requesting user must have `FORGE_PROVIDER_ADMIN` role. Only root IP Blocks can be patched. + + Org must have an Infrastructure Provider. Specified IP Block must have + been created by the Provider and requesting user must have + `FORGE_PROVIDER_ADMIN` role. Only root IP Blocks can be patched. + Tenant IP Blocks are managed via Allocation. requestBody: @@ -2104,10 +2499,12 @@ paths: example-1: value: name: Public Network Overlay for Site SJC-4 - description: This is the primary IP overlay for SJC-4. All IPs are publicly routable + description: >- + This is the primary IP overlay for SJC-4. All IPs are + publicly routable tags: - IP Block - '/v2/org/{org}/carbide/ipblock/{ipBlockId}/derived': + /v2/org/{org}/carbide/ipblock/{ipBlockId}/derived: parameters: - schema: type: string @@ -2139,7 +2536,9 @@ paths: value: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 name: Public Network Overlay for Site SJC4 - description: This is the primary IP overlay for SJC4. All IPs are publicly routable + description: >- + This is the primary IP overlay for SJC4. All IPs are + publicly routable siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 infrastructureProviderId: e94bcfda-f6cb-42e4-80ec-516811e5abbf tenantId: 97c57510-b443-43b4-881c-974d4b86c87c @@ -2150,7 +2549,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -2159,15 +2558,22 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-derived-ipblock - description: |- - Retrieve all child IP Blocks allocated to Tenants from a specific Provider super IP Block. When allocations are created from a super block, individual Tenant IP Blocks are created as a result. + description: >- + Retrieve all child IP Blocks allocated to Tenants from a specific + Provider super IP Block. When allocations are created from a super + block, individual Tenant IP Blocks are created as a result. + + + The IP Block in URL must belong to the Infrastructure Provider + associated with the Org. - The IP Block in URL must belong to the Infrastructure Provider associated with the Org. User must have `FORGE_PROVIDER_ADMIN` role. parameters: @@ -2180,7 +2586,9 @@ paths: type: string in: query name: query - description: 'Search for matches across all Sites. Input will be matched against name, description and status fields' + description: >- + Search for matches across all Sites. Input will be matched against + name, description and status fields - schema: type: string enum: @@ -2222,7 +2630,7 @@ paths: in: query name: orderBy description: Ordering for pagination query - '/v2/org/{org}/carbide/vpc': + /v2/org/{org}/carbide/vpc: parameters: - schema: type: string @@ -2277,7 +2685,7 @@ paths: created: '2019-08-24T16:02:00Z' updated: '2019-08-24T16:02:00Z' - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -2286,43 +2694,57 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-vpc - description: |- + description: >- Retrieve all VPCs for the org. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role parameters: - schema: type: string format: uuid in: query name: siteId - description: Filter VPCs by Site ID. Can be specified multiple times to filter on more than one Site. + description: >- + Filter VPCs by Site ID. Can be specified multiple times to filter on + more than one Site. - schema: type: string in: query name: status - description: Filter VPCs by Status. Can be specified multiple times to filter on more than one Status. + description: >- + Filter VPCs by Status. Can be specified multiple times to filter on + more than one Status. - schema: type: string in: query name: networkSecurityGroupId - description: Filter VPCs by Network Security Group ID. Can be specified multiple times to filter on more than one Network Security Group. + description: >- + Filter VPCs by Network Security Group ID. Can be specified multiple + times to filter on more than one Network Security Group. - schema: type: string format: uuid in: query name: nvLinkLogicalPartitionId - description: Filter VPCs by NVLink Logical Partition ID. Can be specified multiple times to filter on more than one NVLink Logical Partition. + description: >- + Filter VPCs by NVLink Logical Partition ID. Can be specified + multiple times to filter on more than one NVLink Logical Partition. - schema: type: string in: query name: query - description: 'Search for matches across all VPCs. Input will be matched against name, description, labels and status fields' + description: >- + Search for matches across all VPCs. Input will be matched against + name, description, labels and status fields - schema: type: string enum: @@ -2393,7 +2815,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -2402,10 +2824,12 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Create a VPC for the org. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role requestBody: content: application/json: @@ -2427,7 +2851,7 @@ paths: description: '' tags: - VPC - '/v2/org/{org}/carbide/vpc/{vpcId}': + /v2/org/{org}/carbide/vpc/{vpcId}: parameters: - schema: type: string @@ -2471,7 +2895,7 @@ paths: region: us-west-1 env: dev status: Ready - networkSecurityGroupId: 'c602eb90-3039-11f0-997a-b38d4fc8389e,' + networkSecurityGroupId: c602eb90-3039-11f0-997a-b38d4fc8389e, networkSecurityGroupPropagationDetails: id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 detailedStatus: Partial @@ -2487,7 +2911,7 @@ paths: created: '2019-08-24T16:02:00Z' updated: '2019-08-24T16:02:00Z' - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -2518,10 +2942,12 @@ paths: description: Accepted '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Delete a specific VPC by ID. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. tags: - VPC patch: @@ -2554,7 +2980,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -2565,10 +2991,12 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - VPC - description: |- + description: >- Update an existing VPC - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role requestBody: content: application/json: @@ -2582,7 +3010,7 @@ paths: labels: region: us-west-1 env: dev - '/v2/org/{org}/carbide/vpc/{vpcId}/virtualization': + /v2/org/{org}/carbide/vpc/{vpcId}/virtualization: parameters: - schema: type: string @@ -2627,7 +3055,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -2638,12 +3066,16 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - VPC - description: |- + description: >- Update network virtualization type for a VPC - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role + Tenant must own the VPC + Request is rejected if the VPC already has Subnets or Instances requestBody: content: @@ -2654,7 +3086,7 @@ paths: Example 1: value: networkVirtualizationType: FNN - '/v2/org/{org}/carbide/vpc-peering': + /v2/org/{org}/carbide/vpc-peering: parameters: - schema: type: string @@ -2679,17 +3111,23 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '400': $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-vpc-peering - description: |- + description: >- Get all VPC peerings. - Tenant Admin can get all peerings where the tenant owns at least one VPC. + + Tenant Admin can get all peerings where the tenant owns at least one + VPC. + Provider Admin can get all peerings in a site. + User must have `FORGE_TENANT_ADMIN` or `FORGE_PROVIDER_ADMIN` role. parameters: - schema: @@ -2698,7 +3136,9 @@ paths: in: query name: siteId required: false - description: Optional Site ID filter. If provided, caller must have access to the specified Site. + description: >- + Optional Site ID filter. If provided, caller must have access to the + specified Site. - schema: type: integer example: 1 @@ -2725,7 +3165,9 @@ paths: in: query name: isMultiTenant required: false - description: Optional filter by peering tenancy type (single-tenant or multi-tenant). + description: >- + Optional filter by peering tenancy type (single-tenant or + multi-tenant). - schema: type: string enum: @@ -2741,11 +3183,16 @@ paths: tags: - VPC Peering operationId: create-vpc-peering - description: |- + description: >- Create a VPC peering between two VPCs on the same site. - Tenant Admin can create single-tenant peerings (both VPCs belong to their tenant). - Provider Admin can create multi-tenant peerings (VPCs from different tenants). + + Tenant Admin can create single-tenant peerings (both VPCs belong to + their tenant). + + Provider Admin can create multi-tenant peerings (VPCs from different + tenants). + User must have `FORGE_TENANT_ADMIN` or `FORGE_PROVIDER_ADMIN` role. requestBody: @@ -2773,7 +3220,7 @@ paths: $ref: '#/components/responses/ForbiddenError' '404': $ref: '#/components/responses/NotFoundError' - '/v2/org/{org}/carbide/vpc-peering/{id}': + /v2/org/{org}/carbide/vpc-peering/{id}: parameters: - schema: type: string @@ -2793,11 +3240,16 @@ paths: tags: - VPC Peering operationId: get-vpc-peering - description: |- + description: >- Get details of a VPC peering by ID. - Tenant Admin can get a peering if at least one VPC belongs to their tenant. - Provider Admin can get a peering if it is in a site provided by their org. + + Tenant Admin can get a peering if at least one VPC belongs to their + tenant. + + Provider Admin can get a peering if it is in a site provided by their + org. + User must have `FORGE_TENANT_ADMIN` or `FORGE_PROVIDER_ADMIN` role. responses: @@ -2829,11 +3281,16 @@ paths: tags: - VPC Peering operationId: delete-vpc-peering - description: |- + description: >- Delete a VPC peering by ID. - Tenant Admin can delete only peerings where both VPCs belong to their tenant. - Provider Admin can delete only multi-tenant peerings in sites they provide. + + Tenant Admin can delete only peerings where both VPCs belong to their + tenant. + + Provider Admin can delete only multi-tenant peerings in sites they + provide. + User must have `FORGE_TENANT_ADMIN` or `FORGE_PROVIDER_ADMIN` role. responses: @@ -2845,7 +3302,7 @@ paths: $ref: '#/components/responses/ForbiddenError' '404': $ref: '#/components/responses/NotFoundError' - '/v2/org/{org}/carbide/vpc-prefix': + /v2/org/{org}/carbide/vpc-prefix: parameters: - schema: type: string @@ -2870,7 +3327,9 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' @@ -2885,7 +3344,9 @@ paths: format: uuid in: query name: siteId - description: 'Filter VPC Prefixes by Site, required if vpcId query param is not specified' + description: >- + Filter VPC Prefixes by Site, required if vpcId query param is not + specified - schema: type: string format: uuid @@ -2901,7 +3362,9 @@ paths: type: string in: query name: query - description: Search for matches across all Sites. Input will be matched against name and status fields + description: >- + Search for matches across all Sites. Input will be matched against + name and status fields - schema: type: string enum: @@ -2955,10 +3418,12 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Create a VPC Prefix for the org. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. requestBody: content: application/json: @@ -2966,7 +3431,7 @@ paths: $ref: '#/components/schemas/VpcPrefixCreateRequest' tags: - VPC Prefix - '/v2/org/{org}/carbide/vpc-prefix/{vpcPrefixId}': + /v2/org/{org}/carbide/vpc-prefix/{vpcPrefixId}: parameters: - schema: type: string @@ -3039,16 +3504,18 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - VPC Prefix - description: | + description: > Update an existing VPC Prefix - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. requestBody: content: application/json: schema: $ref: '#/components/schemas/VpcPrefixUpdateRequest' - '/v2/org/{org}/carbide/subnet': + /v2/org/{org}/carbide/subnet: parameters: - schema: type: string @@ -3093,7 +3560,7 @@ paths: created: '2019-08-24T16:02:38Z' updated: '2019-08-24T16:02:38Z' - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -3102,7 +3569,9 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' @@ -3117,7 +3586,9 @@ paths: format: uuid in: query name: siteId - description: 'Filter subnets by Site, required if vpcId query param is not specified' + description: >- + Filter subnets by Site, required if vpcId query param is not + specified - schema: type: string format: uuid @@ -3133,7 +3604,9 @@ paths: type: string in: query name: query - description: 'Search for matches across all Sites. Input will be matched against name, description and status fields' + description: >- + Search for matches across all Sites. Input will be matched against + name, description and status fields - schema: type: string enum: @@ -3204,7 +3677,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -3213,10 +3686,13 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Create a Subnet for the org. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. + At least 1 IPv4 IP block or 1 IPv6 IP block must be specified. requestBody: @@ -3233,7 +3709,7 @@ paths: prefixLength: 20 tags: - Subnet - '/v2/org/{org}/carbide/subnet/{subnetId}': + /v2/org/{org}/carbide/subnet/{subnetId}: parameters: - schema: type: string @@ -3283,7 +3759,7 @@ paths: created: '2019-08-24T16:02:38Z' updated: '2019-08-24T16:02:38Z' - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -3351,7 +3827,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -3362,10 +3838,12 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Subnet - description: | + description: > Update an existing Subnet - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. requestBody: content: application/json: @@ -3376,7 +3854,7 @@ paths: value: name: spark-gpu-subnet description: Subnet for dedicated GPU nodes - '/v2/org/{org}/carbide/expected-machine': + /v2/org/{org}/carbide/expected-machine: parameters: - schema: type: string @@ -3387,12 +3865,18 @@ paths: post: summary: Create Expected Machine operationId: create-expected-machine - description: |- - Create an Expected Machine to pre-register Machines expected to be discovered at a Site. + description: >- + Create an Expected Machine to pre-register Machines expected to be + discovered at a Site. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` role. - Alternatively, Tenant Admins with `TargetedInstanceCreation` capability can also create Expected Machines if they have an account with the Site's Infrastructure Provider. + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` role. + + + Alternatively, Tenant Admins with `TargetedInstanceCreation` capability + can also create Expected Machines if they have an account with the + Site's Infrastructure Provider. requestBody: content: application/json: @@ -3402,9 +3886,9 @@ paths: example-1: value: siteId: f97df110-f4de-492e-8849-4a6af68026b0 - bmcMacAddress: '00:1A:2B:3C:4D:5E' - bmcUsername: admin - bmcPassword: password123 + bmcMacAddress: 00:1A:2B:3C:4D:5E + defaultBmcUsername: admin + defaultBmcPassword: password123 chassisSerialNumber: CHASSIS-12345 fallbackDPUSerialNumbers: - DPU-001 @@ -3430,12 +3914,18 @@ paths: get: summary: Retrieve all Expected Machines operationId: get-all-expected-machine - description: |- + description: >- Retrieve all Expected Machines. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` or `FORGE_PROVIDER_VIEWER` role. - Alternatively, Tenant Admins with `TargetedInstanceCreation` capability can also retrieve Expected Machines if they have an account with the Site's Infrastructure Provider (siteId query parameter is required for Tenants). + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` or `FORGE_PROVIDER_VIEWER` role. + + + Alternatively, Tenant Admins with `TargetedInstanceCreation` capability + can also retrieve Expected Machines if they have an account with the + Site's Infrastructure Provider (siteId query parameter is required for + Tenants). parameters: - schema: type: string @@ -3494,7 +3984,9 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '400': $ref: '#/components/responses/ValidationError' @@ -3502,7 +3994,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Expected Machine - '/v2/org/{org}/carbide/expected-machine/{expectedMachineId}': + /v2/org/{org}/carbide/expected-machine/{expectedMachineId}: parameters: - schema: type: string @@ -3519,12 +4011,17 @@ paths: get: summary: Retrieve Expected Machine operationId: get-expected-machine - description: |- + description: >- Retrieve a specific Expected Machine by ID. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` or `FORGE_PROVIDER_VIEWER` role. - Alternatively, Tenant Admins with `TargetedInstanceCreation` capability can also retrieve Expected Machines if they have an account with the Site's Infrastructure Provider. + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` or `FORGE_PROVIDER_VIEWER` role. + + + Alternatively, Tenant Admins with `TargetedInstanceCreation` capability + can also retrieve Expected Machines if they have an account with the + Site's Infrastructure Provider. parameters: - schema: type: string @@ -3552,14 +4049,20 @@ paths: patch: summary: Update Expected Machine operationId: update-expected-machine - description: |- + description: >- Update an existing Expected Machine by ID. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` role. + Infrastructure Provider must own the Expected Machine. - Alternatively, Tenant Admins with `TargetedInstanceCreation` capability can also update Expected Machines if they have an account with the Site's Infrastructure Provider. + + Alternatively, Tenant Admins with `TargetedInstanceCreation` capability + can also update Expected Machines if they have an account with the + Site's Infrastructure Provider. parameters: [] requestBody: content: @@ -3569,8 +4072,8 @@ paths: examples: example-1: value: - bmcUsername: newadmin - bmcPassword: newpassword123 + defaultBmcUsername: newadmin + defaultBmcPassword: newpassword123 chassisSerialNumber: CHASSIS-54321 labels: environment: staging @@ -3595,14 +4098,20 @@ paths: delete: summary: Delete Expected Machine operationId: delete-expected-machine - description: |- + description: >- Delete an existing Expected Machine by ID. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` role. + Infrastructure Provider must own the Expected Machine. - Alternatively, Tenant Admins with `TargetedInstanceCreation` capability can also delete Expected Machines if they have an account with the Site's Infrastructure Provider. + + Alternatively, Tenant Admins with `TargetedInstanceCreation` capability + can also delete Expected Machines if they have an account with the + Site's Infrastructure Provider. parameters: [] responses: '204': @@ -3615,7 +4124,7 @@ paths: $ref: '#/components/responses/NotFoundError' tags: - Expected Machine - '/v2/org/{org}/carbide/expected-machine/batch': + /v2/org/{org}/carbide/expected-machine/batch: parameters: - schema: type: string @@ -3626,12 +4135,19 @@ paths: post: summary: Batch Create Expected Machines operationId: batch-create-expected-machines - description: |- - Create multiple Expected Machines in a single request. All machines must belong to the same site. + description: >- + Create multiple Expected Machines in a single request. All machines must + belong to the same site. + + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` role. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` role. - Alternatively, Tenant Admins with `TargetedInstanceCreation` capability can also create Expected Machines if they have an account with the Site's Infrastructure Provider. + Alternatively, Tenant Admins with `TargetedInstanceCreation` capability + can also create Expected Machines if they have an account with the + Site's Infrastructure Provider. + Maximum batch size: 100 Expected Machines per request. requestBody: @@ -3647,9 +4163,9 @@ paths: example-1: value: - siteId: f97df110-f4de-492e-8849-4a6af68026b0 - bmcMacAddress: '00:1A:2B:3C:4D:5E' - bmcUsername: admin - bmcPassword: password123 + bmcMacAddress: 00:1A:2B:3C:4D:5E + defaultBmcUsername: admin + defaultBmcPassword: password123 chassisSerialNumber: CHASSIS-12345 fallbackDPUSerialNumbers: - DPU-001 @@ -3658,9 +4174,9 @@ paths: environment: production rack: A1 - siteId: f97df110-f4de-492e-8849-4a6af68026b0 - bmcMacAddress: '00:1A:2B:3C:4D:5F' - bmcUsername: admin - bmcPassword: password456 + bmcMacAddress: 00:1A:2B:3C:4D:5F + defaultBmcUsername: admin + defaultBmcPassword: password456 chassisSerialNumber: CHASSIS-12346 fallbackDPUSerialNumbers: - DPU-003 @@ -3688,14 +4204,22 @@ paths: patch: summary: Batch Update Expected Machines operationId: batch-update-expected-machines - description: |- - Update multiple Expected Machines in a single request. All machines must belong to the same site. + description: >- + Update multiple Expected Machines in a single request. All machines must + belong to the same site. + + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` role. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` role. Infrastructure Provider must own the Expected Machines. - Alternatively, Tenant Admins with `TargetedInstanceCreation` capability can also update Expected Machines if they have an account with the Site's Infrastructure Provider. + + Alternatively, Tenant Admins with `TargetedInstanceCreation` capability + can also update Expected Machines if they have an account with the + Site's Infrastructure Provider. + Maximum batch size: 100 Expected Machines per request. requestBody: @@ -3711,15 +4235,15 @@ paths: example-1: value: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 - bmcUsername: newadmin - bmcPassword: newpassword123 + defaultBmcUsername: newadmin + defaultBmcPassword: newpassword123 chassisSerialNumber: CHASSIS-54321 labels: environment: staging rack: B2 - id: 597f6eca-6276-4993-bfeb-53cbbbba6f09 - bmcUsername: newadmin2 - bmcPassword: newpassword456 + defaultBmcUsername: newadmin2 + defaultBmcPassword: newpassword456 chassisSerialNumber: CHASSIS-54322 labels: environment: staging @@ -3747,7 +4271,7 @@ paths: $ref: '#/components/schemas/CarbideAPIError' tags: - Expected Machine - '/v2/org/{org}/carbide/expected-power-shelf': + /v2/org/{org}/carbide/expected-power-shelf: parameters: - schema: type: string @@ -3758,12 +4282,18 @@ paths: post: summary: Create Expected Power Shelf operationId: create-expected-power-shelf - description: |- - Create an Expected Power Shelf to pre-register power shelves expected to be discovered at a Site. + description: >- + Create an Expected Power Shelf to pre-register power shelves expected to + be discovered at a Site. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` role. - Alternatively, Tenant Admins with `TargetedInstanceCreation` capability can also create Expected Power Shelves if they have an account with the Site's Infrastructure Provider. + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` role. + + + Alternatively, Tenant Admins with `TargetedInstanceCreation` capability + can also create Expected Power Shelves if they have an account with the + Site's Infrastructure Provider. requestBody: content: application/json: @@ -3773,11 +4303,11 @@ paths: example-1: value: siteId: f97df110-f4de-492e-8849-4a6af68026b0 - bmcMacAddress: '00:1A:2B:3C:4D:5E' + bmcMacAddress: 00:1A:2B:3C:4D:5E defaultBmcUsername: admin defaultBmcPassword: password123 shelfSerialNumber: SHELF-12345 - ipAddress: '192.168.1.100' + ipAddress: 192.168.1.100 labels: environment: production rack: A1 @@ -3799,12 +4329,18 @@ paths: get: summary: Retrieve all Expected Power Shelves operationId: get-all-expected-power-shelf - description: |- + description: >- Retrieve all Expected Power Shelves. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` or `FORGE_PROVIDER_VIEWER` role. - Alternatively, Tenant Admins with `TargetedInstanceCreation` capability can also retrieve Expected Power Shelves if they have an account with the Site's Infrastructure Provider (siteId query parameter is required for Tenants). + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` or `FORGE_PROVIDER_VIEWER` role. + + + Alternatively, Tenant Admins with `TargetedInstanceCreation` capability + can also retrieve Expected Power Shelves if they have an account with + the Site's Infrastructure Provider (siteId query parameter is required + for Tenants). parameters: - schema: type: string @@ -3862,7 +4398,9 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '400': $ref: '#/components/responses/ValidationError' @@ -3870,7 +4408,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Expected Power Shelf - '/v2/org/{org}/carbide/expected-power-shelf/{expectedPowerShelfId}': + /v2/org/{org}/carbide/expected-power-shelf/{expectedPowerShelfId}: parameters: - schema: type: string @@ -3887,12 +4425,17 @@ paths: get: summary: Retrieve Expected Power Shelf operationId: get-expected-power-shelf - description: |- + description: >- Retrieve a specific Expected Power Shelf by ID. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` or `FORGE_PROVIDER_VIEWER` role. - Alternatively, Tenant Admins with `TargetedInstanceCreation` capability can also retrieve Expected Power Shelves if they have an account with the Site's Infrastructure Provider. + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` or `FORGE_PROVIDER_VIEWER` role. + + + Alternatively, Tenant Admins with `TargetedInstanceCreation` capability + can also retrieve Expected Power Shelves if they have an account with + the Site's Infrastructure Provider. parameters: - schema: type: string @@ -3919,14 +4462,20 @@ paths: patch: summary: Update Expected Power Shelf operationId: update-expected-power-shelf - description: |- + description: >- Update an existing Expected Power Shelf by ID. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` role. + Infrastructure Provider must own the Expected Power Shelf. - Alternatively, Tenant Admins with `TargetedInstanceCreation` capability can also update Expected Power Shelves if they have an account with the Site's Infrastructure Provider. + + Alternatively, Tenant Admins with `TargetedInstanceCreation` capability + can also update Expected Power Shelves if they have an account with the + Site's Infrastructure Provider. parameters: [] requestBody: content: @@ -3939,7 +4488,7 @@ paths: defaultBmcUsername: newadmin defaultBmcPassword: newpassword123 shelfSerialNumber: SHELF-54321 - ipAddress: '192.168.1.200' + ipAddress: 192.168.1.200 labels: environment: staging rack: B2 @@ -3963,14 +4512,20 @@ paths: delete: summary: Delete Expected Power Shelf operationId: delete-expected-power-shelf - description: |- + description: >- Delete an existing Expected Power Shelf by ID. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` role. + Infrastructure Provider must own the Expected Power Shelf. - Alternatively, Tenant Admins with `TargetedInstanceCreation` capability can also delete Expected Power Shelves if they have an account with the Site's Infrastructure Provider. + + Alternatively, Tenant Admins with `TargetedInstanceCreation` capability + can also delete Expected Power Shelves if they have an account with the + Site's Infrastructure Provider. parameters: [] responses: '204': @@ -3983,7 +4538,7 @@ paths: $ref: '#/components/responses/NotFoundError' tags: - Expected Power Shelf - '/v2/org/{org}/carbide/expected-switch': + /v2/org/{org}/carbide/expected-switch: parameters: - schema: type: string @@ -3994,12 +4549,18 @@ paths: post: summary: Create Expected Switch operationId: create-expected-switch - description: |- - Create an Expected Switch to pre-register network switches expected to be discovered at a Site. + description: >- + Create an Expected Switch to pre-register network switches expected to + be discovered at a Site. + - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` role. + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` role. - Alternatively, Tenant Admins with `TargetedInstanceCreation` capability can also create Expected Switches if they have an account with the Site's Infrastructure Provider. + + Alternatively, Tenant Admins with `TargetedInstanceCreation` capability + can also create Expected Switches if they have an account with the + Site's Infrastructure Provider. requestBody: content: application/json: @@ -4009,7 +4570,7 @@ paths: example-1: value: siteId: f97df110-f4de-492e-8849-4a6af68026b0 - bmcMacAddress: '00:1A:2B:3C:4D:5E' + bmcMacAddress: 00:1A:2B:3C:4D:5E defaultBmcUsername: admin defaultBmcPassword: password123 switchSerialNumber: SWITCH-12345 @@ -4036,12 +4597,18 @@ paths: get: summary: Retrieve all Expected Switches operationId: get-all-expected-switch - description: |- + description: >- Retrieve all Expected Switches. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` or `FORGE_PROVIDER_VIEWER` role. - Alternatively, Tenant Admins with `TargetedInstanceCreation` capability can also retrieve Expected Switches if they have an account with the Site's Infrastructure Provider (siteId query parameter is required for Tenants). + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` or `FORGE_PROVIDER_VIEWER` role. + + + Alternatively, Tenant Admins with `TargetedInstanceCreation` capability + can also retrieve Expected Switches if they have an account with the + Site's Infrastructure Provider (siteId query parameter is required for + Tenants). parameters: - schema: type: string @@ -4099,7 +4666,9 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '400': $ref: '#/components/responses/ValidationError' @@ -4107,7 +4676,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Expected Switch - '/v2/org/{org}/carbide/expected-switch/{expectedSwitchId}': + /v2/org/{org}/carbide/expected-switch/{expectedSwitchId}: parameters: - schema: type: string @@ -4124,12 +4693,17 @@ paths: get: summary: Retrieve Expected Switch operationId: get-expected-switch - description: |- + description: >- Retrieve a specific Expected Switch by ID. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` or `FORGE_PROVIDER_VIEWER` role. - Alternatively, Tenant Admins with `TargetedInstanceCreation` capability can also retrieve Expected Switches if they have an account with the Site's Infrastructure Provider. + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` or `FORGE_PROVIDER_VIEWER` role. + + + Alternatively, Tenant Admins with `TargetedInstanceCreation` capability + can also retrieve Expected Switches if they have an account with the + Site's Infrastructure Provider. parameters: - schema: type: string @@ -4156,14 +4730,20 @@ paths: patch: summary: Update Expected Switch operationId: update-expected-switch - description: |- + description: >- Update an existing Expected Switch by ID. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` role. + Infrastructure Provider must own the Expected Switch. - Alternatively, Tenant Admins with `TargetedInstanceCreation` capability can also update Expected Switches if they have an account with the Site's Infrastructure Provider. + + Alternatively, Tenant Admins with `TargetedInstanceCreation` capability + can also update Expected Switches if they have an account with the + Site's Infrastructure Provider. parameters: [] requestBody: content: @@ -4201,14 +4781,20 @@ paths: delete: summary: Delete Expected Switch operationId: delete-expected-switch - description: |- + description: >- Delete an existing Expected Switch by ID. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` role. + Infrastructure Provider must own the Expected Switch. - Alternatively, Tenant Admins with `TargetedInstanceCreation` capability can also delete Expected Switches if they have an account with the Site's Infrastructure Provider. + + Alternatively, Tenant Admins with `TargetedInstanceCreation` capability + can also delete Expected Switches if they have an account with the + Site's Infrastructure Provider. parameters: [] responses: '204': @@ -4221,7 +4807,7 @@ paths: $ref: '#/components/responses/NotFoundError' tags: - Expected Switch - '/v2/org/{org}/carbide/sku': + /v2/org/{org}/carbide/sku: parameters: - schema: type: string @@ -4232,16 +4818,26 @@ paths: get: summary: Retrieve all SKUs operationId: get-all-sku - description: |- - Retrieve all SKUs (Stock Keeping Units) for the Infrastructure Provider or privileged Tenant. + description: >- + Retrieve all SKUs (Stock Keeping Units) for the Infrastructure Provider + or privileged Tenant. + + + SKUs represent unique hardware configurations discovered at sites. They + are automatically derived from machine characteristics. - SKUs represent unique hardware configurations discovered at sites. They are automatically derived from machine characteristics. A `siteId` query parameter is required for all requests. - For Infrastructure Providers: Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` or `FORGE_PROVIDER_VIEWER` role. - For Tenants: Org must have a Tenant with `TargetedInstanceCreation` capability enabled. User must have `FORGE_TENANT_ADMIN` role. The Tenant must have an account with the Site's Infrastructure Provider. + For Infrastructure Providers: Org must have an Infrastructure Provider + entity. User must have `FORGE_PROVIDER_ADMIN` or `FORGE_PROVIDER_VIEWER` + role. + + + For Tenants: Org must have a Tenant with `TargetedInstanceCreation` + capability enabled. User must have `FORGE_TENANT_ADMIN` role. The Tenant + must have an account with the Site's Infrastructure Provider. parameters: - schema: type: string @@ -4294,7 +4890,8 @@ paths: siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 deviceType: gpu associatedMachineIds: - - fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + - >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g components: cpus: - vendor: Intel @@ -4324,7 +4921,9 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '400': $ref: '#/components/responses/ValidationError' @@ -4332,7 +4931,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - SKU - '/v2/org/{org}/carbide/sku/{skuId}': + /v2/org/{org}/carbide/sku/{skuId}: parameters: - schema: type: string @@ -4349,14 +4948,22 @@ paths: get: summary: Retrieve SKU operationId: get-sku - description: |- + description: >- Retrieve a specific SKU (Stock Keeping Unit) by ID. - SKUs represent unique hardware configurations discovered at sites. They are automatically derived from machine characteristics. - For Infrastructure Providers: Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` or `FORGE_PROVIDER_VIEWER` role. + SKUs represent unique hardware configurations discovered at sites. They + are automatically derived from machine characteristics. + - For Tenants: Org must have a Tenant with `TargetedInstanceCreation` capability enabled. User must have `FORGE_TENANT_ADMIN` role. The Tenant must have an account with the SKU's Site's Infrastructure Provider. + For Infrastructure Providers: Org must have an Infrastructure Provider + entity. User must have `FORGE_PROVIDER_ADMIN` or `FORGE_PROVIDER_VIEWER` + role. + + + For Tenants: Org must have a Tenant with `TargetedInstanceCreation` + capability enabled. User must have `FORGE_TENANT_ADMIN` role. The Tenant + must have an account with the SKU's Site's Infrastructure Provider. responses: '200': description: OK @@ -4371,7 +4978,8 @@ paths: siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 deviceType: gpu associatedMachineIds: - - fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + - >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g components: cpus: - vendor: Intel @@ -4405,7 +5013,7 @@ paths: $ref: '#/components/responses/NotFoundError' tags: - SKU - '/v2/org/{org}/carbide/infiniband-partition': + /v2/org/{org}/carbide/infiniband-partition: parameters: - schema: type: string @@ -4445,7 +5053,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -4454,7 +5062,9 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' @@ -4479,7 +5089,9 @@ paths: type: string in: query name: query - description: 'Search for matches across all Sites. Input will be matched against name, description and status fields' + description: >- + Search for matches across all Sites. Input will be matched against + name, description and status fields - schema: type: string enum: @@ -4552,7 +5164,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -4561,10 +5173,12 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Create an InfiniBand Partition for the org. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. requestBody: content: application/json: @@ -4580,7 +5194,7 @@ paths: team: devops tags: - InfiniBand Partition - '/v2/org/{org}/carbide/infiniband-partition/{infiniBandPartitionId}': + /v2/org/{org}/carbide/infiniband-partition/{infiniBandPartitionId}: parameters: - schema: type: string @@ -4624,7 +5238,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -4697,7 +5311,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -4706,10 +5320,13 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Update an existing InfiniBand Partition - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. + Tenant must own the Partition. requestBody: @@ -4727,7 +5344,7 @@ paths: team: devops tags: - InfiniBand Partition - '/v2/org/{org}/carbide/nvlink-logical-partition': + /v2/org/{org}/carbide/nvlink-logical-partition: parameters: - schema: type: string @@ -4757,7 +5374,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -4766,7 +5383,9 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' @@ -4791,7 +5410,9 @@ paths: type: string in: query name: query - description: 'Search for matches across all Sites. Input will be matched against name, description and status fields' + description: >- + Search for matches across all Sites. Input will be matched against + name, description and status fields - schema: type: boolean in: query @@ -4866,7 +5487,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -4875,10 +5496,12 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Create an NVLink Logical Partition for the org. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` NGC role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` NGC + role. requestBody: content: application/json: @@ -4891,7 +5514,7 @@ paths: siteId: 69dae3c8-3554-4a1f-b391-858c6dc47fff tags: - NVLink Logical Partition - '/v2/org/{org}/carbide/nvlink-logical-partition/{nvLinkLogicalPartitionId}': + /v2/org/{org}/carbide/nvlink-logical-partition/{nvLinkLogicalPartitionId}: parameters: - schema: type: string @@ -4917,10 +5540,12 @@ paths: '403': $ref: '#/components/responses/ForbiddenError' operationId: get-nvlink-logical-partition - description: |- + description: >- Retrieve a specific NVLink Logical Partition by ID - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` NGC role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` NGC + role. tags: - NVLink Logical Partition parameters: @@ -4961,10 +5586,12 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Update a specific NVLink Logical Partition - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` NGC role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` NGC + role. requestBody: content: application/json: @@ -4980,13 +5607,15 @@ paths: description: Accepted '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Delete an NVLink Logical Partition by ID - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` NGC role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` NGC + role. tags: - NVLink Logical Partition - '/v2/org/{org}/carbide/instance/type': + /v2/org/{org}/carbide/instance/type: parameters: - schema: type: string @@ -5010,7 +5639,9 @@ paths: value: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 name: x3.large - description: 'Part of X family, the X3 Large features increased compute power' + description: >- + Part of X family, the X3 Large features increased + compute power infrastructureProviderId: 5f2cc306-76e9-4fca-9186-950c9ef9a74e siteId: 72771e6a-6f5e-4de4-a5b9-1266c4197811 machineCapabilities: @@ -5023,17 +5654,22 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' deprecations: - queryParam: includeMachineAssociation replacedBy: includeMachineAssignment takeActionBy: '2023-07-26T00:00:00Z' - notice: '''includeMachineAssociation'' has been deprecated in favor of ''includeMachineAssignment''. Please take action immediately.' + notice: >- + 'includeMachineAssociation' has been deprecated in + favor of 'includeMachineAssignment'. Please take + action immediately. - attribute: displayName takeActionBy: '2024-10-30T00:00:00Z' - notice: '''displayName'' has been deprecated. Please take action immediately.' + notice: >- + 'displayName' has been deprecated. Please take + action immediately. created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' example-2: @@ -5045,29 +5681,35 @@ paths: siteId: 72771e6a-6f5e-4de4-a5b9-1266c4197811 machineCapabilities: - type: InfiniBand - name: 'Mellanox Technologies MT28908 Family [ConnectX-6]' + name: Mellanox Technologies MT28908 Family [ConnectX-6] vendor: Mellanox Technologies count: 2 machineInstanceTypes: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 - machineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + machineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g instanceTypeId: 41e36058-8403-4086-a9b8-39cb5bc9cb98 created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' deprecations: - queryParam: includeMachineAssociation replacedBy: includeMachineAssignment takeActionBy: '2023-07-26T00:00:00Z' - notice: '''includeMachineAssociation'' has been deprecated in favor of ''includeMachineAssignment''. Please take action immediately.' + notice: >- + 'includeMachineAssociation' has been deprecated in + favor of 'includeMachineAssignment'. Please take + action immediately. - attribute: displayName takeActionBy: '2024-10-30T00:00:00Z' - notice: '''displayName'' has been deprecated. Please take action immediately.' + notice: >- + 'displayName' has been deprecated. Please take + action immediately. created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' example-3: @@ -5079,47 +5721,61 @@ paths: siteId: 72771e6a-6f5e-4de4-a5b9-1266c4197811 machineCapabilities: - type: Network - name: MT42822 BlueField-2 integrated ConnectX-6 Dx network controller + name: >- + MT42822 BlueField-2 integrated ConnectX-6 Dx network + controller vendor: Mellanox Technologies count: 2 deviceType: DPU machineInstanceTypes: - id: 0327339b-f3b7-4de3-9468-7dc29f9f6914 - machineId: fm100dsg23d2f4tq4tt5m2hgib5pcldrm3gvefbduau7gj3itgc3iqg3lpg + machineId: >- + fm100dsg23d2f4tq4tt5m2hgib5pcldrm3gvefbduau7gj3itgc3iqg3lpg instanceTypeId: 771b066a-f2ff-4550-a65d-baef8551167d created: '2025-05-24T14:15:22Z' updated: '2025-05-24T14:15:22Z' status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2025-05-24T14:15:22Z' updated: '2025-05-24T14:15:22Z' deprecations: - queryParam: includeMachineAssociation replacedBy: includeMachineAssignment takeActionBy: '2023-07-26T00:00:00Z' - notice: '''includeMachineAssociation'' has been deprecated in favor of ''includeMachineAssignment''. Please take action immediately.' + notice: >- + 'includeMachineAssociation' has been deprecated in + favor of 'includeMachineAssignment'. Please take + action immediately. - attribute: displayName takeActionBy: '2024-10-30T00:00:00Z' - notice: '''displayName'' has been deprecated. Please take action immediately.' + notice: >- + 'displayName' has been deprecated. Please take + action immediately. created: '2025-05-24T14:15:22Z' updated: '2025-05-24T14:15:22Z' headers: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-instance-type - description: | + description: > Get all Instance Types for the org. - Provider and Tenant roles are inferred from the org's membership. User must have `FORGE_PROVIDER_ADMIN` or `FORGE_TENANT_ADMIN` role. - Results are returned from both Provider and Tenant perspectives when the org has both roles. + Provider and Tenant roles are inferred from the org's membership. User + must have `FORGE_PROVIDER_ADMIN` or `FORGE_TENANT_ADMIN` role. + + + Results are returned from both Provider and Tenant perspectives when the + org has both roles. parameters: - schema: type: string @@ -5150,7 +5806,9 @@ paths: type: string in: query name: query - description: 'Search for matches across all Sites. Input will be matched against name, display name, description, labels and status fields' + description: >- + Search for matches across all Sites. Input will be matched against + name, display name, description, labels and status fields - schema: type: string enum: @@ -5163,7 +5821,9 @@ paths: type: boolean in: query name: includeMachineAssignment - description: Include Machine assignments for each Instance Type. Can only be requested by Provider. + description: >- + Include Machine assignments for each Instance Type. Can only be + requested by Provider. - schema: type: boolean in: query @@ -5173,7 +5833,10 @@ paths: type: boolean in: query name: excludeUnallocated - description: Excludes InstanceType records that have no allocations from being returned in the result set. Currently can only be requested by Tenant. + description: >- + Excludes InstanceType records that have no allocations from being + returned in the result set. Currently can only be requested by + Tenant. - schema: type: integer example: 1 @@ -5221,7 +5884,9 @@ paths: value: id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 name: x3.large - description: 'Part of X family, the X3 Large features increased compute power' + description: >- + Part of X family, the X3 Large features increased compute + power infrastructureProviderId: 5f2cc306-76e9-4fca-9186-950c9ef9a74e siteId: 72771e6a-6f5e-4de4-a5b9-1266c4197811 labels: @@ -5241,27 +5906,34 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' deprecations: - queryParam: includeMachineAssociation replacedBy: includeMachineAssignment takeActionBy: '2023-07-26T00:00:00Z' - notice: '''includeMachineAssociation'' has been deprecated in favor of ''includeMachineAssignment''. Please take action immediately.' + notice: >- + 'includeMachineAssociation' has been deprecated in + favor of 'includeMachineAssignment'. Please take + action immediately. - attribute: displayName takeActionBy: '2024-10-30T00:00:00Z' - notice: '''displayName'' has been deprecated. Please take action immediately.' + notice: >- + 'displayName' has been deprecated. Please take action + immediately. created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' '400': $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: | + description: > Create an Instance Type for Infrastructure Provider. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. requestBody: content: application/json: @@ -5271,7 +5943,9 @@ paths: example-1: value: name: x3.large - description: 'Part of X family, the X3 Large features increased compute power' + description: >- + Part of X family, the X3 Large features increased compute + power siteId: 8d97fa69-9199-49ff-bcf3-168c62d3874e labels: region: portland @@ -5295,7 +5969,7 @@ paths: env: dev machineCapabilities: - type: InfiniBand - name: 'MT2910 Family [ConnectX-7]' + name: MT2910 Family [ConnectX-7] vendor: Mellanox Technologies count: 4 inactiveDevices: @@ -5303,7 +5977,7 @@ paths: - 3 tags: - Instance Type - '/v2/org/{org}/carbide/instance/type/{instanceTypeId}': + /v2/org/{org}/carbide/instance/type/{instanceTypeId}: parameters: - schema: type: string @@ -5334,7 +6008,9 @@ paths: value: id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 name: x3.large - description: 'Part of X family, the X3 Large features increased compute power' + description: >- + Part of X family, the X3 Large features increased compute + power infrastructureProviderId: 5f2cc306-76e9-4fca-9186-950c9ef9a74e siteId: 72771e6a-6f5e-4de4-a5b9-1266c4197811 labels: @@ -5357,34 +6033,47 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' deprecations: - queryParam: includeMachineAssociation replacedBy: includeMachineAssignment takeActionBy: '2023-07-26T00:00:00Z' - notice: '''includeMachineAssociation'' has been deprecated in favor of ''includeMachineAssignment''. Please take action immediately.' + notice: >- + 'includeMachineAssociation' has been deprecated in + favor of 'includeMachineAssignment'. Please take + action immediately. - attribute: displayName takeActionBy: '2024-10-30T00:00:00Z' - notice: '''displayName'' has been deprecated. Please take action immediately.' + notice: >- + 'displayName' has been deprecated. Please take action + immediately. created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' '403': $ref: '#/components/responses/ForbiddenError' operationId: get-instance-type - description: |- + description: >- Get an Instance Type by ID. - If the org has an Infrastructure Provider entity that owns the Instance Type, then the Instance Type detail is returned. User must have `FORGE_PROVIDER_ADMIN` role. - If the org has a Tenant entity and it has a Tenant Account with the Infrastructure Provider of the Instance Type, then the Instance Type detail is returned. User must have `FORGE_TENANT_ADMIN` role. + If the org has an Infrastructure Provider entity that owns the Instance + Type, then the Instance Type detail is returned. User must have + `FORGE_PROVIDER_ADMIN` role. + + + If the org has a Tenant entity and it has a Tenant Account with the + Infrastructure Provider of the Instance Type, then the Instance Type + detail is returned. User must have `FORGE_TENANT_ADMIN` role. parameters: - schema: type: boolean in: query name: includeMachineAssociation - description: Include Machine associations for each Instance Type. Can only be requested by Provider + description: >- + Include Machine associations for each Instance Type. Can only be + requested by Provider - schema: type: boolean in: query @@ -5406,10 +6095,12 @@ paths: description: Accepted '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Delete an Instance Type by ID. - Org must have an Infrastructure Provider entity that owns the Instance Type. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity that owns the Instance + Type. User must have `FORGE_PROVIDER_ADMIN` authorization role. tags: - Instance Type patch: @@ -5443,25 +6134,32 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' deprecations: - queryParam: includeMachineAssociation replacedBy: includeMachineAssignment takeActionBy: '2023-07-26T00:00:00Z' - notice: '''includeMachineAssociation'' has been deprecated in favor of ''includeMachineAssignment''. Please take action immediately.' + notice: >- + 'includeMachineAssociation' has been deprecated in + favor of 'includeMachineAssignment'. Please take + action immediately. - attribute: displayName takeActionBy: '2024-10-30T00:00:00Z' - notice: '''displayName'' has been deprecated. Please take action immediately.' + notice: >- + 'displayName' has been deprecated. Please take action + immediately. created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Update an Instance Type by ID. - Org must have an Infrastructure Provider entity that owns the Instance Type. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity that owns the Instance + Type. User must have `FORGE_PROVIDER_ADMIN` authorization role. requestBody: content: application/json: @@ -5484,7 +6182,7 @@ paths: description: '' tags: - Instance Type - '/v2/org/{org}/carbide/instance/type/{instanceTypeId}/machine': + /v2/org/{org}/carbide/instance/type/{instanceTypeId}/machine: parameters: - schema: type: string @@ -5516,12 +6214,14 @@ paths: example-1: value: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 - machineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + machineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g instanceTypeId: 41e36058-8403-4086-a9b8-39cb5bc9cb98 created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - id: f690ffcd-06b7-430c-9c2a-b9afd18d77c3 - machineId: fm100htrh18t1lrjg2pqagkh3sfigr9m65dejvkq168ako07sc0uibpp5q0 + machineId: >- + fm100htrh18t1lrjg2pqagkh3sfigr9m65dejvkq168ako07sc0uibpp5q0 instanceTypeId: 41e36058-8403-4086-a9b8-39cb5bc9cb98 created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' @@ -5529,15 +6229,20 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' operationId: get-instance-type-machine-association - description: |- + description: >- Get all Machines for a given Instance Type - Org must have an Infrastructure Provider entity that owns the Instance Type and the Machine. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity that owns the Instance + Type and the Machine. User must have `FORGE_PROVIDER_ADMIN` + authorization role. parameters: - schema: type: integer @@ -5581,17 +6286,20 @@ paths: example-1: value: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 - machineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + machineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g instanceTypeId: 41e36058-8403-4086-a9b8-39cb5bc9cb98 created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - id: f690ffcd-06b7-430c-9c2a-b9afd18d77c3 - machineId: fm100ht68sf2m52idrpslcjkpdj5r3tb3j5o0bkfubhoglbq47u18nknfog + machineId: >- + fm100ht68sf2m52idrpslcjkpdj5r3tb3j5o0bkfubhoglbq47u18nknfog instanceTypeId: 41e36058-8403-4086-a9b8-39cb5bc9cb98 created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - id: f690ffcd-06b7-430c-9c2a-b9afd18d77c3 - machineId: fm100htrh18t1lrjg2pqagkh3sfigr9m65dejvkq168ako07sc0uibpp5q0 + machineId: >- + fm100htrh18t1lrjg2pqagkh3sfigr9m65dejvkq168ako07sc0uibpp5q0 instanceTypeId: 41e36058-8403-4086-a9b8-39cb5bc9cb98 created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' @@ -5601,10 +6309,13 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Instance Type - description: |- + description: >- Associate a Machine to an Instance Type - Org must have an Infrastructure Provider entity that owns the Instance Type and the Machine. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity that owns the Instance + Type and the Machine. User must have `FORGE_PROVIDER_ADMIN` + authorization role. requestBody: content: application/json: @@ -5617,7 +6328,7 @@ paths: - 497f6eca-6276-4993-bfeb-53cbbbba6f08 - 59c8d465-69f1-447f-80f8-1bc85627a03b - 0a44ffc3-39ba-46c6-b483-be00a1e2cc27 - '/v2/org/{org}/carbide/instance/type/{instanceTypeId}/machine/{machineAssociationId}': + /v2/org/{org}/carbide/instance/type/{instanceTypeId}/machine/{machineAssociationId}: parameters: - schema: type: string @@ -5637,7 +6348,11 @@ paths: name: machineAssociationId in: path required: true - description: Can be ID of the Machine (`machineId`) or ID of Machine/Instance Type Association (`machineAssociationId`). Use of `machineAssociationId` is now deprecated and will no longer be accepted after July 9th, 2026 00:00 UTC. + description: >- + Can be ID of the Machine (`machineId`) or ID of Machine/Instance Type + Association (`machineAssociationId`). Use of `machineAssociationId` is + now deprecated and will no longer be accepted after July 9th, 2026 + 00:00 UTC. delete: summary: Delete a Machine/Instance Type association operationId: delete-instance-type-machine-association @@ -5646,15 +6361,22 @@ paths: description: Accepted '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Delete a Machine's association with an Instance Type. - `machineAssociationId` path parameter has been renamed to `machineId`. The path parameter will continue to accept both Machine ID and Machine/Instance Type ID until July 9th, 2026 00:00 UTC. After that time, Machine/Instance Type ID will no longer be accepted. - Org must have an Infrastructure Provider entity that owns the Instance Type and the Machine. User must have `FORGE_PROVIDER_ADMIN` authorization role. + `machineAssociationId` path parameter has been renamed to `machineId`. + The path parameter will continue to accept both Machine ID and + Machine/Instance Type ID until July 9th, 2026 00:00 UTC. After that + time, Machine/Instance Type ID will no longer be accepted. + + + Org must have an Infrastructure Provider entity that owns the Instance + Type and the Machine. User must have `FORGE_PROVIDER_ADMIN` + authorization role. tags: - Instance Type - '/v2/org/{org}/carbide/instance': + /v2/org/{org}/carbide/instance: parameters: - schema: type: string @@ -5686,7 +6408,8 @@ paths: siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 instanceTypeId: 41e36058-8403-4086-a9b8-39cb5bc9cb98 vpcId: 5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3 - machineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + machineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g operatingSystemId: eaeb86ee-c435-444e-9e01-8346f67f194b controllerInstanceId: 158fc2bc-f2fb-4e1f-a5a4-2211062d14df ipxeScript: null @@ -5696,7 +6419,7 @@ paths: region: portland env: staging isUpdatePending: false - networkSecurityGroupId: 'c602eb90-3039-11f0-997a-b38d4fc8389e,' + networkSecurityGroupId: c602eb90-3039-11f0-997a-b38d4fc8389e, networkSecurityGroupPropagationDetails: id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 detailedStatus: Partial @@ -5707,7 +6430,7 @@ paths: relatedInstanceIds: - 497f6eca-6276-4993-bfeb-53cbbbba6f08 networkSecurityGroupInherited: false - serialConsoleUrl: 'ssh://user@carbide.acme.com' + serialConsoleUrl: ssh://user@carbide.acme.com interfaces: - id: 64d2028c-ae87-4069-a624-66089d957ef9 instanceId: 497f6eca-6276-4993-bfeb-53cbbbba6f08 @@ -5726,7 +6449,7 @@ paths: - id: c518a0e8-3f49-4a1a-8935-a6d3dee6911e instanceId: 497f6eca-6276-4993-bfeb-53cbbbba6f08 partitionId: 05ef7e84-1d4e-4e4d-980d-38589479a0fe - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 0 isPhysical: true virtualFunctionId: null @@ -5778,7 +6501,8 @@ paths: status: Syncing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - tpmEkCertificate: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMxVENDQWJ5Z0F3SUJBZ0lVTEE1ZHFPK1E5OXZQM3VYRTRKcjBncVRtOW93d0RRWUpLb1pJaHZjTkFRRUwKQlFBd0xqRUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQW9NQ2s1MmFXUnBZU0JEYjNKNw== + tpmEkCertificate: >- + LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMxVENDQWJ5Z0F3SUJBZ0lVTEE1ZHFPK1E5OXZQM3VYRTRKcjBncVRtOW93d0RRWUpLb1pJaHZjTkFRRUwKQlFBd0xqRUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQW9NQ2s1MmFXUnBZU0JEYjNKNw== status: Ready statusHistory: - status: BootCompleted @@ -5789,7 +6513,10 @@ paths: - attribute: sshkeygroups replacedBy: sshKeyGroups takeActionBy: '2025-09-04T00:00:00Z' - notice: '''sshkeygroups'' is being deprecated in favor of ''sshKeyGroups''. Please take action prior to the specified date.' + notice: >- + 'sshkeygroups' is being deprecated in favor of + 'sshKeyGroups'. Please take action prior to the + specified date. created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' example-2: @@ -5802,7 +6529,8 @@ paths: siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 instanceTypeId: 41e36058-8403-4086-a9b8-39cb5bc9cb98 vpcId: 5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3 - machineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + machineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g operatingSystemId: eaeb86ee-c435-444e-9e01-8346f67f194b controllerInstanceId: 37804b21-0a00-4668-81cb-af9e1b07ad3e ipxeScript: null @@ -5823,7 +6551,7 @@ paths: region: portland env: staging isUpdatePending: false - serialConsoleUrl: 'ssh://user@carbide.acme.com' + serialConsoleUrl: ssh://user@carbide.acme.com interfaces: - id: 07cd865e-5512-4fe9-8063-8f4c8f442b1a instanceId: 37804b21-0a00-4668-81cb-af9e1b07ad3e @@ -5840,7 +6568,7 @@ paths: - id: c518a0e8-3f49-4a1a-8935-a6d3dee6911e instanceId: 497f6eca-6276-4993-bfeb-53cbbbba6f08 partitionId: 05ef7e84-1d4e-4e4d-980d-38589479a0fe - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 0 isPhysical: true virtualFunctionId: null @@ -5880,20 +6608,26 @@ paths: - attribute: sshkeygroups replacedBy: sshKeyGroups takeActionBy: '2025-09-04T00:00:00Z' - notice: '''sshkeygroups'' is being deprecated in favor of ''sshKeyGroups'' and will be removed on September 9th, 2025. Please update your usage accordingly.' + notice: >- + 'sshkeygroups' is being deprecated in favor of + 'sshKeyGroups' and will be removed on September 9th, + 2025. Please update your usage accordingly. created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' example-3: value: - id: bba44e11-facc-4d7f-a2b5-ffdca3935b8b name: spark-monitor-vpc-prefix-multi-dpu - description: Node for monitoring Spark VPC prefix region with Multi DPU + description: >- + Node for monitoring Spark VPC prefix region with Multi + DPU tenantId: f97df110-f4de-492e-8849-4a6af68026b0 infrastructureProviderId: e94bcfda-f6cb-42e4-80ec-516811e5abbf siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 instanceTypeId: 9fda8e2b-9656-4f96-9d79-14d03951e2d2 vpcId: 745f757f-894b-45ef-be63-b1044e76a87d - machineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + machineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g operatingSystemId: eaeb86ee-c435-444e-9e01-8346f67f194b controllerInstanceId: 8d76c56e-4a1c-4862-bf1c-8c2b794f3315 ipxeScript: null @@ -5914,16 +6648,18 @@ paths: region: portland env: staging isUpdatePending: false - serialConsoleUrl: 'ssh://user@carbide.acme.com' + serialConsoleUrl: ssh://user@carbide.acme.com interfaces: - id: fa84f327-cad4-458b-94b7-c320cdf48d4d instanceId: bba44e11-facc-4d7f-a2b5-ffdca3935b8b vpcPrefixId: 915443b6-d164-48d4-89dd-041968e1f9d7 isPhysical: true - device: MT42822 BlueField-2 integrated ConnectX-6 Dx network controller + device: >- + MT42822 BlueField-2 integrated ConnectX-6 Dx network + controller deviceInstance: 0 virtualFunctionId: null - macAddress: 'A0:88:C2:0C:91:B8' + macAddress: A0:88:C2:0C:91:B8 ipAddresses: - 10.217.98.143 status: Ready @@ -5933,10 +6669,12 @@ paths: instanceId: bba44e11-facc-4d7f-a2b5-ffdca3935b8b vpcPrefixId: 56944877-3bc0-48c9-8290-21f9e0e31eca isPhysical: true - device: MT42822 BlueField-2 integrated ConnectX-6 Dx network controller + device: >- + MT42822 BlueField-2 integrated ConnectX-6 Dx network + controller deviceInstance: 1 virtualFunctionId: null - macAddress: 'A0:88:C2:0C:91:20' + macAddress: A0:88:C2:0C:91:20 ipAddresses: - 10.217.98.149 status: Ready @@ -5964,22 +6702,29 @@ paths: - attribute: sshkeygroups replacedBy: sshKeyGroups takeActionBy: '2025-09-04T00:00:00Z' - notice: '''sshkeygroups'' is being deprecated in favor of ''sshKeyGroups'' and will be removed on September 9th, 2025. Please update your usage accordingly.' + notice: >- + 'sshkeygroups' is being deprecated in favor of + 'sshKeyGroups' and will be removed on September 9th, + 2025. Please update your usage accordingly. created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' headers: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-instance - description: | + description: > Get all Instances for Tenant. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. parameters: - schema: type: string @@ -5992,30 +6737,40 @@ paths: format: uuid in: query name: siteId - description: Filter by Site ID. Can be specified multiple times to filter on more than one site. + description: >- + Filter by Site ID. Can be specified multiple times to filter on more + than one site. - schema: type: string format: uuid in: query name: vpcId - description: Filter by VPC ID. Can be specified multiple times to filter on more than one VPC. + description: >- + Filter by VPC ID. Can be specified multiple times to filter on more + than one VPC. - schema: type: string format: uuid in: query name: instanceTypeId - description: Filter by instance type ID. Can be specified multiple times to filter on more than one instance type. + description: >- + Filter by instance type ID. Can be specified multiple times to + filter on more than one instance type. - schema: type: string format: uuid in: query name: operatingSystemId - description: Filter by operating system ID. Can be specified multiple times to filter on more than one operating system. + description: >- + Filter by operating system ID. Can be specified multiple times to + filter on more than one operating system. - schema: type: string in: query name: machineId - description: Filter by machine ID. Can be specified multiple times to filter on more than one machine. + description: >- + Filter by machine ID. Can be specified multiple times to filter on + more than one machine. - schema: type: string in: query @@ -6025,17 +6780,23 @@ paths: type: string in: query name: status - description: Filter Instances by Status. Can be specified multiple times to filter on more than one status. + description: >- + Filter Instances by Status. Can be specified multiple times to + filter on more than one status. - schema: type: string in: query name: ipAddress - description: Filter by IP address. Can be specified multiple times to filter on more than one IP address. + description: >- + Filter by IP address. Can be specified multiple times to filter on + more than one IP address. - schema: type: string in: query name: query - description: 'Search for matches across all Sites. Input will be matched against name, description, status, and labels fields' + description: >- + Search for matches across all Sites. Input will be matched against + name, description, status, and labels fields - schema: type: string enum: @@ -6093,7 +6854,9 @@ paths: type: string in: query name: networkSecurityGroupId - description: Filter by NetworkSecurityGroup ID. Can be specified multiple times to filter on more than one Network Security Group. + description: >- + Filter by NetworkSecurityGroup ID. Can be specified multiple times + to filter on more than one Network Security Group. post: summary: Create an Instance operationId: create-instance @@ -6115,14 +6878,22 @@ paths: siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 instanceTypeId: 41e36058-8403-4086-a9b8-39cb5bc9cb98 vpcId: 5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3 - machineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + machineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g operatingSystemId: eaeb86ee-c435-444e-9e01-8346f67f194b controllerInstanceId: null - ipxeScript: |- + ipxeScript: >- #!ipxe - kernel http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux initrd=initrd.gz - initrd http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + + kernel + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux + initrd=initrd.gz + + initrd + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + boot || imgfree + shell alwaysBootWithCustomIpxe: true userData: |- @@ -6140,7 +6911,7 @@ paths: region: portland env: staging isUpdatePending: false - serialConsoleUrl: 'ssh://user@carbide.acme.com' + serialConsoleUrl: ssh://user@carbide.acme.com interfaces: - id: 64d2028c-ae87-4069-a624-66089d957ef9 instanceId: 497f6eca-6276-4993-bfeb-53cbbbba6f08 @@ -6156,7 +6927,7 @@ paths: - id: c518a0e8-3f49-4a1a-8935-a6d3dee6911e instanceId: 497f6eca-6276-4993-bfeb-53cbbbba6f08 partitionId: 05ef7e84-1d4e-4e4d-980d-38589479a0fe - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 0 isPhysical: true virtualFunctionId: null @@ -6187,14 +6958,17 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' deprecations: - attribute: sshkeygroups replacedBy: sshKeyGroups takeActionBy: '2025-09-04T00:00:00Z' - notice: '''sshkeygroups'' is being deprecated in favor of ''sshKeyGroups''. Please take action prior to the specified date.' + notice: >- + 'sshkeygroups' is being deprecated in favor of + 'sshKeyGroups'. Please take action prior to the + specified date. created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' With DPU Extension Service Deployments: @@ -6207,14 +6981,15 @@ paths: siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 instanceTypeId: 41e36058-8403-4086-a9b8-39cb5bc9cb98 vpcId: 5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3 - machineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + machineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g operatingSystemId: eaeb86ee-c435-444e-9e01-8346f67f194b controllerInstanceId: null labels: region: portland env: staging isUpdatePending: false - serialConsoleUrl: 'ssh://user@carbide.acme.com' + serialConsoleUrl: ssh://user@carbide.acme.com interfaces: - id: 64d2028c-ae87-4069-a624-66089d957ef9 instanceId: 497f6eca-6276-4993-bfeb-53cbbbba6f08 @@ -6251,7 +7026,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -6260,10 +7035,12 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: | + description: > Create an Instance for Tenant. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. requestBody: content: application/json: @@ -6278,11 +7055,18 @@ paths: instanceTypeId: 41e36058-8403-4086-a9b8-39cb5bc9cb98 vpcId: 5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3 operatingSystemId: eaeb86ee-c435-444e-9e01-8346f67f194b - ipxeScript: |- + ipxeScript: >- #!ipxe - kernel http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux initrd=initrd.gz - initrd http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + + kernel + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux + initrd=initrd.gz + + initrd + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + boot || imgfree + shell alwaysBootWithCustomIpxe: true userData: |- @@ -6304,7 +7088,7 @@ paths: isPhysical: true infinibandInterfaces: - partitionId: 4f4decba-7d7f-46b9-9e5f-e5d71c2e0666 - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 0 isPhysical: true virtualFunctionId: null @@ -6349,11 +7133,15 @@ paths: interfaces: - vpcPrefixId: 8c7422d7-abf5-41ae-8b6d-9d62442a8b31 isPhysical: true - device: MT43244 BlueField-3 integrated ConnectX-7 network controller + device: >- + MT43244 BlueField-3 integrated ConnectX-7 network + controller deviceInstance: 0 - vpcPrefixId: 8988dbd3-f038-4338-b961-8e5cbf89a77e isPhysical: true - device: MT43244 BlueField-3 integrated ConnectX-7 network controller + device: >- + MT43244 BlueField-3 integrated ConnectX-7 network + controller deviceInstance: 1 sshKeyGroupIds: - a7bf2f9c-12f0-4673-be47-12be6d9e16c8 @@ -6371,11 +7159,15 @@ paths: interfaces: - vpcPrefixId: 8c7422d7-abf5-41ae-8b6d-9d62442a8b31 isPhysical: true - device: MT43244 BlueField-3 integrated ConnectX-7 network controller + device: >- + MT43244 BlueField-3 integrated ConnectX-7 network + controller deviceInstance: 0 - vpcPrefixId: 8988dbd3-f038-4338-b961-8e5cbf89a77e isPhysical: true - device: MT43244 BlueField-3 integrated ConnectX-7 network controller + device: >- + MT43244 BlueField-3 integrated ConnectX-7 network + controller deviceInstance: 1 dpuExtensionServiceDeployments: - dpuExtensionServiceId: 3bddb7b4-0963-4278-b311-c212dc758357 @@ -6386,7 +7178,7 @@ paths: - a7bf2f9c-12f0-4673-be47-12be6d9e16c8 tags: - Instance - '/v2/org/{org}/carbide/instance/batch': + /v2/org/{org}/carbide/instance/batch: parameters: - schema: type: string @@ -6417,7 +7209,8 @@ paths: siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 instanceTypeId: 41e36058-8403-4086-a9b8-39cb5bc9cb98 vpcId: 5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3 - machineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + machineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g operatingSystemId: eaeb86ee-c435-444e-9e01-8346f67f194b controllerInstanceId: null status: Pending @@ -6431,7 +7224,8 @@ paths: siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 instanceTypeId: 41e36058-8403-4086-a9b8-39cb5bc9cb98 vpcId: 5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3 - machineId: gn200iu5w5ndf3rtukol9081ook4jf7fdfl5nuok38qfb5lsf6hub50kh1h + machineId: >- + gn200iu5w5ndf3rtukol9081ook4jf7fdfl5nuok38qfb5lsf6hub50kh1h operatingSystemId: eaeb86ee-c435-444e-9e01-8346f67f194b controllerInstanceId: null status: Pending @@ -6441,18 +7235,32 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: | - Batch create multiple Instances for Tenant with NVLink domain-aware machine allocation. + description: > + Batch create multiple Instances for Tenant with NVLink domain-aware + machine allocation. + + + This endpoint creates multiple instances in a single atomic transaction. + All instances share the same configuration (interfaces, OS, SSH keys, + etc.) but are assigned different machines. - This endpoint creates multiple instances in a single atomic transaction. All instances share the same configuration (interfaces, OS, SSH keys, etc.) but are assigned different machines. - When `topologyOptimized` is true (default), all instances must be allocated on machines within the same NVLink domain. If insufficient machines are available in a single NVLink domain, the request will fail. + When `topologyOptimized` is true (default), all instances must be + allocated on machines within the same NVLink domain. If insufficient + machines are available in a single NVLink domain, the request will fail. - When `topologyOptimized` is false, instances can be spread across different NVLink domains. - Instance names are automatically generated using the `namePrefix` with a random 6-character suffix (e.g., "worker" becomes "worker-abc123", "worker-def456"). + When `topologyOptimized` is false, instances can be spread across + different NVLink domains. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Instance names are automatically generated using the `namePrefix` with a + random 6-character suffix (e.g., "worker" becomes "worker-abc123", + "worker-def456"). + + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. requestBody: content: application/json: @@ -6474,7 +7282,7 @@ paths: isPhysical: true infinibandInterfaces: - partitionId: 4f4decba-7d7f-46b9-9e5f-e5d71c2e0666 - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 0 isPhysical: true nvLinkInterfaces: @@ -6504,7 +7312,7 @@ paths: - a7bf2f9c-12f0-4673-be47-12be6d9e16c8 tags: - Instance - '/v2/org/{org}/carbide/instance/{instanceId}': + /v2/org/{org}/carbide/instance/{instanceId}: parameters: - schema: type: string @@ -6541,7 +7349,8 @@ paths: siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 instanceTypeId: 41e36058-8403-4086-a9b8-39cb5bc9cb98 vpcId: 5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3 - machineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + machineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g operatingSystemId: eaeb86ee-c435-444e-9e01-8346f67f194b controllerInstanceId: null ipxeScript: null @@ -6562,7 +7371,7 @@ paths: region: portland env: staging isUpdatePending: false - serialConsoleUrl: 'ssh://user@carbide.acme.com' + serialConsoleUrl: ssh://user@carbide.acme.com interfaces: - id: 64d2028c-ae87-4069-a624-66089d957ef9 instanceId: 497f6eca-6276-4993-bfeb-53cbbbba6f08 @@ -6579,7 +7388,7 @@ paths: - id: c518a0e8-3f49-4a1a-8935-a6d3dee6911e instanceId: 497f6eca-6276-4993-bfeb-53cbbbba6f08 partitionId: 4f4decba-7d7f-46b9-9e5f-e5d71c2e0666 - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 0 isPhysical: true virtualFunctionId: null @@ -6642,27 +7451,33 @@ paths: status: Syncing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - tpmEkCertificate: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMxVENDQWJ5Z0F3SUJBZ0lVTEE1ZHFPK1E5OXZQM3VYRTRKcjBncVRtOW93d0RRWUpLb1pJaHZjTkFRRUwKQlFBd0xqRUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQW9NQ2s1MmFXUnBZU0JEYjNKNw== + tpmEkCertificate: >- + LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMxVENDQWJ5Z0F3SUJBZ0lVTEE1ZHFPK1E5OXZQM3VYRTRKcjBncVRtOW93d0RRWUpLb1pJaHZjTkFRRUwKQlFBd0xqRUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQW9NQ2s1MmFXUnBZU0JEYjNKNw== status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' deprecations: - attribute: sshkeygroups replacedBy: sshKeyGroups takeActionBy: '2025-09-04T00:00:00Z' - notice: '''sshkeygroups'' is being deprecated in favor of ''sshKeyGroups''. Please take action prior to the specified date.' + notice: >- + 'sshkeygroups' is being deprecated in favor of + 'sshKeyGroups'. Please take action prior to the + specified date. created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' '403': $ref: '#/components/responses/ForbiddenError' operationId: get-instance - description: | + description: > Get an Instance by ID - Org must have a Tenant entity. Instance must belong to Tenant. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. Instance must belong to Tenant. User must + have `FORGE_TENANT_ADMIN` authorization role. parameters: - schema: type: string @@ -6684,10 +7499,12 @@ paths: responses: '202': description: Accepted - description: |- + description: >- Delete an Instance by ID - Org must have a Tenant entity. Instance must belong to Tenant. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. Instance must belong to Tenant. User must + have `FORGE_TENANT_ADMIN` authorization role. tags: - Instance requestBody: @@ -6702,7 +7519,9 @@ paths: category: Network summary: Machine has DPU connectivity error isRepairTenant: false - description: Optional request data to report health issues with the underlying Machine + description: >- + Optional request data to report health issues with the underlying + Machine patch: summary: Update Instance operationId: update-instance @@ -6724,7 +7543,8 @@ paths: siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 instanceTypeId: 41e36058-8403-4086-a9b8-39cb5bc9cb98 vpcId: 5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3 - machineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + machineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g operatingSystemId: eaeb86ee-c435-444e-9e01-8346f67f194b controllerInstanceId: 158fc2bc-f2fb-4e1f-a5a4-2211062d14df ipxeScript: null @@ -6734,7 +7554,7 @@ paths: region: portland env: staging isUpdatePending: false - serialConsoleUrl: 'ssh://user@carbide.acme.com' + serialConsoleUrl: ssh://user@carbide.acme.com interfaces: - id: 64d2028c-ae87-4069-a624-66089d957ef9 instanceId: 497f6eca-6276-4993-bfeb-53cbbbba6f08 @@ -6751,7 +7571,7 @@ paths: - id: c518a0e8-3f49-4a1a-8935-a6d3dee6911e instanceId: 497f6eca-6276-4993-bfeb-53cbbbba6f08 partitionId: 550e8400-e29b-41d4-a716-446655440000 - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 0 isPhysical: true virtualFunctionId: null @@ -6762,7 +7582,7 @@ paths: - id: 3cc0206e-8ac9-4572-8f72-e1dd124c4351 instanceId: 497f6eca-6276-4993-bfeb-53cbbbba6f08 partitionId: 6ba7b810-9dad-11d1-80b4-00c04fd430c8 - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 1 isPhysical: true virtualFunctionId: null @@ -6774,7 +7594,7 @@ paths: instanceId: 497f6eca-6276-4993-bfeb-53cbbbba6f08 siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 partitionId: 8b05d5c3-8de4-48c8-8d1c-399a8abc3ab8 - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 2 isPhysical: true virtualFunctionId: null @@ -6815,11 +7635,12 @@ paths: status: Syncing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - tpmEkCertificate: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMxVENDQWJ5Z0F3SUJBZ0lVTEE1ZHFPK1E5OXZQM3VYRTRKcjBncVRtOW93d0RRWUpLb1pJaHZjTkFRRUwKQlFBd0xqRUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQW9NQ2s1MmFXUnBZU0JEYjNKNw== + tpmEkCertificate: >- + LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMxVENDQWJ5Z0F3SUJBZ0lVTEE1ZHFPK1E5OXZQM3VYRTRKcjBncVRtOW93d0RRWUpLb1pJaHZjTkFRRUwKQlFBd0xqRUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQW9NQ2s1MmFXUnBZU0JEYjNKNw== status: Rebooting statusHistory: - status: Rebooting - message: 'Reboot request received, processing' + message: Reboot request received, processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - status: Provisioning @@ -6827,24 +7648,29 @@ paths: created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' deprecations: - attribute: sshkeygroups replacedBy: sshKeyGroups takeActionBy: '2025-09-04T00:00:00Z' - notice: '''sshkeygroups'' is being deprecated in favor of ''sshKeyGroups''. Please take action prior to the specified date.' + notice: >- + 'sshkeygroups' is being deprecated in favor of + 'sshKeyGroups'. Please take action prior to the + specified date. created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' '400': $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Update an Instance by ID - Org must have a Tenant entity. Instance must belong to Tenant. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. Instance must belong to Tenant. User must + have `FORGE_TENANT_ADMIN` authorization role. requestBody: content: application/json: @@ -6865,31 +7691,37 @@ paths: env: staging interfaces: - vpcPrefixId: 1f492faa-2963-4f21-aab5-9f00b2e40119 - device: MT42822 BlueField-2 integrated ConnectX-6 Dx network controller + device: >- + MT42822 BlueField-2 integrated ConnectX-6 Dx network + controller deviceInstance: 0 virtualFunctionId: null isPhysical: true - vpcPrefixId: 1f3677dd-5794-4e57-b9b0-aebaf49b84fe - device: MT42822 BlueField-2 integrated ConnectX-6 Dx network controller + device: >- + MT42822 BlueField-2 integrated ConnectX-6 Dx network + controller deviceInstance: 0 virtualFunctionId: 1 isPhysical: false - vpcPrefixId: 29e6f51b-145c-4f89-8c26-accaa8328398 - device: MT42822 BlueField-2 integrated ConnectX-6 Dx network controller + device: >- + MT42822 BlueField-2 integrated ConnectX-6 Dx network + controller deviceInstance: 0 virtualFunctionId: 2 isPhysical: false infinibandInterfaces: - partitionId: 550e8400-e29b-41d4-a716-446655440000 - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 0 isPhysical: true - partitionId: 6ba7b810-9dad-11d1-80b4-00c04fd430c8 - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 1 isPhysical: false - partitionId: 8b05d5c3-8de4-48c8-8d1c-399a8abc3ab8 - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 2 isPhysical: false nvLinkInterfaces: @@ -6909,7 +7741,7 @@ paths: description: '' tags: - Instance - '/v2/org/{org}/carbide/instance/{instanceId}/status-history': + /v2/org/{org}/carbide/instance/{instanceId}/status-history: parameters: - schema: type: string @@ -6940,7 +7772,7 @@ paths: Example 1: value: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' headers: @@ -6951,10 +7783,12 @@ paths: '403': $ref: '#/components/responses/ForbiddenError' operationId: get-instance-status-history - description: | + description: > Get Instance status history - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. parameters: - schema: type: integer @@ -6971,7 +7805,7 @@ paths: in: query name: orderBy description: Ordering for pagination query - '/v2/org/{org}/carbide/instance/{instanceId}/interface': + /v2/org/{org}/carbide/instance/{instanceId}/interface: parameters: - schema: type: string @@ -7027,15 +7861,19 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-interface - description: |- + description: >- Get all Interfaces for an Instance - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. parameters: - schema: type: string @@ -7078,7 +7916,7 @@ paths: in: query name: orderBy description: Ordering for pagination query - '/v2/org/{org}/carbide/instance/{instanceId}/infiniband-interface': + /v2/org/{org}/carbide/instance/{instanceId}/infiniband-interface: parameters: - schema: type: string @@ -7111,7 +7949,7 @@ paths: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 instanceId: 64d2028c-ae87-4069-a624-66089d957ef9 partitionId: 05ef7e84-1d4e-4e4d-980d-38589479a0fe - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 0 isPhysical: true virtualFunctionId: null @@ -7122,7 +7960,7 @@ paths: - id: c518a0e8-3f49-4a1a-8935-a6d3dee6911e instanceId: 64d2028c-ae87-4069-a624-66089d957ef9 partitionId: 6ba7b810-9dad-11d1-80b4-00c04fd430c8 - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 1 isPhysical: false virtualFunctionId: 1 @@ -7134,15 +7972,19 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-instance-infiniband-interface - description: |- + description: >- Get all InfiniBand Interfaces for an Instance - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. parameters: - schema: type: string @@ -7185,7 +8027,7 @@ paths: in: query name: orderBy description: Ordering for pagination query - '/v2/org/{org}/carbide/instance/{instanceId}/nvlink-interface': + /v2/org/{org}/carbide/instance/{instanceId}/nvlink-interface: parameters: - schema: type: string @@ -7237,21 +8079,27 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-instance-nvlink-interface - description: |- + description: >- Get all NVLink Interfaces for an Instance - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. parameters: - schema: type: string in: query name: status - description: Filter NVLink Interfaces by Status. Can be specified multiple times to filter on more than one status. + description: >- + Filter NVLink Interfaces by Status. Can be specified multiple times + to filter on more than one status. - schema: type: string enum: @@ -7288,7 +8136,7 @@ paths: in: query name: orderBy description: Ordering for pagination query - '/v2/org/{org}/carbide/infiniband-interface': + /v2/org/{org}/carbide/infiniband-interface: parameters: - schema: type: string @@ -7301,7 +8149,6 @@ paths: tags: - InfiniBand Partition responses: - '200': description: OK content: @@ -7316,7 +8163,7 @@ paths: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 instanceId: 64d2028c-ae87-4069-a624-66089d957ef9 partitionId: 05ef7e84-1d4e-4e4d-980d-38589479a0fe - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 0 isPhysical: true virtualFunctionId: null @@ -7328,36 +8175,48 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-infiniband-interface - description: |- + description: >- Get all InfiniBand Interfaces - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. parameters: - schema: type: string in: query name: siteId - description: Filter InfiniBand Interfaces by Site ID. Can be specified multiple times to filter on more than one ID. + description: >- + Filter InfiniBand Interfaces by Site ID. Can be specified multiple + times to filter on more than one ID. - schema: type: string in: query name: instanceId - description: Filter InfiniBand Interfaces by Instance ID. Can be specified multiple times to filter on more than one ID. + description: >- + Filter InfiniBand Interfaces by Instance ID. Can be specified + multiple times to filter on more than one ID. - schema: type: string in: query name: infinibandPartitionId - description: Filter InfiniBand Interfaces by InfiniBand Partition ID. Can be specified multiple times to filter on more than one ID. + description: >- + Filter InfiniBand Interfaces by InfiniBand Partition ID. Can be + specified multiple times to filter on more than one ID. - schema: type: string in: query name: status - description: Filter InfiniBand Interfaces by Status. Can be specified multiple times to filter on more than one status. + description: >- + Filter InfiniBand Interfaces by Status. Can be specified multiple + times to filter on more than one status. - schema: type: string enum: @@ -7395,7 +8254,7 @@ paths: in: query name: orderBy description: Ordering for pagination query - '/v2/org/{org}/carbide/nvlink-interface': + /v2/org/{org}/carbide/nvlink-interface: parameters: - schema: type: string @@ -7432,41 +8291,55 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-nvlink-interface - description: |- + description: >- Get all NVLink Interfaces - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` NGC role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` NGC + role. parameters: - schema: type: string in: query name: status - description: Filter NVLink Interfaces by Status. Can be specified multiple times to filter on more than one status. + description: >- + Filter NVLink Interfaces by Status. Can be specified multiple times + to filter on more than one status. - schema: type: string in: query name: siteId - description: Filter NVLink Interfaces by Site ID. Can be specified multiple times to filter on more than one ID. + description: >- + Filter NVLink Interfaces by Site ID. Can be specified multiple + times to filter on more than one ID. - schema: type: string in: query name: instanceId - description: Filter NVLink Interfaces by Instance ID. Can be specified multiple times to filter on more than one ID. + description: >- + Filter NVLink Interfaces by Instance ID. Can be specified multiple + times to filter on more than one ID. - schema: type: string in: query name: nvLinkLogicalPartitionId - description: Filter NVLink Interfaces by NVLink Logical Partition ID. Can be specified multiple times to filter on more than one ID. + description: >- + Filter NVLink Interfaces by NVLink Logical Partition ID. Can be + specified multiple times to filter on more than one ID. - schema: type: string in: query name: nvLinkDomainId - description: Filter NVLink Interfaces by NVLink Domain ID. Can be specified multiple times to filter on more than one ID. + description: >- + Filter NVLink Interfaces by NVLink Domain ID. Can be specified + multiple times to filter on more than one ID. - schema: type: string enum: @@ -7503,7 +8376,7 @@ paths: in: query name: orderBy description: Ordering for pagination query - '/v2/org/{org}/carbide/operating-system': + /v2/org/{org}/carbide/operating-system: parameters: - schema: type: string @@ -7533,8 +8406,10 @@ paths: infrastructureProviderId: null tenantId: f97df110-f4de-492e-8849-4a6af68026b0 type: Image - imageUrl: 'https://saimei.ftp.acc.umu.se/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2' - imageSha: 2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae + imageUrl: >- + https://saimei.ftp.acc.umu.se/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2 + imageSha: >- + 2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae imageAuthType: Bearer imageAuthToken: acbd18db4cc2f85cedef654fccc4a4d8 imageDisk: /dev/sda @@ -7584,7 +8459,7 @@ paths: status: Syncing statusHistory: - status: Syncing - message: 'received Operating System creation request, syncing' + message: received Operating System creation request, syncing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -7597,10 +8472,16 @@ paths: infrastructureProviderId: null tenantId: f97df110-f4de-492e-8849-4a6af68026b0 type: iPXE - ipxeScript: |- + ipxeScript: >- #!ipxe - kernel http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux initrd=initrd.gz - initrd http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + + kernel + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux + initrd=initrd.gz + + initrd + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + boot || imgfree shell userData: |- @@ -7629,7 +8510,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -7638,23 +8519,34 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-operating-system - description: |- + description: >- Get an Operating System by ID - If the Operating System has `infrastructureProviderId` set, then org must have an Infrastructure Provider entity and its ID should match the Operating System Infrastructure Provider ID. User must have `FORGE_PROVIDER_ADMIN` authorization role. - If the Operating System has `tenantId` set, then org must have a Tenant entity and its ID should match the Operating System Tenant ID. User must have `FORGE_TENANT_ADMIN` role. + If the Operating System has `infrastructureProviderId` set, then org + must have an Infrastructure Provider entity and its ID should match the + Operating System Infrastructure Provider ID. User must have + `FORGE_PROVIDER_ADMIN` authorization role. + + + If the Operating System has `tenantId` set, then org must have a Tenant + entity and its ID should match the Operating System Tenant ID. User must + have `FORGE_TENANT_ADMIN` role. parameters: - schema: type: string in: query name: siteId - description: Filter Operating Systems by Site ID. Can be specified multiple times to filter on more than one ID. + description: >- + Filter Operating Systems by Site ID. Can be specified multiple + times to filter on more than one ID. - schema: type: string enum: @@ -7667,12 +8559,16 @@ paths: type: string in: query name: status - description: Filter Operating Systems by Status. Can be specified multiple times to filter on more than one status. + description: >- + Filter Operating Systems by Status. Can be specified multiple times + to filter on more than one status. - schema: type: string in: query name: query - description: 'Provide query to search for matches. Input will be matched against name, description and status fields' + description: >- + Provide query to search for matches. Input will be matched against + name, description and status fields - schema: type: string enum: @@ -7730,10 +8626,16 @@ paths: infrastructureProviderId: null tenantId: f97df110-f4de-492e-8849-4a6af68026b0 type: iPXE - ipxeScript: |- + ipxeScript: >- #!ipxe - kernel http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux initrd=initrd.gz - initrd http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + + kernel + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux + initrd=initrd.gz + + initrd + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + boot || imgfree shell userData: |- @@ -7763,7 +8665,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -7772,14 +8674,23 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Create an Operating System for the org. - Either `infrastructureProviderId` or `tenantId` must be provided in request data. Both cannot be provided at the same time. - If `infrastructureProviderId` is provided in request data, then org must have an Infrastructure Provider entity and its ID should match the query param value. User must have `FORGE_PROVIDER_ADMIN` role. + Either `infrastructureProviderId` or `tenantId` must be provided in + request data. Both cannot be provided at the same time. + + + If `infrastructureProviderId` is provided in request data, then org must + have an Infrastructure Provider entity and its ID should match the query + param value. User must have `FORGE_PROVIDER_ADMIN` role. + + + If `tenantId` is provided in request data, then org must have a Tenant + entity and its ID should match the query param value. User must have + `FORGE_TENANT_ADMIN` role. - If `tenantId` is provided in request data, then org must have a Tenant entity and its ID should match the query param value. User must have `FORGE_TENANT_ADMIN` role. Only Tenants are allowed to create Operating System for MVP. requestBody: @@ -7793,10 +8704,16 @@ paths: name: ubuntu-official-22.04 description: Official Ubuntu 22.04 tenantId: f97df110-f4de-492e-8849-4a6af68026b0 - ipxeScript: |- + ipxeScript: >- #!ipxe - kernel http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux initrd=initrd.gz - initrd http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + + kernel + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux + initrd=initrd.gz + + initrd + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + boot || imgfree shell userData: |- @@ -7820,8 +8737,10 @@ paths: tenantId: f97df110-f4de-492e-8849-4a6af68026b0 siteIds: - 497f6eca-6276-4993-bfeb-53cbbbba6f08 - imageUrl: 'https://saimei.ftp.acc.umu.se/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2' - imageSha: 2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae + imageUrl: >- + https://saimei.ftp.acc.umu.se/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2 + imageSha: >- + 2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae imageAuthType: Bearer imageAuthToken: acbd18db4cc2f85cedef654fccc4a4d8 imageDisk: /dev/sda @@ -7833,7 +8752,7 @@ paths: allowOverride: false tags: - Operating System - '/v2/org/{org}/carbide/operating-system/{operatingSystemId}': + /v2/org/{org}/carbide/operating-system/{operatingSystemId}: parameters: - schema: type: string @@ -7867,8 +8786,10 @@ paths: infrastructureProviderId: null tenantId: f97df110-f4de-492e-8849-4a6af68026b0 type: Image - imageUrl: 'https://saimei.ftp.acc.umu.se/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2' - imageSha: 2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae + imageUrl: >- + https://saimei.ftp.acc.umu.se/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2 + imageSha: >- + 2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae imageAuthType: Bearer imageAuthToken: acbd18db4cc2f85cedef654fccc4a4d8 imageDisk: /dev/sda @@ -7919,7 +8840,7 @@ paths: status: Syncing statusHistory: - status: Syncing - message: 'received Operating System creation request, syncing' + message: received Operating System creation request, syncing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -7932,10 +8853,16 @@ paths: infrastructureProviderId: null tenantId: f97df110-f4de-492e-8849-4a6af68026b0 type: iPXE - ipxeScript: |- + ipxeScript: >- #!ipxe - kernel http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux initrd=initrd.gz - initrd http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + + kernel + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux + initrd=initrd.gz + + initrd + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + boot || imgfree shell userData: |- @@ -7965,7 +8892,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -7973,12 +8900,19 @@ paths: '403': $ref: '#/components/responses/ForbiddenError' operationId: get-operating-system - description: |- + description: >- Get an Operating System by ID - If the Operating System has `infrastructureProviderId` set, then org must have an Infrastructure Provider entity and its ID should match the Operating System Infrastructure Provider ID. User must have `FORGE_PROVIDER_ADMIN` authorization role. - If the Operating System has `tenantId` set, then org must have a Tenant entity and its ID should match the Operating System Tenant ID. User must have `FORGE_TENANT_ADMIN` role. + If the Operating System has `infrastructureProviderId` set, then org + must have an Infrastructure Provider entity and its ID should match the + Operating System Infrastructure Provider ID. User must have + `FORGE_PROVIDER_ADMIN` authorization role. + + + If the Operating System has `tenantId` set, then org must have a Tenant + entity and its ID should match the Operating System Tenant ID. User must + have `FORGE_TENANT_ADMIN` role. parameters: - schema: type: string @@ -7996,12 +8930,19 @@ paths: description: Accepted '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Delete an Operating System by ID - If the Operating System has `infrastructureProviderId` set, then org must have an Infrastructure Provider entity and its ID should match the Operating System Infrastructure Provider ID. User must have `FORGE_PROVIDER_ADMIN` authorization role. - If the Operating System has `tenantId` set, then org must have a Tenant entity and its ID should match the Operating System Tenant ID. User must have `FORGE_TENANT_ADMIN` authorization role. + If the Operating System has `infrastructureProviderId` set, then org + must have an Infrastructure Provider entity and its ID should match the + Operating System Infrastructure Provider ID. User must have + `FORGE_PROVIDER_ADMIN` authorization role. + + + If the Operating System has `tenantId` set, then org must have a Tenant + entity and its ID should match the Operating System Tenant ID. User must + have `FORGE_TENANT_ADMIN` authorization role. tags: - Operating System patch: @@ -8023,10 +8964,16 @@ paths: infrastructureProviderId: null tenantId: f97df110-f4de-492e-8849-4a6af68026b0 type: iPXE - ipxeScript: |- + ipxeScript: >- #!ipxe - kernel http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux initrd=initrd.gz - initrd http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + + kernel + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux + initrd=initrd.gz + + initrd + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + boot || imgfree shell userData: |- @@ -8056,7 +9003,7 @@ paths: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -8065,12 +9012,20 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Update an Operating System by ID - If the Operating System has `infrastructureProviderId` set, then org must have an Infrastructure Provider entity and its ID should match the Operating System Infrastructure Provider ID. User must have `FORGE_PROVIDER_ADMIN` authorization role. Provider must own the Operating System. - If the Operating System has `tenantId` set, then org must have a Tenant entity and its ID should match the Operating System Tenant ID. User must have `FORGE_TENANT_ADMIN` role. Tenant must own the Operating System. + If the Operating System has `infrastructureProviderId` set, then org + must have an Infrastructure Provider entity and its ID should match the + Operating System Infrastructure Provider ID. User must have + `FORGE_PROVIDER_ADMIN` authorization role. Provider must own the + Operating System. + + + If the Operating System has `tenantId` set, then org must have a Tenant + entity and its ID should match the Operating System Tenant ID. User must + have `FORGE_TENANT_ADMIN` role. Tenant must own the Operating System. tags: - Operating System requestBody: @@ -8084,7 +9039,7 @@ paths: name: ubuntu-22.04-lts description: Ubuntu 22.04 LTS allowOverride: true - '/v2/org/{org}/carbide/machine': + /v2/org/{org}/carbide/machine: parameters: - schema: type: string @@ -8108,13 +9063,15 @@ paths: examples: example-1: value: - - id: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + - id: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g infrastructureProviderId: e94bcfda-f6cb-42e4-80ec-516811e5abbf siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 instanceTypeId: null instanceId: null tenantId: null - controllerMachineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + controllerMachineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g controllerMachineType: x86_64 hwSkuDeviceType: cpu vendor: Lenovo @@ -8133,13 +9090,14 @@ paths: count: 4 machineInterfaces: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 - machineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + machineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g controllerInterfaceId: ad3dac49-741d-4c1f-815c-c020127c532f controllerSegmentId: f2207a3c-1847-42e5-bf2c-cd015f87a2bc subnetId: 1f232bf0-7b90-456e-b9b0-38d9fea4171a hostname: example.com isPrimary: true - macAddress: '00:00:5e:00:53:af' + macAddress: 00:00:5e:00:53:af ipAddresses: - 192.156.7.23 - 202.88.37.112 @@ -8185,15 +9143,19 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-machine - description: | + description: > Get all Machines for Infrastructure Provider. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. parameters: - schema: type: string @@ -8204,7 +9166,9 @@ paths: type: string in: query name: id - description: Filter Machines by ID. Can be specified multiple times to filter on more than one ID. + description: >- + Filter Machines by ID. Can be specified multiple times to filter on + more than one ID. - schema: type: boolean in: query @@ -8214,17 +9178,23 @@ paths: type: string in: query name: instanceTypeId - description: Filter Machines by Instance Type ID. Can be specified multiple times to filter on more than one Instance Type ID. + description: >- + Filter Machines by Instance Type ID. Can be specified multiple + times to filter on more than one Instance Type ID. - schema: type: string in: query name: tenantId - description: Filter Machines by ID of tenant of assigned instance. Can be specified multiple times to filter on more than one Tenant ID. + description: >- + Filter Machines by ID of tenant of assigned instance. Can be + specified multiple times to filter on more than one Tenant ID. - schema: type: boolean in: query name: hasInstance - description: Filter Machines that are assigned to an Instance. siteId must be specified when using this param. + description: >- + Filter Machines that are assigned to an Instance. siteId must be + specified when using this param. - schema: type: boolean in: query @@ -8234,12 +9204,16 @@ paths: type: boolean in: query name: includeMetadata - description: 'Include Machine metadata e.g. BMC, DPU, GPU and Interface data. Can only be requested by Provider.' + description: >- + Include Machine metadata e.g. BMC, DPU, GPU and Interface data. Can + only be requested by Provider. - schema: type: string in: query name: status - description: Filter Machines by Status. Can be specified multiple times to filter on more than one Status. + description: >- + Filter Machines by Status. Can be specified multiple times to + filter on more than one Status. - schema: type: string in: query @@ -8249,17 +9223,23 @@ paths: type: string in: query name: capabilityName - description: Filter Machines by Capability Name. Can be specified multiple times to filter on more than one Capability Name. + description: >- + Filter Machines by Capability Name. Can be specified multiple times + to filter on more than one Capability Name. - schema: type: string in: query name: hwSkuDeviceType - description: 'Filter Machines by hardware SKU Device Type. Example values: "gpu", "cpu", "storage", "cache"' + description: >- + Filter Machines by hardware SKU Device Type. Example values: "gpu", + "cpu", "storage", "cache" - schema: type: string in: query name: query - description: 'Provide query to search for matches. Input will be matched against Machine ID, vendor, product name, hostname and status' + description: >- + Provide query to search for matches. Input will be matched against + Machine ID, vendor, product name, hostname and status - schema: type: string enum: @@ -8299,7 +9279,7 @@ paths: in: query name: orderBy description: Ordering for pagination query - '/v2/org/{org}/carbide/machine/{machineId}': + /v2/org/{org}/carbide/machine/{machineId}: parameters: - schema: type: string @@ -8327,13 +9307,15 @@ paths: examples: Without Metadata: value: - id: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + id: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g infrastructureProviderId: e94bcfda-f6cb-42e4-80ec-516811e5abbf siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 instanceTypeId: 2e016c02-2c67-48aa-b289-5d3ca6320c52 instanceId: 59bdaaff-3998-4fd9-a140-8749beeb605e tenantId: 99819e6e-4017-4021-9edd-ea1bdf4dbd59 - controllerMachineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + controllerMachineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g controllerMachineType: x86_64 hwSkuDeviceType: cpu vendor: Lenovo @@ -8351,7 +9333,9 @@ paths: capacity: 32GB count: 4 - type: Network - name: MT42822 BlueField-2 integrated ConnectX-6 Dx network controller + name: >- + MT42822 BlueField-2 integrated ConnectX-6 Dx network + controller count: 2 deviceType: DPU - type: Storage @@ -8363,19 +9347,21 @@ paths: capacity: 80GB count: 2 - type: InfiniBand - name: 'MT28908 Family [ConnectX-6]' + name: MT28908 Family [ConnectX-6] vendor: Mellanox Technologies count: 2 machineInterfaces: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 - machineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + machineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g controllerInterfaceId: ad3dac49-741d-4c1f-815c-c020127c532f controllerSegmentId: f2207a3c-1847-42e5-bf2c-cd015f87a2bc - attachedDpuMachineID: 'fm100dsg4ekcb4sdi6hkqn0iojhj18okrr8vct64luh8957lfe8e69vme20,' + attachedDpuMachineID: >- + fm100dsg4ekcb4sdi6hkqn0iojhj18okrr8vct64luh8957lfe8e69vme20, subnetId: 1f232bf0-7b90-456e-b9b0-38d9fea4171a hostname: example.com isPrimary: true - macAddress: '00:00:5e:00:53:af' + macAddress: 00:00:5e:00:53:af ipAddresses: - 192.156.7.23 - 202.88.37.112 @@ -8419,13 +9405,15 @@ paths: updated: '2019-08-24T14:15:22Z' With Metadata: value: - id: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + id: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g infrastructureProviderId: e94bcfda-f6cb-42e4-80ec-516811e5abbf siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 instanceTypeId: 2e016c02-2c67-48aa-b289-5d3ca6320c52 instanceId: 59bdaaff-3998-4fd9-a140-8749beeb605e tenantId: 99819e6e-4017-4021-9edd-ea1bdf4dbd59 - controllerMachineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + controllerMachineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g controllerMachineType: x86_64 hwSkuDeviceType: cpu vendor: Lenovo @@ -8443,7 +9431,9 @@ paths: capacity: 32GB count: 4 - type: Network - name: MT42822 BlueField-2 integrated ConnectX-6 Dx network controller + name: >- + MT42822 BlueField-2 integrated ConnectX-6 Dx network + controller count: 2 deviceType: DPU - type: Storage @@ -8456,19 +9446,21 @@ paths: capacity: 80GB count: 2 - type: InfiniBand - name: 'MT28908 Family [ConnectX-6]' + name: MT28908 Family [ConnectX-6] vendor: Mellanox Technologies count: 2 machineInterfaces: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 - machineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + machineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g controllerInterfaceId: ad3dac49-741d-4c1f-815c-c020127c532f controllerSegmentId: f2207a3c-1847-42e5-bf2c-cd015f87a2bc - attachedDpuMachineID: 'fm100dsg4ekcb4sdi6hkqn0iojhj18okrr8vct64luh8957lfe8e69vme20,' + attachedDpuMachineID: >- + fm100dsg4ekcb4sdi6hkqn0iojhj18okrr8vct64luh8957lfe8e69vme20, subnetId: 1f232bf0-7b90-456e-b9b0-38d9fea4171a hostname: example.com isPrimary: true - macAddress: '00:00:5e:00:53:af' + macAddress: 00:00:5e:00:53:af ipAddresses: - 192.156.7.23 - 202.88.37.112 @@ -8512,7 +9504,7 @@ paths: chassisSerial: J1050ACR bmcInfo: ip: 10.217.133.5 - mac: 'C8:4B:D6:7A:C9:8A' + mac: C8:4B:D6:7A:C9:8A version: '1' firmwareRevision: '6.00' gpus: @@ -8525,21 +9517,27 @@ paths: frequency: 1755 MHz pciBusId: '00000000:17:00.0' networkInterfaces: - - macAddress: 'c8:4b:d6:7b:ac:a8' + - macAddress: c8:4b:d6:7b:ac:a8 vendor: Broadcom Inc. and subsidiaries - device: NetXtreme BCM5720 Gigabit Ethernet PCIe (PowerEdge Rx5xx LOM Board) - path: '/devices/pci0000:00/0000:00:1c.5/0000:04:00.0/net/eno8303' + device: >- + NetXtreme BCM5720 Gigabit Ethernet PCIe (PowerEdge + Rx5xx LOM Board) + path: >- + /devices/pci0000:00/0000:00:1c.5/0000:04:00.0/net/eno8303 numaNode: 0 - description: NetXtreme BCM5720 Gigabit Ethernet PCIe (PowerEdge Rx5xx LOM Board) + description: >- + NetXtreme BCM5720 Gigabit Ethernet PCIe (PowerEdge + Rx5xx LOM Board) slot: '0000:04:00.0' infinibandInterfaces: - guid: 1070fd0300bd43ac vendor: Mellanox Technologies - device: 'MT28908 Family [ConnectX-6]' - path: '/devices/pci0000:c9/0000:c9:02.0/0000:ca:00.0/infiniband/ibp202s0f0' + device: MT28908 Family [ConnectX-6] + path: >- + /devices/pci0000:c9/0000:c9:02.0/0000:ca:00.0/infiniband/ibp202s0f0 numaNode: 1 - description: 'MT28908 Family [ConnectX-6]' - slot: '0000:ca:00.0' + description: MT28908 Family [ConnectX-6] + slot: 0000:ca:00.0 status: Ready isUsableByTenant: true statusHistory: @@ -8551,13 +9549,15 @@ paths: updated: '2019-08-24T14:15:22Z' With Machine Health Alerts: value: - id: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + id: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g infrastructureProviderId: e94bcfda-f6cb-42e4-80ec-516811e5abbf siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 instanceTypeId: 2e016c02-2c67-48aa-b289-5d3ca6320c52 instanceId: 59bdaaff-3998-4fd9-a140-8749beeb605e tenantId: 99819e6e-4017-4021-9edd-ea1bdf4dbd59 - controllerMachineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + controllerMachineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g controllerMachineType: x86_64 hwSkuDeviceType: cpu vendor: Lenovo @@ -8575,7 +9575,9 @@ paths: capacity: 32GB count: 4 - type: Network - name: MT42822 BlueField-2 integrated ConnectX-6 Dx network controller + name: >- + MT42822 BlueField-2 integrated ConnectX-6 Dx network + controller count: 2 deviceType: DPU - type: Storage @@ -8587,19 +9589,21 @@ paths: capacity: 80GB count: 2 - type: InfiniBand - name: 'MT28908 Family [ConnectX-6]' + name: MT28908 Family [ConnectX-6] vendor: Mellanox Technologies count: 2 machineInterfaces: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 - machineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + machineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g controllerInterfaceId: ad3dac49-741d-4c1f-815c-c020127c532f controllerSegmentId: f2207a3c-1847-42e5-bf2c-cd015f87a2bc - attachedDpuMachineID: 'fm100dsg4ekcb4sdi6hkqn0iojhj18okrr8vct64luh8957lfe8e69vme20,' + attachedDpuMachineID: >- + fm100dsg4ekcb4sdi6hkqn0iojhj18okrr8vct64luh8957lfe8e69vme20, subnetId: 1f232bf0-7b90-456e-b9b0-38d9fea4171a hostname: example.com isPrimary: true - macAddress: '00:00:5e:00:53:af' + macAddress: 00:00:5e:00:53:af ipAddresses: - 192.156.7.23 - 202.88.37.112 @@ -8658,7 +9662,9 @@ paths: isUsableByTenant: false statusHistory: - status: Error - message: Machine has one or more health alerts that prevent allocation + message: >- + Machine has one or more health alerts that prevent + allocation created: '2019-08-28T14:15:22Z' updated: '2019-08-28T14:15:22Z' - status: Ready @@ -8670,12 +9676,19 @@ paths: '403': $ref: '#/components/responses/ForbiddenError' operationId: get-machine - description: | - Org must have either an Infrastructure Provider entity or a Tenant entity. + description: > + Org must have either an Infrastructure Provider entity or a Tenant + entity. + - If org has an Infrastructure Provider entity, then a user with `FORGE_PROVIDER_ADMIN` role can request details for any Machine on any Site owned by the Provider. + If org has an Infrastructure Provider entity, then a user with + `FORGE_PROVIDER_ADMIN` role can request details for any Machine on any + Site owned by the Provider. - If org has a Tenant entity, then a user with `FORGE_TENANT_ADMIN` role can request details for any Machine associated with Tenant's active Instances. + + If org has a Tenant entity, then a user with `FORGE_TENANT_ADMIN` role + can request details for any Machine associated with Tenant's active + Instances. parameters: - schema: type: string @@ -8690,7 +9703,9 @@ paths: type: boolean in: query name: includeMetadata - description: 'Include Machine metadata e.g. BMC, DPU, GPU and Interface data. Can only be requested by Provider.' + description: >- + Include Machine metadata e.g. BMC, DPU, GPU and Interface data. Can + only be requested by Provider. patch: summary: Update Machine operationId: update-machine @@ -8704,13 +9719,15 @@ paths: examples: Example 1: value: - id: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + id: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g infrastructureProviderId: e94bcfda-f6cb-42e4-80ec-516811e5abbf siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 instanceTypeId: 2e016c02-2c67-48aa-b289-5d3ca6320c52 instanceId: 59bdaaff-3998-4fd9-a140-8749beeb605e tenantId: 99819e6e-4017-4021-9edd-ea1bdf4dbd59 - controllerMachineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + controllerMachineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g controllerMachineType: x86_64 hwSkuDeviceType: cpu vendor: Lenovo @@ -8729,13 +9746,14 @@ paths: count: 4 machineInterfaces: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 - machineId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + machineId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g controllerInterfaceId: ad3dac49-741d-4c1f-815c-c020127c532f controllerSegmentId: f2207a3c-1847-42e5-bf2c-cd015f87a2bc subnetId: 1f232bf0-7b90-456e-b9b0-38d9fea4171a hostname: example.com isPrimary: true - macAddress: '00:00:5e:00:53:af' + macAddress: 00:00:5e:00:53:af ipAddresses: - 192.156.7.23 - 202.88.37.112 @@ -8779,12 +9797,17 @@ paths: updated: '2019-08-24T14:15:22Z' tags: - Machine - description: | + description: > Update a Machine - Instance Type attribute updates, maintenance attribute updates and labels updates must be specified in separate requests. They cannot be processed at the same time. - Some attributes can only be updated by Provider, while others can be updated by Provider or a Privileged Tenant. + Instance Type attribute updates, maintenance attribute updates and + labels updates must be specified in separate requests. They cannot be + processed at the same time. + + + Some attributes can only be updated by Provider, while others can be + updated by Provider or a Privileged Tenant. requestBody: content: application/json: @@ -8800,7 +9823,9 @@ paths: Set Maintenance Message: value: setMaintenanceMode: true - maintenanceMessage: Machine requires re-cabling to connect with revised underlay network. Estimated maintenance time is 2 days + maintenanceMessage: >- + Machine requires re-cabling to connect with revised underlay + network. Estimated maintenance time is 2 days Remove Maintenance Message: value: setMaintenanceMode: false @@ -8831,8 +9856,11 @@ paths: '500': description: Describes an error response for 500 Internal Server Error $ref: '#/components/responses/GenericHttpError' - description: Org must have an Infrastructure Provider entity. Machine must belong to the Provider. User must have FORGE_PROVIDER_ADMIN authorization role. Machine must meet certain criteria to be eligible for deletion. - '/v2/org/{org}/carbide/machine/{machineId}/status-history': + description: >- + Org must have an Infrastructure Provider entity. Machine must belong to + the Provider. User must have FORGE_PROVIDER_ADMIN authorization role. + Machine must meet certain criteria to be eligible for deletion. + /v2/org/{org}/carbide/machine/{machineId}/status-history: parameters: - schema: type: string @@ -8863,7 +9891,7 @@ paths: Example 1: value: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' headers: @@ -8874,12 +9902,19 @@ paths: '403': $ref: '#/components/responses/ForbiddenError' operationId: get-machine-status-history - description: | - Org must have either an Infrastructure Provider entity or a Tenant entity. + description: > + Org must have either an Infrastructure Provider entity or a Tenant + entity. + - If org has an Infrastructure Provider entity, then a user with `FORGE_PROVIDER_ADMIN` role can request details for any Machine on any Site owned by the Provider. + If org has an Infrastructure Provider entity, then a user with + `FORGE_PROVIDER_ADMIN` role can request details for any Machine on any + Site owned by the Provider. - If org has a Tenant entity, then a user with `FORGE_TENANT_ADMIN` role can request details for any Machine associated with Tenant's active Instances. + + If org has a Tenant entity, then a user with `FORGE_TENANT_ADMIN` role + can request details for any Machine associated with Tenant's active + Instances. parameters: - schema: type: integer @@ -8896,7 +9931,7 @@ paths: in: query name: orderBy description: Ordering for pagination query - '/v2/org/{org}/carbide/machine/gpu/stats': + /v2/org/{org}/carbide/machine/gpu/stats: parameters: - schema: type: string @@ -8920,10 +9955,13 @@ paths: '403': $ref: '#/components/responses/ForbiddenError' operationId: get-machine-gpu-stats - description: |- - Returns GPU summary stats grouped by GPU name for machines at the specified site. + description: >- + Returns GPU summary stats grouped by GPU name for machines at the + specified site. - User must have `FORGE_PROVIDER_ADMIN` authorization role. The specified site must belong to the Provider. + + User must have `FORGE_PROVIDER_ADMIN` authorization role. The specified + site must belong to the Provider. parameters: - schema: type: string @@ -8932,7 +9970,7 @@ paths: name: siteId required: true description: ID of the Site - '/v2/org/{org}/carbide/machine/instance-type/stats/summary': + /v2/org/{org}/carbide/machine/instance-type/stats/summary: parameters: - schema: type: string @@ -8954,10 +9992,13 @@ paths: '403': $ref: '#/components/responses/ForbiddenError' operationId: get-machine-instance-type-stats-summary - description: |- - Returns machine counts grouped by assigned (has instance type) vs unassigned, broken down by status. + description: >- + Returns machine counts grouped by assigned (has instance type) vs + unassigned, broken down by status. - User must have `FORGE_PROVIDER_ADMIN` authorization role. The specified site must belong to the Provider. + + User must have `FORGE_PROVIDER_ADMIN` authorization role. The specified + site must belong to the Provider. parameters: - schema: type: string @@ -8966,7 +10007,7 @@ paths: name: siteId required: true description: ID of the Site - '/v2/org/{org}/carbide/machine/instance-type/stats': + /v2/org/{org}/carbide/machine/instance-type/stats: parameters: - schema: type: string @@ -8990,10 +10031,13 @@ paths: '403': $ref: '#/components/responses/ForbiddenError' operationId: get-machine-instance-type-stats - description: |- - Returns machine stats for each instance type including allocation details and tenant breakdown. + description: >- + Returns machine stats for each instance type including allocation + details and tenant breakdown. - User must have `FORGE_PROVIDER_ADMIN` authorization role. The specified site must belong to the Provider. + + User must have `FORGE_PROVIDER_ADMIN` authorization role. The specified + site must belong to the Provider. parameters: - schema: type: string @@ -9002,7 +10046,7 @@ paths: name: siteId required: true description: ID of the Site - '/v2/org/{org}/carbide/tenant/instance-type/stats': + /v2/org/{org}/carbide/tenant/instance-type/stats: parameters: - schema: type: string @@ -9026,10 +10070,13 @@ paths: '403': $ref: '#/components/responses/ForbiddenError' operationId: get-tenant-instance-type-stats - description: |- - Returns instance type allocation stats grouped by tenant for the specified site. + description: >- + Returns instance type allocation stats grouped by tenant for the + specified site. - User must have `FORGE_PROVIDER_ADMIN` authorization role. The specified site must belong to the Provider. + + User must have `FORGE_PROVIDER_ADMIN` authorization role. The specified + site must belong to the Provider. parameters: - schema: type: string @@ -9038,7 +10085,7 @@ paths: name: siteId required: true description: ID of the Site - '/v2/org/{org}/carbide/machine-capability': + /v2/org/{org}/carbide/machine-capability: parameters: - schema: type: string @@ -9072,7 +10119,9 @@ paths: threads: 64 count: 2 - type: Network - name: MT42822 BlueField-2 integrated ConnectX-6 Dx network controller + name: >- + MT42822 BlueField-2 integrated ConnectX-6 Dx network + controller count: 2 - type: Storage name: Dell Ent NVMe v2 AGN RI U.2 1.92TB @@ -9083,22 +10132,26 @@ paths: capacity: 1.92TB count: 2 - type: InfiniBand - name: 'MT28908 Family [ConnectX-6]' + name: MT28908 Family [ConnectX-6] vendor: Mellanox Technologies count: 2 headers: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-machine-capabilities - description: | + description: > Get all distinct Machine Capabilities across all Machines - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. parameters: - schema: type: string @@ -9140,7 +10193,11 @@ paths: type: string in: query name: inactiveDevices - description: 'Filter Capabilities by Inactive Devices value. Since the value is an array, multiple query params should be specified in correct order in order to filter. For example, to filter for [1, 3], specify inactiveDevices=1&inactiveDevices=3' + description: >- + Filter Capabilities by Inactive Devices value. Since the value is an + array, multiple query params should be specified in correct order in + order to filter. For example, to filter for [1, 3], specify + inactiveDevices=1&inactiveDevices=3 - schema: type: string in: query @@ -9174,7 +10231,7 @@ paths: in: query name: orderBy description: Ordering for pagination query - '/v2/org/{org}/carbide/rack': + /v2/org/{org}/carbide/rack: parameters: - schema: type: string @@ -9185,10 +10242,12 @@ paths: get: summary: Retrieve all Racks operationId: get-all-rack - description: |- + description: >- Get all Racks for the specified Site. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. parameters: - schema: type: string @@ -9265,7 +10324,8 @@ paths: position: A1 components: - id: 660e8400-e29b-41d4-a716-446655440001 - componentId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + componentId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g type: ComponentTypeCompute name: Server-01 serialNumber: SN-SRV-001 @@ -9276,7 +10336,7 @@ paths: hostId: 0 bmcs: - type: BmcTypeHost - macAddress: 'AA:BB:CC:DD:EE:01' + macAddress: AA:BB:CC:DD:EE:01 ipAddress: 10.0.0.101 powerState: 'on' headers: @@ -9289,7 +10349,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Rack - '/v2/org/{org}/carbide/rack/{id}': + /v2/org/{org}/carbide/rack/{id}: parameters: - schema: type: string @@ -9307,10 +10367,12 @@ paths: get: summary: Retrieve a Rack operationId: get-rack - description: |- + description: >- Get a Rack by ID. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. parameters: - schema: type: string @@ -9347,7 +10409,8 @@ paths: position: A1 components: - id: 660e8400-e29b-41d4-a716-446655440001 - componentId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + componentId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g type: ComponentTypeCompute name: Server-01 serialNumber: SN-SRV-001 @@ -9358,7 +10421,7 @@ paths: hostId: 0 bmcs: - type: BmcTypeHost - macAddress: 'AA:BB:CC:DD:EE:01' + macAddress: AA:BB:CC:DD:EE:01 ipAddress: 10.0.0.101 powerState: 'on' '403': @@ -9367,7 +10430,7 @@ paths: $ref: '#/components/responses/NotFoundError' tags: - Rack - '/v2/org/{org}/carbide/rack/validation': + /v2/org/{org}/carbide/rack/validation: parameters: - schema: type: string @@ -9378,14 +10441,21 @@ paths: get: summary: Validate Racks operationId: validate-racks - description: |- + description: >- Validate Rack components by comparing expected vs actual state. - If no filter is specified, validates all racks in the Site. Filters can narrow the scope to specific racks by name or manufacturer. - Compares the expected component configuration against the actual state. Returns a detailed diff report showing missing, extra, and drifted components. + If no filter is specified, validates all racks in the Site. Filters can + narrow the scope to specific racks by name or manufacturer. + + + Compares the expected component configuration against the actual state. + Returns a detailed diff report showing missing, extra, and drifted + components. + - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. parameters: - schema: type: string @@ -9441,7 +10511,7 @@ paths: hostId: 0 bmcs: - type: BmcTypeHost - macAddress: 'AA:BB:CC:DD:EE:01' + macAddress: AA:BB:CC:DD:EE:01 ipAddress: 10.0.0.101 powerState: 'on' - type: Drift @@ -9449,8 +10519,8 @@ paths: componentId: comp-2 fieldDiffs: - fieldName: firmware_version - expectedValue: '1.0.0' - actualValue: '2.0.0' + expectedValue: 1.0.0 + actualValue: 2.0.0 totalDiffs: 2 missingCount: 1 unexpectedCount: 0 @@ -9462,7 +10532,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Rack - '/v2/org/{org}/carbide/rack/{id}/validation': + /v2/org/{org}/carbide/rack/{id}/validation: parameters: - schema: type: string @@ -9480,12 +10550,17 @@ paths: get: summary: Validate a Rack operationId: validate-rack - description: |- + description: >- Validate a Rack's components by comparing expected vs actual state. - Compares the rack's expected component configuration against the actual state. Returns a detailed diff report showing missing, extra, and drifted components. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + Compares the rack's expected component configuration against the actual + state. Returns a detailed diff report showing missing, extra, and + drifted components. + + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. parameters: - schema: type: string @@ -9529,7 +10604,7 @@ paths: hostId: 0 bmcs: - type: BmcTypeHost - macAddress: 'AA:BB:CC:DD:EE:01' + macAddress: AA:BB:CC:DD:EE:01 ipAddress: 10.0.0.101 powerState: 'on' - type: Drift @@ -9537,8 +10612,8 @@ paths: componentId: comp-2 fieldDiffs: - fieldName: firmware_version - expectedValue: '1.0.0' - actualValue: '2.0.0' + expectedValue: 1.0.0 + actualValue: 2.0.0 totalDiffs: 2 missingCount: 1 unexpectedCount: 0 @@ -9550,7 +10625,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Rack - '/v2/org/{org}/carbide/rack/power': + /v2/org/{org}/carbide/rack/power: parameters: - schema: type: string @@ -9561,12 +10636,16 @@ paths: patch: summary: Power control Racks operationId: power-control-racks - description: |- - Power control Racks with optional filters. If no filter is specified, targets all racks in the Site. + description: >- + Power control Racks with optional filters. If no filter is specified, + targets all racks in the Site. + Supported power states: `on`, `off`, `cycle`, `forceoff`, `forcecycle`. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. requestBody: required: true content: @@ -9605,7 +10684,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Rack - '/v2/org/{org}/carbide/rack/{id}/power': + /v2/org/{org}/carbide/rack/{id}/power: parameters: - schema: type: string @@ -9623,12 +10702,15 @@ paths: patch: summary: Power control a Rack operationId: power-control-rack - description: |- + description: >- Power control a Rack identified by Rack UUID. + Supported power states: `on`, `off`, `cycle`, `forceoff`, `forcecycle`. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. requestBody: required: true content: @@ -9666,7 +10748,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Rack - '/v2/org/{org}/carbide/rack/firmware': + /v2/org/{org}/carbide/rack/firmware: parameters: - schema: type: string @@ -9677,10 +10759,13 @@ paths: patch: summary: Firmware update Racks operationId: firmware-update-racks - description: |- - Update firmware on Racks with optional name filter. If no filter is specified, targets all racks in the Site. + description: >- + Update firmware on Racks with optional name filter. If no filter is + specified, targets all racks in the Site. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. requestBody: required: true content: @@ -9697,7 +10782,7 @@ paths: filter: names: - Rack-001 - version: '24.11.0' + version: 24.11.0 responses: '200': description: OK @@ -9717,7 +10802,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Rack - '/v2/org/{org}/carbide/rack/{id}/firmware': + /v2/org/{org}/carbide/rack/{id}/firmware: parameters: - schema: type: string @@ -9735,10 +10820,12 @@ paths: patch: summary: Firmware update a Rack operationId: firmware-update-rack - description: |- + description: >- Update firmware on a Rack identified by Rack UUID. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. requestBody: required: true content: @@ -9749,7 +10836,7 @@ paths: with-version: value: siteId: 550e8400-e29b-41d4-a716-446655440000 - version: '24.11.0' + version: 24.11.0 without-version: value: siteId: 550e8400-e29b-41d4-a716-446655440000 @@ -9771,7 +10858,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Rack - '/v2/org/{org}/carbide/rack/bringup': + /v2/org/{org}/carbide/rack/bringup: parameters: - schema: type: string @@ -9782,10 +10869,13 @@ paths: post: summary: Bring up Racks operationId: bringup-racks - description: |- - Bring up Racks with optional name filter. If no filter is specified, targets all racks in the Site. + description: >- + Bring up Racks with optional name filter. If no filter is specified, + targets all racks in the Site. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. requestBody: required: true content: @@ -9822,7 +10912,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Rack - '/v2/org/{org}/carbide/rack/{id}/bringup': + /v2/org/{org}/carbide/rack/{id}/bringup: parameters: - schema: type: string @@ -9840,10 +10930,12 @@ paths: post: summary: Bring up a Rack operationId: bringup-rack - description: |- + description: >- Bring up a Rack identified by Rack UUID. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. requestBody: required: true content: @@ -9876,7 +10968,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Rack - '/v2/org/{org}/carbide/rack/task/{id}': + /v2/org/{org}/carbide/rack/task/{id}: parameters: - schema: type: string @@ -9894,11 +10986,15 @@ paths: get: summary: Retrieve a Task operationId: get-rack-task - description: |- + description: >- Get a Task by UUID. - Tasks are site-scoped; `siteId` must be the Site where the task was created. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Tasks are site-scoped; `siteId` must be the Site where the task was + created. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. parameters: - schema: type: string @@ -9920,7 +11016,7 @@ paths: id: 550e8400-e29b-41d4-a716-446655440000 status: Running description: Power on rack components - message: 'Processing 3 of 5 components' + message: Processing 3 of 5 components '400': $ref: '#/components/responses/ValidationError' '403': @@ -9929,7 +11025,7 @@ paths: $ref: '#/components/responses/NotFoundError' tags: - Rack - '/v2/org/{org}/carbide/tray': + /v2/org/{org}/carbide/tray: parameters: - schema: type: string @@ -9940,14 +11036,21 @@ paths: get: summary: Retrieve all Trays operationId: get-all-tray - description: |- + description: >- Get all Trays (components) for the specified Site. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. + **Filter constraints:** + - `rackId` and `rackName` are mutually exclusive - - `rackId`/`rackName` cannot be combined with `id`/`componentId` (rack-level vs component-level targeting) + + - `rackId`/`rackName` cannot be combined with `id`/`componentId` + (rack-level vs component-level targeting) + - `componentId` requires `type` to be specified parameters: - schema: @@ -9981,13 +11084,17 @@ paths: type: string name: componentId in: query - description: Filter by component ID. Can be specified multiple times to filter on more than one component ID. Requires 'type' parameter. + description: >- + Filter by component ID. Can be specified multiple times to filter on + more than one component ID. Requires 'type' parameter. - schema: type: string format: uuid name: id in: query - description: Filter by tray UUID. Can be specified multiple times to filter on more than one tray ID. + description: >- + Filter by tray UUID. Can be specified multiple times to filter on + more than one tray ID. - schema: type: integer example: 1 @@ -10031,7 +11138,8 @@ paths: example-1: value: - id: 660e8400-e29b-41d4-a716-446655440001 - componentId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + componentId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g type: compute name: compute-tray-1 manufacturer: NVIDIA @@ -10055,7 +11163,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Tray - '/v2/org/{org}/carbide/tray/{id}': + /v2/org/{org}/carbide/tray/{id}: parameters: - schema: type: string @@ -10073,10 +11181,12 @@ paths: get: summary: Retrieve a Tray operationId: get-tray - description: |- + description: >- Get a Tray by ID. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. parameters: - schema: type: string @@ -10096,7 +11206,8 @@ paths: example-1: value: id: 660e8400-e29b-41d4-a716-446655440001 - componentId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g + componentId: >- + fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g type: compute name: compute-tray-1 manufacturer: NVIDIA @@ -10116,7 +11227,7 @@ paths: $ref: '#/components/responses/NotFoundError' tags: - Tray - '/v2/org/{org}/carbide/tray/validation': + /v2/org/{org}/carbide/tray/validation: parameters: - schema: type: string @@ -10127,14 +11238,22 @@ paths: get: summary: Validate Trays operationId: validate-trays - description: |- + description: >- Validate Tray components by comparing expected vs actual state. - If no filter is specified, validates all trays in the Site. Use rackId/rackName to scope to a specific rack, and name/manufacturer/type to filter by tray attributes. - Compares the expected component configuration against the actual state. Returns a detailed diff report showing missing, extra, and drifted components. + If no filter is specified, validates all trays in the Site. Use + rackId/rackName to scope to a specific rack, and name/manufacturer/type + to filter by tray attributes. + + + Compares the expected component configuration against the actual state. + Returns a detailed diff report showing missing, extra, and drifted + components. + - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. parameters: - schema: type: string @@ -10183,7 +11302,9 @@ paths: name: componentId in: query required: false - description: Filter by external component ID (requires type; mutually exclusive with rackId/rackName; use repeated params for multiple values) + description: >- + Filter by external component ID (requires type; mutually exclusive + with rackId/rackName; use repeated params for multiple values) responses: '200': description: OK @@ -10206,7 +11327,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Tray - '/v2/org/{org}/carbide/tray/{id}/validation': + /v2/org/{org}/carbide/tray/{id}/validation: parameters: - schema: type: string @@ -10224,12 +11345,17 @@ paths: get: summary: Validate a Tray operationId: validate-tray - description: |- + description: >- Validate a Tray by comparing expected vs actual state. - Compares the expected component configuration against the actual state. Returns a detailed diff report showing missing, extra, and drifted components. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + Compares the expected component configuration against the actual state. + Returns a detailed diff report showing missing, extra, and drifted + components. + + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. parameters: - schema: type: string @@ -10260,7 +11386,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Tray - '/v2/org/{org}/carbide/tray/power': + /v2/org/{org}/carbide/tray/power: parameters: - schema: type: string @@ -10271,17 +11397,26 @@ paths: patch: summary: Power control Trays operationId: power-control-trays - description: |- - Power control Trays with optional filters. If no filter is specified, targets all trays in the Site. + description: >- + Power control Trays with optional filters. If no filter is specified, + targets all trays in the Site. + Supported power states: `on`, `off`, `cycle`, `forceoff`, `forcecycle`. + **Filter constraints:** + - `rackId` and `rackName` are mutually exclusive - - `rackId`/`rackName` cannot be combined with `ids`/`componentIds` (rack-level vs component-level targeting) + + - `rackId`/`rackName` cannot be combined with `ids`/`componentIds` + (rack-level vs component-level targeting) + - `componentIds` requires `type` to be specified - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. requestBody: required: true content: @@ -10317,7 +11452,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Tray - '/v2/org/{org}/carbide/tray/{id}/power': + /v2/org/{org}/carbide/tray/{id}/power: parameters: - schema: type: string @@ -10335,12 +11470,15 @@ paths: patch: summary: Power control a Tray operationId: power-control-tray - description: |- + description: >- Power control a Tray identified by Tray UUID. + Supported power states: `on`, `off`, `cycle`, `forceoff`, `forcecycle`. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. requestBody: required: true content: @@ -10378,7 +11516,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Tray - '/v2/org/{org}/carbide/tray/firmware': + /v2/org/{org}/carbide/tray/firmware: parameters: - schema: type: string @@ -10389,15 +11527,23 @@ paths: patch: summary: Firmware update Trays operationId: firmware-update-trays - description: |- - Update firmware on Trays with optional filters. If no filter is specified, targets all trays in the Site. + description: >- + Update firmware on Trays with optional filters. If no filter is + specified, targets all trays in the Site. + **Filter constraints:** + - `rackId` and `rackName` are mutually exclusive - - `rackId`/`rackName` cannot be combined with `ids`/`componentIds` (rack-level vs component-level targeting) + + - `rackId`/`rackName` cannot be combined with `ids`/`componentIds` + (rack-level vs component-level targeting) + - `componentIds` requires `type` to be specified - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. requestBody: required: true content: @@ -10413,7 +11559,7 @@ paths: siteId: 550e8400-e29b-41d4-a716-446655440000 filter: rackId: 660e8400-e29b-41d4-a716-446655440001 - version: '24.11.0' + version: 24.11.0 responses: '200': description: OK @@ -10432,7 +11578,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Tray - '/v2/org/{org}/carbide/tray/{id}/firmware': + /v2/org/{org}/carbide/tray/{id}/firmware: parameters: - schema: type: string @@ -10450,10 +11596,12 @@ paths: patch: summary: Firmware update a Tray operationId: firmware-update-tray - description: |- + description: >- Update firmware on a Tray identified by Tray UUID. - Org must have an Infrastructure Provider entity. User must have `FORGE_PROVIDER_ADMIN` authorization role. + + Org must have an Infrastructure Provider entity. User must have + `FORGE_PROVIDER_ADMIN` authorization role. requestBody: required: true content: @@ -10464,7 +11612,7 @@ paths: with-version: value: siteId: 550e8400-e29b-41d4-a716-446655440000 - version: '24.11.0' + version: 24.11.0 without-version: value: siteId: 550e8400-e29b-41d4-a716-446655440000 @@ -10486,7 +11634,7 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - Tray - '/v2/org/{org}/carbide/network-security-group': + /v2/org/{org}/carbide/network-security-group: parameters: - schema: type: string @@ -10509,7 +11657,9 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '400': $ref: '#/components/responses/ValidationError' @@ -10524,10 +11674,12 @@ paths: description: Describes an error response for 501 Not Implemented $ref: '#/components/responses/GenericHttpError' operationId: get-all-network-security-group - description: | + description: > Get all Network Security Groups for Tenant - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. parameters: - schema: type: string @@ -10544,7 +11696,9 @@ paths: type: string in: query name: query - description: 'Search for matches across all Sites. Input will be matched against name, description and status fields' + description: >- + Search for matches across all Sites. Input will be matched against + name, description and status fields - schema: type: string enum: @@ -10587,7 +11741,9 @@ paths: type: boolean in: query name: includeAttachmentStats - description: Include counts for the number objects that have attached the Network Security Group + description: >- + Include counts for the number objects that have attached the Network + Security Group tags: - Network Security Group post: @@ -10616,10 +11772,12 @@ paths: '501': description: Describes an error response for 501 Not Implemented $ref: '#/components/responses/GenericHttpError' - description: | + description: > Create a Network Security Group for Tenant. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. requestBody: content: application/json: @@ -10627,7 +11785,7 @@ paths: $ref: '#/components/schemas/NetworkSecurityGroupCreateRequest' tags: - Network Security Group - '/v2/org/{org}/carbide/network-security-group/{networkSecurityGroupId}': + /v2/org/{org}/carbide/network-security-group/{networkSecurityGroupId}: parameters: - schema: type: string @@ -10664,10 +11822,12 @@ paths: description: Describes an error response for 501 Not Implemented $ref: '#/components/responses/GenericHttpError' operationId: get-network-security-group - description: | + description: > Get a Network Security Group by ID - Org must have a Tenant entity. Instance must belong to Tenant. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. Instance must belong to Tenant. User must + have `FORGE_TENANT_ADMIN` authorization role. parameters: - schema: type: string @@ -10702,12 +11862,16 @@ paths: '501': description: Describes an error response for 501 Not Implemented $ref: '#/components/responses/GenericHttpError' - description: |- + description: >- Update a Network Security Group by ID - Org must have a Tenant entity. Instance must belong to Tenant. User must have `FORGE_TENANT_ADMIN` authorization role. - After a group has been created, policy updates are absolute. The complete desired policy set must be specified. + Org must have a Tenant entity. Instance must belong to Tenant. User must + have `FORGE_TENANT_ADMIN` authorization role. + + + After a group has been created, policy updates are absolute. The + complete desired policy set must be specified. requestBody: content: application/json: @@ -10738,15 +11902,19 @@ paths: '501': description: Describes an error response for 501 Not Implemented $ref: '#/components/responses/GenericHttpError' - description: |- + description: >- Delete a Network Security Group by ID - Org must have a Tenant entity. Instance must belong to Tenant. User must have `FORGE_TENANT_ADMIN` authorization role. - Deleting a Network Security Group will also delete all the associations and all policies. + Org must have a Tenant entity. Instance must belong to Tenant. User must + have `FORGE_TENANT_ADMIN` authorization role. + + + Deleting a Network Security Group will also delete all the associations + and all policies. tags: - Network Security Group - '/v2/org/{org}/carbide/dpu-extension-service': + /v2/org/{org}/carbide/dpu-extension-service: parameters: - schema: type: string @@ -10769,15 +11937,19 @@ paths: X-Pagination: schema: type: string - example: '{"pageNumber":1,"pageSize":20,"total":30,"orderBy": "CREATED_DESC"}' + example: >- + {"pageNumber":1,"pageSize":20,"total":30,"orderBy": + "CREATED_DESC"} description: Pagination result in JSON format '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-dpu-extension-service - description: |- + description: >- Retrieve all DPU Extension Services for the current Tenant - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. parameters: - schema: type: string @@ -10798,7 +11970,9 @@ paths: type: string in: query name: query - description: 'Search for matches across all Sites. Input will be matched against name, description and status' + description: >- + Search for matches across all Sites. Input will be matched against + name, description and status - schema: type: string enum: @@ -10853,10 +12027,12 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Create a DPU Extension Service for the current Tenant. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. requestBody: content: application/json: @@ -10864,7 +12040,7 @@ paths: $ref: '#/components/schemas/DpuExtensionServiceCreateRequest' tags: - DPU Extension Service - '/v2/org/{org}/carbide/dpu-extension-service/{dpuExtensionServiceId}': + /v2/org/{org}/carbide/dpu-extension-service/{dpuExtensionServiceId}: parameters: - schema: type: string @@ -10890,12 +12066,15 @@ paths: $ref: '#/components/schemas/DpuExtensionService' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Retrieve a DPU Extension Service for the current Tenant by ID + DPU Extension Service must be owned by current Tenant. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. tags: - DPU Extension Service delete: @@ -10906,12 +12085,17 @@ paths: description: No Content '403': $ref: '#/components/responses/ForbiddenError' - description: |- - Delete a specific DPU Extension Service by ID. All versions will be deleted. + description: >- + Delete a specific DPU Extension Service by ID. All versions will be + deleted. + + + DPU Extension Service must be owned by current Tenant. No versions of + the DPU Extension Service can have active deployments. - DPU Extension Service must be owned by current Tenant. No versions of the DPU Extension Service can have active deployments. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. tags: - DPU Extension Service patch: @@ -10930,12 +12114,16 @@ paths: $ref: '#/components/responses/ForbiddenError' '404': $ref: '#/components/responses/NotFoundError' - description: |- + description: >- Update a specific DPU Extension Service. - DPU Extension Service must be owned by current Tenant. A new version will be created if data or credentials are modified. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + DPU Extension Service must be owned by current Tenant. A new version + will be created if data or credentials are modified. + + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. requestBody: content: application/json: @@ -10943,7 +12131,7 @@ paths: $ref: '#/components/schemas/DpuExtensionServiceUpdateRequest' tags: - DPU Extension Service - '/v2/org/{org}/carbide/dpu-extension-service/{dpuExtensionServiceId}/version/{version}': + /v2/org/{org}/carbide/dpu-extension-service/{dpuExtensionServiceId}/version/{version}: parameters: - schema: type: string @@ -10977,12 +12165,15 @@ paths: $ref: '#/components/responses/ForbiddenError' '404': $ref: '#/components/responses/NotFoundError' - description: |- + description: >- Retrieve details for a specific version of a DPU Extension Service. + DPU Extension Service must be owned by current Tenant. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. tags: - DPU Extension Service delete: @@ -10993,15 +12184,19 @@ paths: description: No Content '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Delete a specific version of a DPU Extension Service. - DPU Extension Service must be owned by current Tenant. The version being deleted cannot have active deployments. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + DPU Extension Service must be owned by current Tenant. The version being + deleted cannot have active deployments. + + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. tags: - DPU Extension Service - '/v2/org/{org}/carbide/sshkeygroup': + /v2/org/{org}/carbide/sshkeygroup: parameters: - schema: type: string @@ -11066,10 +12261,12 @@ paths: '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-ssh-key-group - description: |- + description: >- Retrieve all SSH Key Groups for the current Tenant. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. parameters: - schema: type: string @@ -11095,7 +12292,9 @@ paths: type: string in: query name: query - description: Search for matches across all Sites. Input will be matched against name field + description: >- + Search for matches across all Sites. Input will be matched against + name field - schema: type: string enum: @@ -11189,10 +12388,12 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Create an SSH Key Group for the current Tenant. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. requestBody: content: application/json: @@ -11209,7 +12410,7 @@ paths: - ff06da79-707a-4069-8623-211d49ae96c8 tags: - SSH Key Group - '/v2/org/{org}/carbide/sshkeygroup/{sshKeyGroupId}': + /v2/org/{org}/carbide/sshkeygroup/{sshKeyGroupId}: parameters: - schema: type: string @@ -11278,12 +12479,15 @@ paths: '403': $ref: '#/components/responses/ForbiddenError' operationId: get-ssh-key-group - description: |- + description: >- Retrieve an SSH Key Group for the current Tenant by ID + SSH Key Group must be owned by current Tenant. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. tags: - SSH Key Group delete: @@ -11294,12 +12498,16 @@ paths: description: Accepted '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Delete a specific SSH key Group. - SSH Key Group must be owned by current Tenant. All Sites associated must be online to proceed. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + SSH Key Group must be owned by current Tenant. All Sites associated must + be online to proceed. + + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. tags: - SSH Key Group patch: @@ -11377,12 +12585,16 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Update a specific SSH Key Group. - SSH Key Group must be owned by current Tenant. All Sites being added or removed must be online to proceed. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + SSH Key Group must be owned by current Tenant. All Sites being added or + removed must be online to proceed. + + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. requestBody: content: application/json: @@ -11402,7 +12614,7 @@ paths: version: fbc692b61ffef6fbfc38a3833f6b7e7ae508da75 tags: - SSH Key Group - '/v2/org/{org}/carbide/sshkey': + /v2/org/{org}/carbide/sshkey: parameters: - schema: type: string @@ -11434,10 +12646,12 @@ paths: '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-ssh-key - description: |- + description: >- Retrieve all SSH Keys for the current Tenant. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. tags: - SSH Key parameters: @@ -11450,7 +12664,9 @@ paths: type: string in: query name: query - description: Search for matches across all Sites. Input will be matched against name field + description: >- + Search for matches across all Sites. Input will be matched against + name field - schema: type: string enum: @@ -11514,10 +12730,13 @@ paths: $ref: '#/components/responses/ForbiddenError' tags: - SSH Key - description: |- - Create an SSH Key for the current Tenant. If an SSH Key Group is specified, all Sites associated with the SSH Key Group must be online. + description: >- + Create an SSH Key for the current Tenant. If an SSH Key Group is + specified, all Sites associated with the SSH Key Group must be online. + - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. requestBody: content: application/json: @@ -11527,9 +12746,12 @@ paths: Example 1: value: name: reno-sre-access - publicKey: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICip4hl6WjuVHs60PeikVUs0sWE/kPhk2D0rRHWsIuyL jdoe@test.com + publicKey: >- + ssh-ed25519 + AAAAC3NzaC1lZDI1NTE5AAAAICip4hl6WjuVHs60PeikVUs0sWE/kPhk2D0rRHWsIuyL + jdoe@test.com sshKeyGroupId: 86ca8cab-b285-4c2d-9e00-25c88810dc2e - '/v2/org/{org}/carbide/sshkey/{sshKeyId}': + /v2/org/{org}/carbide/sshkey/{sshKeyId}: parameters: - schema: type: string @@ -11565,12 +12787,15 @@ paths: '403': $ref: '#/components/responses/ForbiddenError' operationId: get-ssh-key - description: |- + description: >- Retrieve an SSH key for the current Tenant by ID + SSH Key must be owned by current Tenant. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. tags: - SSH Key delete: @@ -11581,12 +12806,16 @@ paths: description: Accepted '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Delete an SSH key for the current Tenant by ID. - SSH Key must be owned by current Tenant. All Site associated with the SSH Key Groups this SSH Key is part of must be online to proceed. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. + SSH Key must be owned by current Tenant. All Site associated with the + SSH Key Groups this SSH Key is part of must be online to proceed. + + + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. tags: - SSH Key patch: @@ -11613,14 +12842,19 @@ paths: $ref: '#/components/responses/ValidationError' '403': $ref: '#/components/responses/ForbiddenError' - description: |- + description: >- Update an SSH Key for the current Tenant by ID. + SSH Key must be owned by current Tenant. - Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` authorization role. - To add this SSH Key to various SSH Key Groups or remove it from an SSH Key Group, please use SSH Key Group update endpoint. + Org must have a Tenant entity. User must have `FORGE_TENANT_ADMIN` + authorization role. + + + To add this SSH Key to various SSH Key Groups or remove it from an SSH + Key Group, please use SSH Key Group update endpoint. requestBody: content: application/json: @@ -11632,7 +12866,7 @@ paths: name: reno-sre-access-v2 tags: - SSH Key - '/v2/org/{org}/carbide/user/current': + /v2/org/{org}/carbide/user/current: parameters: - schema: type: string @@ -11662,7 +12896,7 @@ paths: updated: '2019-08-24T14:15:22Z' operationId: get-user description: Retrieve details of the current user. - '/v2/org/{org}/carbide/metadata': + /v2/org/{org}/carbide/metadata: get: summary: Retrieve metadata about the API server tags: @@ -11688,7 +12922,7 @@ paths: in: path required: true description: Name of the Org - '/v2/org/{org}/carbide/audit': + /v2/org/{org}/carbide/audit: parameters: - schema: type: string @@ -11750,10 +12984,12 @@ paths: '403': $ref: '#/components/responses/ForbiddenError' operationId: get-all-audit-entry - description: | + description: > Get all Audit Log entries - User must have `FORGE_PROVIDER_ADMIN` or `FORGE_TENANT_ADMIN` authorization role. + + User must have `FORGE_PROVIDER_ADMIN` or `FORGE_TENANT_ADMIN` + authorization role. parameters: - schema: type: boolean @@ -11784,7 +13020,7 @@ paths: in: query name: orderBy description: Ordering for pagination query - '/v2/org/{org}/carbide/audit/{auditEntryId}': + /v2/org/{org}/carbide/audit/{auditEntryId}: parameters: - schema: type: string @@ -11832,10 +13068,12 @@ paths: '403': $ref: '#/components/responses/ForbiddenError' operationId: get-audit-entry - description: |- + description: >- Retrieve a specific Audit Log Entry by ID - User must have `FORGE_PROVIDER_ADMIN` or `FORGE_TENANT_ADMIN` authorization role + + User must have `FORGE_PROVIDER_ADMIN` or `FORGE_TENANT_ADMIN` + authorization role components: schemas: InfrastructureProvider: @@ -12018,7 +13256,9 @@ components: targetedInstanceCreation: type: boolean format: uuid - description: Indicates whether Tenant can create Instances by specifying Machine ID + description: >- + Indicates whether Tenant can create Instances by specifying Machine + ID readOnly: true TenantStats: title: TenantStats @@ -12146,7 +13386,7 @@ components: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -12210,7 +13450,7 @@ components: format: uuid tenantOrg: type: string - pattern: '^[A-Za-z0-9-_]+$' + pattern: ^[A-Za-z0-9-_]+$ minLength: 1 description: Must be a valid Org name required: @@ -12297,7 +13537,7 @@ components: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -12334,11 +13574,15 @@ components: description: Version of the Site Agent software registrationToken: type: string - description: Token that can be used to register a Site. Value only exposed to Provider + description: >- + Token that can be used to register a Site. Value only exposed to + Provider registrationTokenExpiration: type: string format: date-time - description: Date/time when registration token expires. Value only exposed to Provider + description: >- + Date/time when registration token expires. Value only exposed to + Provider readOnly: true serialConsoleHostname: type: string @@ -12358,7 +13602,9 @@ components: description: Maximum length of Serial Console session in seconds isSerialConsoleSSHKeysEnabled: type: boolean - description: Only visible to Tenant retrieving the Site. Indicates if Serial Console access using SSH Keys is enabled by Tenant + description: >- + Only visible to Tenant retrieving the Site. Indicates if Serial + Console access using SSH Keys is enabled by Tenant isOnline: type: boolean description: Indicates if the Site is currently reachable from Cloud @@ -12386,7 +13632,9 @@ components: SiteSummary: title: SiteSummary type: object - description: 'SiteSummary contains a subset of data for Site object, used when nesting in other objects' + description: >- + SiteSummary contains a subset of data for Site object, used when nesting + in other objects examples: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 name: San Jose Central 4 @@ -12581,26 +13829,42 @@ components: description: Update description for the Site. Can only be updated by Provider renewRegistrationToken: type: boolean - description: Set to true to issue a new registration token. Can only be updated by Provider + description: >- + Set to true to issue a new registration token. Can only be updated + by Provider serialConsoleHostname: type: string - description: Hostname to reach Serial Console for the Site. Can only be updated by Provider + description: >- + Hostname to reach Serial Console for the Site. Can only be updated + by Provider format: hostname isSerialConsoleEnabled: type: boolean - description: Enable/disable Serial Console. Can only be updated by Provider. Modifying this attribute has no actual effect on SOL. It will be removed in a future API version. + description: >- + Enable/disable Serial Console. Can only be updated by Provider. + Modifying this attribute has no actual effect on SOL. It will be + removed in a future API version. deprecated: true serialConsoleIdleTimeout: type: integer - description: Maximum idle time in seconds before Serial Console is disconnected. Can only be updated by Provider. Modifying this attribute has no actual effect on SOL. It will be removed in a future API version. + description: >- + Maximum idle time in seconds before Serial Console is disconnected. + Can only be updated by Provider. Modifying this attribute has no + actual effect on SOL. It will be removed in a future API version. deprecated: true serialConsoleMaxSessionLength: type: integer - description: Maximum length of Serial Console session in seconds. Can only be updated by Provider. Modifying this attribute has no actual effect on SOL. It will be removed in a future API version. + description: >- + Maximum length of Serial Console session in seconds. Can only be + updated by Provider. Modifying this attribute has no actual effect + on SOL. It will be removed in a future API version. deprecated: true isSerialConsoleSSHKeysEnabled: type: boolean - description: Enable/disable Serial Console access using SSH Keys. Previously updateable only by Tenants, modifying this value is no longer supported, update SSH Key Groups to remove Site instead. + description: >- + Enable/disable Serial Console access using SSH Keys. Previously + updateable only by Tenants, modifying this value is no longer + supported, update SSH Key Groups to remove Site instead. deprecated: true location: $ref: '#/components/schemas/SiteLocation' @@ -12637,7 +13901,9 @@ components: Allocation: title: Allocation type: object - description: Specifies a group of resources on a Site that has been allocated to a Tenant + description: >- + Specifies a group of resources on a Site that has been allocated to a + Tenant examples: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 name: Echo Studios Allocations @@ -12648,7 +13914,7 @@ components: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -12778,7 +14044,9 @@ components: AllocationConstraint: title: AllocationConstraint type: object - description: Constraints on an Allocation that specify limits for different resource types + description: >- + Constraints on an Allocation that specify limits for different resource + types examples: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 allocationId: 9ec871ce-3363-4de2-8f79-062881067628 @@ -12828,17 +14096,25 @@ components: resourceTypeId: type: string format: uuid - description: ID of the Resource Type that the Allocation Constraint applies to. For InstanceType, this is the ID of the Instance Type. For IPBlock, this is the ID of the IP Block. + description: >- + ID of the Resource Type that the Allocation Constraint applies to. + For InstanceType, this is the ID of the Instance Type. For IPBlock, + this is the ID of the IP Block. constraintType: type: string - description: Type of the Allocation Constraint. Please note that OnDemand and Preemptible are not supported by current implementation. + description: >- + Type of the Allocation Constraint. Please note that OnDemand and + Preemptible are not supported by current implementation. enum: - Reserved - OnDemand - Preemptible constraintValue: type: integer - description: Value of the Allocation Constraint. For InstanceType, this value represents number of Machines allocated for Tenant. For IPBlock, this value represents the prefix Length of the IP Block. + description: >- + Value of the Allocation Constraint. For InstanceType, this value + represents number of Machines allocated for Tenant. For IPBlock, + this value represents the prefix Length of the IP Block. derivedResourceId: type: - string @@ -12881,17 +14157,25 @@ components: resourceTypeId: type: string format: uuid - description: ID of the Resource Type that the Allocation Constraint applies to. For InstanceType, this is the ID of the Instance Type. For IPBlock, this is the ID of the IP Block. + description: >- + ID of the Resource Type that the Allocation Constraint applies to. + For InstanceType, this is the ID of the Instance Type. For IPBlock, + this is the ID of the IP Block. constraintType: type: string - description: Type of the Allocation Constraint. Please note that OnDemand and Preemptible are not supported by current implementation. + description: >- + Type of the Allocation Constraint. Please note that OnDemand and + Preemptible are not supported by current implementation. enum: - Reserved - OnDemand - Preemptible constraintValue: type: integer - description: Value of the Allocation Constraint. For InstanceType, this value represents number of Machines allocated for Tenant. For IPBlock, this value represents the prefix Length of the IP Block. + description: >- + Value of the Allocation Constraint. For InstanceType, this value + represents number of Machines allocated for Tenant. For IPBlock, + this value represents the prefix Length of the IP Block. required: - resourceType - resourceTypeId @@ -12906,7 +14190,10 @@ components: properties: constraintValue: type: integer - description: Value of the Allocation Constraint. For InstanceType, this value represents number of Machines allocated for Tenant. For IPBlock, this value represents the prefix Length of the IP Block. + description: >- + Value of the Allocation Constraint. For InstanceType, this value + represents number of Machines allocated for Tenant. For IPBlock, + this value represents the prefix Length of the IP Block. required: - constraintValue VPC: @@ -12941,7 +14228,7 @@ components: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -12959,7 +14246,7 @@ components: description: Name of the VPC description: type: string - description: 'Description of the VPC, can be empty' + description: Description of the VPC, can be empty org: type: string readOnly: true @@ -12978,13 +14265,22 @@ components: - string - 'null' format: uuid - description: 'Legacy attribute, contains the same value as ID' + description: Legacy attribute, contains the same value as ID networkVirtualizationType: type: string enum: - ETHERNET_VIRTUALIZER - FNN description: Network virtualization type of the VPC + routingProfile: + type: + - string + - 'null' + minLength: 3 + maxLength: 64 + description: >- + Routing profile type for the VPC. Populated when Site has Native + Networking enabled and network virtualization type is `FNN`. requestedVni: type: - integer @@ -12992,7 +14288,9 @@ components: minimum: 1 maximum: 65535 readOnly: true - description: Explicitly requested VNI for the VPC if one was requested at creation time + description: >- + Explicitly requested VNI for the VPC if one was requested at + creation time vni: type: - integer @@ -13014,7 +14312,9 @@ components: - string - 'null' format: uuid - description: ID of the default NVLink Logical Partition that GPUs for all Instances in the VPC will attach to + description: >- + ID of the default NVLink Logical Partition that GPUs for all + Instances in the VPC will attach to labels: $ref: '#/components/schemas/Labels' description: String key value pairs describing VPC labels @@ -13070,6 +14370,7 @@ components: description: Virtual network for machines executing Spark jobs siteId: 72771e6a-6f5e-4de4-a5b9-1266c4197811 networkVirtualizationType: FNN + routingProfile: internal vni: 12001 nvLinkLogicalPartitionId: dd887330-dbd3-45ce-b400-c42fc8e47315 labels: @@ -13099,7 +14400,23 @@ components: enum: - ETHERNET_VIRTUALIZER - FNN - description: 'Network virtualization type of the VPC. If no value is specified, then defaults to `FNN` if Site has native networking enabled, or ETHERNET_VIRTUALIZER if native networking is disabled' + description: >- + Network virtualization type of the VPC. If no value is specified, + then defaults to `FNN` if Site has native networking enabled, or + ETHERNET_VIRTUALIZER if native networking is disabled + routingProfile: + type: + - string + - 'null' + minLength: 3 + maxLength: 64 + description: >- + Specify routing profile for the VPC. Only supported when + `networkVirtualizationType` is set to `FNN`, or when + `networkVirtualizationType` is omitted and Site has Native + Networking enabled. Requires Tenant to have elevated privilege. + Current accepted values are `privileged-internal`, `internal`, and + `external`. networkSecurityGroupId: type: - string @@ -13117,10 +14434,14 @@ components: - string - 'null' format: uuid - description: ID of the default NVLink Logical Partition that GPUs for all Instances in the VPC will attach to + description: >- + ID of the default NVLink Logical Partition that GPUs for all + Instances in the VPC will attach to labels: $ref: '#/components/schemas/Labels' - description: String key value pairs describing VPC labels. Up to 10 key value pairs can be specified + description: >- + String key value pairs describing VPC labels. Up to 10 key value + pairs can be specified required: - name - siteId @@ -13150,14 +14471,24 @@ components: - string - 'null' format: uuid - description: ID of the default NVLink Logical Partition that GPUs for all Instances in the VPC will attach to. Can only be updated if VPC currently has no active Instances + description: >- + ID of the default NVLink Logical Partition that GPUs for all + Instances in the VPC will attach to. Can only be updated if VPC + currently has no active Instances labels: $ref: '#/components/schemas/Labels' - description: 'Update labels of the VPC. Up to 10 key value pairs can be specified. The labels will be entirely replaced by those sent in the request. Any labels not included in the request will be removed. To retain existing labels, first fetch them and include them along with this request.' + description: >- + Update labels of the VPC. Up to 10 key value pairs can be specified. + The labels will be entirely replaced by those sent in the request. + Any labels not included in the request will be removed. To retain + existing labels, first fetch them and include them along with this + request. VpcVirtualizationUpdateRequest: title: VpcVirtualizationUpdateRequest type: object - description: Request data to update network virtualization type for VPC. Requests are rejected if the VPC already has Subnets or Instances. + description: >- + Request data to update network virtualization type for VPC. Requests are + rejected if the VPC already has Subnets or Instances. examples: - networkVirtualizationType: FNN properties: @@ -13169,7 +14500,9 @@ components: VpcPeeringCreateRequest: title: VpcPeeringCreateRequest type: object - description: Request data to create a VPC peering between two VPCs, the ordering of VPCs is not important + description: >- + Request data to create a VPC peering between two VPCs, the ordering of + VPCs is not important required: - vpc1Id - vpc2Id @@ -13215,7 +14548,9 @@ components: isMultiTenant: type: boolean readOnly: true - description: Indicates if this is a multi-tenant peering (VPCs from different tenants) + description: >- + Indicates if this is a multi-tenant peering (VPCs from different + tenants) status: $ref: '#/components/schemas/VpcPeeringStatus' readOnly: true @@ -13257,7 +14592,7 @@ components: status: Ready statusHistory: - status: Ready - message: 'Received VPC prefix creation request, ready' + message: Received VPC prefix creation request, ready created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -13300,7 +14635,9 @@ components: minimum: 8 maximum: 31 example: 24 - description: Length of the prefix. Valid range is 8 to 31, and max usable value depends on prefix length of parent IP Block. + description: >- + Length of the prefix. Valid range is 8 to 31, and max usable value + depends on prefix length of parent IP Block. status: $ref: '#/components/schemas/VpcPrefixStatus' readOnly: true @@ -13351,14 +14688,18 @@ components: ipBlockId: type: string format: uuid + description: ID of the IP Block to allocate the VPC Prefix from prefixLength: type: integer minimum: 8 maximum: 31 - description: Prefix length for the VPC Prefix. Valid range is 8 to 31, and max usable value depends on prefix length of parent IP Block. + description: >- + Prefix length for the VPC Prefix. Valid range is 8 to 31, and max + usable value depends on prefix length of parent IP Block. required: - name - vpcId + - ipBlockId - prefixLength VpcPrefixUpdateRequest: title: VpcPrefixUpdateRequest @@ -13396,7 +14737,7 @@ components: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -13459,7 +14800,9 @@ components: format: ipv6 mtu: type: integer - description: Maximum Transmission Unit size in bytes. This property is system-determined and read-only. + description: >- + Maximum Transmission Unit size in bytes. This property is + system-determined and read-only. readOnly: true prefixLength: type: integer @@ -13567,7 +14910,7 @@ components: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -13647,7 +14990,9 @@ components: readOnly: true labels: $ref: '#/components/schemas/Labels' - description: String key value pairs describing InfiniBand Partition labels. Up to 10 key value pairs can be specified + description: >- + String key value pairs describing InfiniBand Partition labels. Up to + 10 key value pairs can be specified status: $ref: '#/components/schemas/InfiniBandPartitionStatus' readOnly: true @@ -13697,7 +15042,9 @@ components: description: ID of the Site the Partition should belong to labels: $ref: '#/components/schemas/Labels' - description: String key value pairs describing Partition labels. Up to 10 key value pairs can be specified + description: >- + String key value pairs describing Partition labels. Up to 10 key + value pairs can be specified required: - name - siteId @@ -13717,13 +15064,17 @@ components: type: string labels: $ref: '#/components/schemas/Labels' - description: String key value pairs describing Partition labels. Up to 10 key value pairs can be specified + description: >- + String key value pairs describing Partition labels. Up to 10 key + value pairs can be specified required: - name NVLinkLogicalPartition: title: NVLinkLogicalPartition type: object - description: NVLink Logical Partitions are logical GPU fabric segments for high bandwidth communication among selective GPUs + description: >- + NVLink Logical Partitions are logical GPU fabric segments for high + bandwidth communication among selective GPUs examples: - id: ded96bdf-905e-40dd-8a58-3472aab60042 name: partition-east-gpu @@ -13733,7 +15084,7 @@ components: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -13833,17 +15184,25 @@ components: OperatingSystem: title: OperatingSystem type: object - description: Describes the attributes of the operating system/bootloader that can be used on instances + description: >- + Describes the attributes of the operating system/bootloader that can be + used on instances examples: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 name: ubuntu-22.04 description: Ubuntu 22.04 infrastructureProviderId: null tenantId: f97df110-f4de-492e-8849-4a6af68026b0 - ipxeScript: |- + ipxeScript: >- #!ipxe - kernel http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux initrd=initrd.gz - initrd http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + + kernel + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux + initrd=initrd.gz + + initrd + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + boot || imgfree shell userData: |- @@ -13868,7 +15227,7 @@ components: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -13879,7 +15238,8 @@ components: infrastructureProviderId: null tenantId: f97df110-f4de-492e-8849-4a6af68026b0 type: Image - imageUrl: 'https://saimei.ftp.acc.umu.se/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2' + imageUrl: >- + https://saimei.ftp.acc.umu.se/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2 imageSha: 2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae imageAuthType: Bearer imageAuthToken: acbd18db4cc2f85cedef654fccc4a4d8 @@ -13931,7 +15291,7 @@ components: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 @@ -13939,10 +15299,16 @@ components: description: Ubuntu 22.04 infrastructureProviderId: null tenantId: f97df110-f4de-492e-8849-4a6af68026b0 - ipxeScript: |- + ipxeScript: >- #!ipxe - kernel http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux initrd=initrd.gz - initrd http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + + kernel + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux + initrd=initrd.gz + + initrd + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + boot || imgfree shell userData: |- @@ -13962,7 +15328,9 @@ components: isCloudInit: true phoneHomeEnabled: true isActive: false - deactivationNote: 'iPXE script is referencing a URL that is unreachable, needs to be researched' + deactivationNote: >- + iPXE script is referencing a URL that is unreachable, needs to be + researched allowOverride: false status: Deactivated statusHistory: @@ -13975,7 +15343,7 @@ components: created: '2019-08-24T14:17:34Z' updated: '2019-08-24T14:17:34Z' - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -14022,7 +15390,7 @@ components: type: - string - 'null' - description: 'SHA hash of the image file, only present for image based OS' + description: SHA hash of the image file, only present for image based OS imageAuthType: type: - string @@ -14042,17 +15410,21 @@ components: type: - string - 'null' - description: 'Root filesystem UUID, only applicable for image based Operating System' + description: >- + Root filesystem UUID, only applicable for image based Operating + System rootFsLabel: type: - string - 'null' - description: 'Root filesystem label, only applicable for image based Operating System' + description: >- + Root filesystem label, only applicable for image based Operating + System ipxeScript: type: - string - 'null' - description: 'iPXE script or URL, only applicable for iPXE based Operating System' + description: iPXE script or URL, only applicable for iPXE based Operating System userData: type: - string @@ -14063,7 +15435,9 @@ components: description: Specified when the Operating System is Cloud Init based phoneHomeEnabled: type: boolean - description: Indicates whether the Phone Home service should be enabled or disabled for Operating System + description: >- + Indicates whether the Phone Home service should be enabled or + disabled for Operating System isActive: type: boolean description: Indicates if the Operating System is active @@ -14074,7 +15448,9 @@ components: description: Optional deactivation note if OS is inactive allowOverride: type: boolean - description: Indicates if the user data can be overridden at Instance creation time + description: >- + Indicates if the user data can be overridden at Instance creation + time siteAssociations: type: array description: Sites the Operating System is synced to @@ -14156,10 +15532,16 @@ components: - name: ubuntu-official-22.04 description: Official Ubuntu 22.04 tenantId: f97df110-f4de-492e-8849-4a6af68026b0 - ipxeScript: |- + ipxeScript: >- #!ipxe - kernel http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux initrd=initrd.gz - initrd http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + + kernel + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux + initrd=initrd.gz + + initrd + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + boot || imgfree shell userData: |- @@ -14181,7 +15563,8 @@ components: tenantId: f97df110-f4de-492e-8849-4a6af68026b0 siteIds: - 497f6eca-6276-4993-bfeb-53cbbbba6f08 - imageUrl: 'https://saimei.ftp.acc.umu.se/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2' + imageUrl: >- + https://saimei.ftp.acc.umu.se/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2 imageSha: 2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae imageAuthType: Bearer imageAuthToken: acbd18db4cc2f85cedef654fccc4a4d8 @@ -14204,7 +15587,9 @@ components: - string - 'null' format: uuid - description: 'Deprecated: Infrastructure Provider is now inferred from org membership.' + description: >- + Deprecated: Infrastructure Provider is now inferred from org + membership. deprecated: true tenantId: type: @@ -14218,53 +15603,70 @@ components: items: type: string format: uuid - description: 'Specified only one Site if an Operating System is Image based, more than one Site is not supported"' + description: >- + Specified only one Site if an Operating System is Image based, more + than one Site is not supported" ipxeScript: type: - string - 'null' - description: 'iPXE script or URL, only applicable for iPXE based OS. Cannot be specified if imageUrl is specified' + description: >- + iPXE script or URL, only applicable for iPXE based OS. Cannot be + specified if imageUrl is specified imageUrl: type: - string - 'null' format: uri - description: 'Original URL from where the Operating System image can be retreived from, required for image based OS. Cannot be specified if ipxeScript is specified' + description: >- + Original URL from where the Operating System image can be retreived + from, required for image based OS. Cannot be specified if ipxeScript + is specified imageSha: type: - string - 'null' - description: 'SHA hash of the image file, required for image based OS' + description: SHA hash of the image file, required for image based OS imageAuthType: type: - string - 'null' - description: 'Authentication type for image URL if needed e.g. basic/bearer/token, required is imageAuthToken is specified' + description: >- + Authentication type for image URL if needed e.g. basic/bearer/token, + required is imageAuthToken is specified imageAuthToken: type: - string - 'null' - description: 'Auth token to retrieve the image from image URL, required if imageAuthType is specified' + description: >- + Auth token to retrieve the image from image URL, required if + imageAuthType is specified imageDisk: type: - string - 'null' - description: 'Disk path where the image should be mounted, optional' + description: Disk path where the image should be mounted, optional rootFsId: type: - string - 'null' - description: 'Root filesystem UUID, this or `rootFsLabel` required for image based OS' + description: >- + Root filesystem UUID, this or `rootFsLabel` required for image based + OS rootFsLabel: type: - string - 'null' - description: 'Root filesystem label, this or `rootFsId` required for image based OS' + description: >- + Root filesystem label, this or `rootFsId` required for image based + OS phoneHomeEnabled: type: - boolean - 'null' - description: Indicates whether the Phone Home service should be enabled or disabled for Operating System + description: >- + Indicates whether the Phone Home service should be enabled or + disabled for Operating System userData: type: - string @@ -14275,7 +15677,9 @@ components: description: Specified when the Operating System is Cloud Init based allowOverride: type: boolean - description: Indicates if the user data can be overridden at Instance creation time + description: >- + Indicates if the user data can be overridden at Instance creation + time required: - name OperatingSystemUpdateRequest: @@ -14288,7 +15692,8 @@ components: allowOverride: false - name: debian-12-amd64 description: Official Debian 12 for AMD/Intel - imageUrl: 'https://saimei.ftp.acc.umu.se/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2' + imageUrl: >- + https://saimei.ftp.acc.umu.se/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2 imageSha: 2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae imageAuthType: Bearer imageAuthToken: acbd18db4cc2f85cedef654fccc4a4d8 @@ -14297,8 +15702,13 @@ components: isCloudInit: true allowOverride: false - isActive: false - deactivationNote: 'iPXE script is referencing a URL that is unreachable, needs to be researched' - description: Request data to update an OperatingSystem. Only image related attributes can be updated for image based OS and only iPXE attributes can be updated for iPXE based OS + deactivationNote: >- + iPXE script is referencing a URL that is unreachable, needs to be + researched + description: >- + Request data to update an OperatingSystem. Only image related attributes + can be updated for image based OS and only iPXE attributes can be + updated for iPXE based OS properties: name: type: @@ -14316,48 +15726,62 @@ components: type: - string - 'null' - description: 'iPXE script or URL, only applicable for iPXE based OS. Cannot be specified if imageUrl is specified' + description: >- + iPXE script or URL, only applicable for iPXE based OS. Cannot be + specified if imageUrl is specified imageUrl: type: - string - 'null' format: uri - description: 'Original URL from where the Operating System image can be retreived from, required for image based OS' + description: >- + Original URL from where the Operating System image can be retreived + from, required for image based OS imageSha: type: - string - 'null' - description: 'SHA hash of the image file, required for image based OS' + description: SHA hash of the image file, required for image based OS imageAuthType: type: - string - 'null' - description: 'Authentication type for image URL if needed e.g. basic/bearer/token, required is imageAuthToken is specified' + description: >- + Authentication type for image URL if needed e.g. basic/bearer/token, + required is imageAuthToken is specified imageAuthToken: type: - string - 'null' - description: 'Auth token to retrieve the image from image URL, required if imageAuthType is specified' + description: >- + Auth token to retrieve the image from image URL, required if + imageAuthType is specified imageDisk: type: - string - 'null' - description: 'Disk path where the image should be mounted, optional' + description: Disk path where the image should be mounted, optional rootFsId: type: - string - 'null' - description: 'Root filesystem UUID, this or `rootFsLabel` required for image based OS' + description: >- + Root filesystem UUID, this or `rootFsLabel` required for image based + OS rootFsLabel: type: - string - 'null' - description: 'Root filesystem label, this or `rootFsId` required for image based OS' + description: >- + Root filesystem label, this or `rootFsId` required for image based + OS phoneHomeEnabled: type: - boolean - 'null' - description: Indicates whether the Phone Home service should be enabled or disabled for Operating System + description: >- + Indicates whether the Phone Home service should be enabled or + disabled for Operating System userData: type: - string @@ -14372,7 +15796,9 @@ components: type: - boolean - 'null' - description: Indicates if the user data can be overridden at Instance creation time + description: >- + Indicates if the user data can be overridden at Instance creation + time isActive: type: - boolean @@ -14390,7 +15816,7 @@ components: examples: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 name: x3.large - description: 'Part of X family, the X3 Large features increased compute power' + description: Part of X family, the X3 Large features increased compute power infrastructureProviderId: 5f2cc306-76e9-4fca-9186-950c9ef9a74e siteId: 72771e6a-6f5e-4de4-a5b9-1266c4197811 labels: @@ -14412,17 +15838,21 @@ components: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' deprecations: - queryParam: includeMachineAssociation replacedBy: includeMachineAssignment takeActionBy: '2023-07-26T00:00:00Z' - notice: '''includeMachineAssociation'' has been deprecated in favor of ''includeMachineAssignment''. Please take action immediately.' + notice: >- + 'includeMachineAssociation' has been deprecated in favor of + 'includeMachineAssignment'. Please take action immediately. - attribute: displayName takeActionBy: '2024-10-30T00:00:00Z' - notice: '''displayName'' has been deprecated. Please take action immediately.' + notice: >- + 'displayName' has been deprecated. Please take action + immediately. created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' properties: @@ -14530,25 +15960,36 @@ components: description: Total number of Machines assigned to this Instance Type total: type: integer - description: Total number of Machines allocated to different Tenants for this Instance Type + description: >- + Total number of Machines allocated to different Tenants for this + Instance Type used: type: integer - description: Total number of allocated Machines of this Instance Type currently being used by Tenants + description: >- + Total number of allocated Machines of this Instance Type currently + being used by Tenants unused: type: integer - description: Total number of allocated Machines of this Instance Type that is currently not being used by Tenants + description: >- + Total number of allocated Machines of this Instance Type that is + currently not being used by Tenants unusedUsable: type: integer - description: 'Total number of allocated Machines of this Instance Type that is currently not in use but in Ready state, therefore can be provisioned by Tenant' + description: >- + Total number of allocated Machines of this Instance Type that is + currently not in use but in Ready state, therefore can be + provisioned by Tenant maxAllocatable: type: integer - description: Maximum number of Machines of this Instance Type that can be allocated to a Tenant + description: >- + Maximum number of Machines of this Instance Type that can be + allocated to a Tenant InstanceTypeCreateRequest: title: InstanceTypeCreateRequest type: object examples: - name: x3.large - description: 'Part of X family, the X3 Large features increased compute power' + description: Part of X family, the X3 Large features increased compute power siteId: 8d97fa69-9199-49ff-bcf3-168c62d3874e labels: region: portland @@ -14629,7 +16070,7 @@ components: capacity: 80GB count: 2 - type: InfiniBand - name: 'MT2910 Family [ConnectX-7]' + name: MT2910 Family [ConnectX-7] vendor: Mellanox Technologies inactiveDevices: - 1 @@ -14658,17 +16099,17 @@ components: type: - string - 'null' - description: 'Frequency of the Capability component, if available' + description: Frequency of the Capability component, if available capacity: type: - string - 'null' - description: 'Capacity of the Capability component, if applicable' + description: Capacity of the Capability component, if applicable vendor: type: - string - 'null' - description: 'Vendor of the Capability component, if available' + description: Vendor of the Capability component, if available count: type: - integer @@ -14676,14 +16117,16 @@ components: description: Count of the Capability component inactiveDevices: type: array - description: 'Indices of those devices that are inactive, only valid for InfiniBand Capability type' + description: >- + Indices of those devices that are inactive, only valid for + InfiniBand Capability type items: type: integer deviceType: type: - string - 'null' - description: 'Device Type of the Capability component, if available' + description: Device Type of the Capability component, if available Instance: title: Instance type: object @@ -14718,7 +16161,7 @@ components: region: portland env: staging isUpdatePending: false - serialConsoleUrl: 'ssh://user@carbide.acme.com' + serialConsoleUrl: ssh://user@carbide.acme.com interfaces: - id: 64d2028c-ae87-4069-a624-66089d957ef9 instanceId: 497f6eca-6276-4993-bfeb-53cbbbba6f08 @@ -14734,7 +16177,7 @@ components: - id: c518a0e8-3f49-4a1a-8935-a6d3dee6911e instanceId: 497f6eca-6276-4993-bfeb-53cbbbba6f08 partitionId: 05ef7e84-1d4e-4e4d-980d-38589479a0fe - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 0 isPhysical: true virtualFunctionId: null @@ -14786,18 +16229,21 @@ components: status: Syncing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - tpmEkCertificate: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMxVENDQWJ5Z0F3SUJBZ0lVTEE1ZHFPK1E5OXZQM3VYRTRKcjBncVRtOW93d0RRWUpLb1pJaHZjTkFRRUwKQlFBd0xqRUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQW9NQ2s1MmFXUnBZU0JEYjNKNw== + tpmEkCertificate: >- + LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMxVENDQWJ5Z0F3SUJBZ0lVTEE1ZHFPK1E5OXZQM3VYRTRKcjBncVRtOW93d0RRWUpLb1pJaHZjTkFRRUwKQlFBd0xqRUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQW9NQ2s1MmFXUnBZU0JEYjNKNw== status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' deprecations: - attribute: sshkeygroups replacedBy: sshKeyGroups takeActionBy: '2025-09-04T00:00:00Z' - notice: '''sshkeygroups'' is being deprecated in favor of ''sshKeyGroups''. Please take action prior to the specified date.' + notice: >- + 'sshkeygroups' is being deprecated in favor of 'sshKeyGroups'. + Please take action prior to the specified date. created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - id: f61fbc1b-ba32-4476-aab5-5ac7c64c3f26 @@ -14820,7 +16266,7 @@ components: region: portland env: staging isUpdatePending: false - serialConsoleUrl: 'ssh://user@carbide.acme.com' + serialConsoleUrl: ssh://user@carbide.acme.com interfaces: - id: 64d2028c-ae87-4069-a624-66089d957ef9 instanceId: 497f6eca-6276-4993-bfeb-53cbbbba6f08 @@ -14836,7 +16282,7 @@ components: - id: c518a0e8-3f49-4a1a-8935-a6d3dee6911e instanceId: 497f6eca-6276-4993-bfeb-53cbbbba6f08 partitionId: 05ef7e84-1d4e-4e4d-980d-38589479a0fe - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 0 isPhysical: true virtualFunctionId: null @@ -14866,18 +16312,21 @@ components: status: Syncing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - tpmEkCertificate: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMxVENDQWJ5Z0F3SUJBZ0lVTEE1ZHFPK1E5OXZQM3VYRTRKcjBncVRtOW93d0RRWUpLb1pJaHZjTkFRRUwKQlFBd0xqRUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQW9NQ2s1MmFXUnBZU0JEYjNKNw== + tpmEkCertificate: >- + LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMxVENDQWJ5Z0F3SUJBZ0lVTEE1ZHFPK1E5OXZQM3VYRTRKcjBncVRtOW93d0RRWUpLb1pJaHZjTkFRRUwKQlFBd0xqRUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQW9NQ2s1MmFXUnBZU0JEYjNKNw== status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' deprecations: - attribute: sshkeygroups replacedBy: sshKeyGroups takeActionBy: '2025-09-04T00:00:00Z' - notice: '''sshkeygroups'' is being deprecated in favor of ''sshKeyGroups''. Please take action prior to the specified date.' + notice: >- + 'sshkeygroups' is being deprecated in favor of 'sshKeyGroups'. + Please take action prior to the specified date. created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' properties: @@ -14901,7 +16350,9 @@ components: infrastructureProviderId: type: string format: uuid - description: ID of the Infrastructure Provider that owns the Site where the Instance is located + description: >- + ID of the Infrastructure Provider that owns the Site where the + Instance is located siteId: type: string format: uuid @@ -14946,10 +16397,14 @@ components: - 'null' alwaysBootWithCustomIpxe: type: boolean - description: Indicates whether the Instance should always execute custom iPXE script when rebooting + description: >- + Indicates whether the Instance should always execute custom iPXE + script when rebooting phoneHomeEnabled: type: boolean - description: Indicates whether the Phone Home service should be enabled or disabled for Instance + description: >- + Indicates whether the Phone Home service should be enabled or + disabled for Instance userData: type: - string @@ -14958,12 +16413,16 @@ components: $ref: '#/components/schemas/Labels' isUpdatePending: type: boolean - description: Indicates whether an update is available for the Instance. Updates can be applied on reboot + description: >- + Indicates whether an update is available for the Instance. Updates + can be applied on reboot serialConsoleUrl: type: - string - 'null' - description: 'Serial Console URL for the Instance. Format: ssh://@siteSerialConsoleHostname' + description: >- + Serial Console URL for the Instance. Format: + ssh://@siteSerialConsoleHostname interfaces: type: array items: @@ -15039,10 +16498,16 @@ components: instanceTypeId: 41e36058-8403-4086-a9b8-39cb5bc9cb98 vpcId: 5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3 operatingSystemId: eaeb86ee-c435-444e-9e01-8346f67f194b - ipxeScript: |- + ipxeScript: >- #!ipxe - kernel http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux initrd=initrd.gz - initrd http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + + kernel + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux + initrd=initrd.gz + + initrd + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + boot || imgfree shell alwaysBootWithCustomIpxe: true @@ -15071,7 +16536,7 @@ components: isPhysical: true infinibandInterfaces: - partitionId: 4f4decba-7d7f-46b9-9e5f-e5d71c2e0666 - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 0 isPhysical: true virtualFunctionId: null @@ -15092,10 +16557,16 @@ components: instanceTypeId: 41e36058-8403-4086-a9b8-39cb5bc9cb98 vpcId: ebcd2d2a-deca-4ac4-b079-d7a97fff8a6b operatingSystemId: eaeb86ee-c435-444e-9e01-8346f67f194b - ipxeScript: |- + ipxeScript: >- #!ipxe - kernel http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux initrd=initrd.gz - initrd http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + + kernel + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux + initrd=initrd.gz + + initrd + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + boot || imgfree shell alwaysBootWithCustomIpxe: true @@ -15167,7 +16638,7 @@ components: type: - string - 'null' - description: 'Description of the Instance, optional' + description: Description of the Instance, optional maxLength: 1024 tenantId: type: string @@ -15179,7 +16650,9 @@ components: description: ID of the Instance Type to use for Instance machineId: type: string - description: ID of of specific Machine to use for Instance. Requires Targeted Instance Creation capability enabled for Tenant + description: >- + ID of of specific Machine to use for Instance. Requires Targeted + Instance Creation capability enabled for Tenant vpcId: type: string format: uuid @@ -15187,7 +16660,11 @@ components: secondaryVpcIds: type: array uniqueItems: true - description: IDs of additional VPCs the Instance should attach to through non-primary interfaces. This field may only be specified when every entry in `interfaces` uses `vpcPrefixId`. IDs must be unique, must be valid UUIDs, and must not include the primary `vpcId`. + description: >- + IDs of additional VPCs the Instance should attach to through + non-primary interfaces. This field may only be specified when every + entry in `interfaces` uses `vpcPrefixId`. IDs must be unique, must + be valid UUIDs, and must not include the primary `vpcId`. items: type: string format: uuid @@ -15195,7 +16672,9 @@ components: type: - string - 'null' - description: Can only be specified if allowOverride is set to true in Operating System + description: >- + Can only be specified if allowOverride is set to true in Operating + System operatingSystemId: type: - string @@ -15210,18 +16689,31 @@ components: type: - string - 'null' - description: 'Override iPXE script specified in OS, must be specified if Operating System is not specified' + description: >- + Override iPXE script specified in OS, must be specified if Operating + System is not specified alwaysBootWithCustomIpxe: type: boolean - description: 'When set to true, the iPXE script specified by OS or overridden here will always be run when rebooting the Instance. OS must be of iPXE type.' + description: >- + When set to true, the iPXE script specified by OS or overridden here + will always be run when rebooting the Instance. OS must be of iPXE + type. phoneHomeEnabled: type: boolean - description: 'When set to true, the Instance will be enabled with the Phone Home service.' + description: >- + When set to true, the Instance will be enabled with the Phone Home + service. labels: $ref: '#/components/schemas/Labels' interfaces: type: array - description: 'At least one interface must be specified. Either Subnet or VPC Prefix interfaces allowed. Only one of the Subnets or VPC Prefixes can be attached over Physical interface. If only one Subnet is specified, then it will be attached over physical interface regardless of the value of isPhysical. In case of VPC Prefix, isPhysical will always be true' + description: >- + At least one interface must be specified. Either Subnet or VPC + Prefix interfaces allowed. Only one of the Subnets or VPC Prefixes + can be attached over Physical interface. If only one Subnet is + specified, then it will be attached over physical interface + regardless of the value of isPhysical. In case of VPC Prefix, + isPhysical will always be true items: $ref: '#/components/schemas/InterfaceCreateRequest' infinibandInterfaces: @@ -15236,18 +16728,28 @@ components: $ref: '#/components/schemas/DpuExtensionServiceDeploymentRequest' nvLinkInterfaces: type: array - description: Define Interfaces to associate Instance GPUs with NVLink Logical Partitions. A subset of GPUs may be specified (it is not required to include all GPUs). Each item references one GPU index (`deviceInstance`) and one NVLink Logical Partition. Different interfaces may reference different NVLink Logical Partitions. + description: >- + Define Interfaces to associate Instance GPUs with NVLink Logical + Partitions. A subset of GPUs may be specified (it is not required to + include all GPUs). Each item references one GPU index + (`deviceInstance`) and one NVLink Logical Partition. Different + interfaces may reference different NVLink Logical Partitions. items: $ref: '#/components/schemas/NVLinkInterfaceCreateRequest' sshKeyGroupIds: type: array - description: Specify list of SSH Key Group IDs that will provide Serial over LAN access + description: >- + Specify list of SSH Key Group IDs that will provide Serial over LAN + access items: type: string format: uuid allowUnhealthyMachine: type: boolean - description: Set to true in order to target Machines are in maintenance or have health alerts preventing regular provision flow. Requires Targeted Instance Creation capability enabled for Tenant + description: >- + Set to true in order to target Machines are in maintenance or have + health alerts preventing regular provision flow. Requires Targeted + Instance Creation capability enabled for Tenant required: - name - tenantId @@ -15256,7 +16758,10 @@ components: BatchInstanceCreateRequest: title: BatchInstanceCreateRequest type: object - description: Request data to batch create multiple Instances with topology-optimized machine allocation. Explicit interface `ipAddress` values are not supported in batch requests. + description: >- + Request data to batch create multiple Instances with topology-optimized + machine allocation. Explicit interface `ipAddress` values are not + supported in batch requests. examples: - namePrefix: gpu-worker count: 4 @@ -15274,7 +16779,7 @@ components: isPhysical: true infinibandInterfaces: - partitionId: 4f4decba-7d7f-46b9-9e5f-e5d71c2e0666 - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 0 isPhysical: true nvLinkInterfaces: @@ -15305,17 +16810,22 @@ components: type: string minLength: 2 maxLength: 240 - description: Prefix for instance names. Instances will be named with this prefix followed by a random 6-character suffix (e.g., "worker" becomes "worker-abc123") + description: >- + Prefix for instance names. Instances will be named with this prefix + followed by a random 6-character suffix (e.g., "worker" becomes + "worker-abc123") count: type: integer minimum: 2 maximum: 18 - description: Number of instances to create in this batch. Minimum 2, maximum 18 (limited by topology domain size) + description: >- + Number of instances to create in this batch. Minimum 2, maximum 18 + (limited by topology domain size) description: type: - string - 'null' - description: 'Description applied to all instances in the batch, optional' + description: Description applied to all instances in the batch, optional maxLength: 1024 tenantId: type: string @@ -15332,7 +16842,11 @@ components: secondaryVpcIds: type: array uniqueItems: true - description: IDs of additional VPCs the Instances should attach to through non-primary interfaces. This field may only be specified when every entry in `interfaces` uses `vpcPrefixId`. IDs must be unique, must be valid UUIDs, and must not include the primary `vpcId`. + description: >- + IDs of additional VPCs the Instances should attach to through + non-primary interfaces. This field may only be specified when every + entry in `interfaces` uses `vpcPrefixId`. IDs must be unique, must + be valid UUIDs, and must not include the primary `vpcId`. items: type: string format: uuid @@ -15340,7 +16854,9 @@ components: type: - string - 'null' - description: User data applied to all instances. Can only be specified if allowOverride is set to true in Operating System + description: >- + User data applied to all instances. Can only be specified if + allowOverride is set to true in Operating System operatingSystemId: type: - string @@ -15357,18 +16873,30 @@ components: type: - string - 'null' - description: 'Override iPXE script specified in OS, must be specified if Operating System is not specified' + description: >- + Override iPXE script specified in OS, must be specified if Operating + System is not specified alwaysBootWithCustomIpxe: type: boolean - description: 'When set to true, the iPXE script specified by OS or overridden here will always be run when rebooting the Instances. OS must be of iPXE type.' + description: >- + When set to true, the iPXE script specified by OS or overridden here + will always be run when rebooting the Instances. OS must be of iPXE + type. phoneHomeEnabled: type: boolean - description: 'When set to true, the Instances will be enabled with the Phone Home service.' + description: >- + When set to true, the Instances will be enabled with the Phone Home + service. labels: $ref: '#/components/schemas/Labels' interfaces: type: array - description: 'Interface configuration shared across all instances. At least one interface must be specified. Either Subnet or VPC Prefix interfaces allowed, only one of the Subnets or VPC Prefixes can be attached over Physical interface. Interface `ipAddress` is not supported for batch instance creation requests.' + description: >- + Interface configuration shared across all instances. At least one + interface must be specified. Either Subnet or VPC Prefix interfaces + allowed, only one of the Subnets or VPC Prefixes can be attached + over Physical interface. Interface `ipAddress` is not supported for + batch instance creation requests. items: $ref: '#/components/schemas/InterfaceCreateRequest' infinibandInterfaces: @@ -15383,19 +16911,28 @@ components: $ref: '#/components/schemas/DpuExtensionServiceDeploymentRequest' nvLinkInterfaces: type: array - description: NVLink interface configuration shared across all instances. A subset of GPUs may be specified. Each item references one GPU index (`deviceInstance`) and one NVLink Logical Partition. Different interfaces may reference different NVLink Logical Partitions. + description: >- + NVLink interface configuration shared across all instances. A subset + of GPUs may be specified. Each item references one GPU index + (`deviceInstance`) and one NVLink Logical Partition. Different + interfaces may reference different NVLink Logical Partitions. items: $ref: '#/components/schemas/NVLinkInterfaceCreateRequest' sshKeyGroupIds: type: array - description: SSH Key Group IDs that will provide Serial over LAN access to all instances + description: >- + SSH Key Group IDs that will provide Serial over LAN access to all + instances items: type: string format: uuid topologyOptimized: type: boolean default: true - description: 'When true (default), all instances must be allocated on machines within the same NVLink domain. When false, instances can be spread across different NVLink domains.' + description: >- + When true (default), all instances must be allocated on machines + within the same NVLink domain. When false, instances can be spread + across different NVLink domains. required: - namePrefix - count @@ -15413,10 +16950,16 @@ components: sshKeyGroupIds: - a7bf2f9c-12f0-4673-be47-12be6d9e16c8 operatingSystemId: eaeb86ee-c435-444e-9e01-8346f67f194b - ipxeScript: |- + ipxeScript: >- #!ipxe - kernel http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux initrd=initrd.gz - initrd http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + + kernel + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux + initrd=initrd.gz + + initrd + http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz + boot || imgfree shell userData: |- @@ -15441,17 +16984,17 @@ components: isPhysical: true infinibandInterfaces: - partitionId: 550e8400-e29b-41d4-a716-446655440000 - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 0 isPhysical: true virtualFunctionId: null - partitionId: 6ba7b810-9dad-11d1-80b4-00c04fd430c8 - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 1 isPhysical: false virtualFunctionId: null - partitionId: 8b05d5c3-8de4-48c8-8d1c-399a8abc3ab8 - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 2 isPhysical: false virtualFunctionId: null @@ -15494,12 +17037,17 @@ components: type: - boolean - 'null' - description: 'When specified along with triggerReboot, the Instance will boot using the custom iPXE specified by OS. If Instance has alwaysBootWithCustomIpxe flag set then this value will be ignored.' + description: >- + When specified along with triggerReboot, the Instance will boot + using the custom iPXE specified by OS. If Instance has + alwaysBootWithCustomIpxe flag set then this value will be ignored. applyUpdatesOnReboot: type: - boolean - 'null' - description: 'When specified, any updates pending for the Instance e.g. DPU reprovisioning, will be applied on reboot' + description: >- + When specified, any updates pending for the Instance e.g. DPU + reprovisioning, will be applied on reboot operatingSystemId: type: - string @@ -15512,7 +17060,9 @@ components: description: The iPXE script content to be used for booting. sshKeyGroupIds: type: array - description: Specify a new list of SSH Key Group IDs that will provide Serial over LAN and SSH access. This will overwrite an existing list. + description: >- + Specify a new list of SSH Key Group IDs that will provide Serial + over LAN and SSH access. This will overwrite an existing list. items: type: string format: uuid @@ -15524,7 +17074,9 @@ components: type: - string - 'null' - description: 'Any user-data to be sent to the booting OS. For example, cloud-init data.' + description: >- + Any user-data to be sent to the booting OS. For example, cloud-init + data. alwaysBootWithCustomIpxe: type: - boolean @@ -15534,14 +17086,24 @@ components: type: - boolean - 'null' - description: Indicates whether the Phone Home service should be enabled or disabled for Instance + description: >- + Indicates whether the Phone Home service should be enabled or + disabled for Instance labels: $ref: '#/components/schemas/Labels' - description: 'Update labels of the Instance. The labels will be entirely replaced by those sent in the request. Any labels not included in the request will be removed. To retain existing labels, first fetch them and include them along with this request.' + description: >- + Update labels of the Instance. The labels will be entirely replaced + by those sent in the request. Any labels not included in the request + will be removed. To retain existing labels, first fetch them and + include them along with this request. secondaryVpcIds: type: array uniqueItems: true - description: IDs of additional VPCs the Instance should attach to through non-primary interfaces. This field may only be specified when every entry in `interfaces` uses `vpcPrefixId`. IDs must be unique, must be valid UUIDs, and must not include the primary `vpcId`. + description: >- + IDs of additional VPCs the Instance should attach to through + non-primary interfaces. This field may only be specified when every + entry in `interfaces` uses `vpcPrefixId`. IDs must be unique, must + be valid UUIDs, and must not include the primary `vpcId`. items: type: string format: uuid @@ -15557,12 +17119,18 @@ components: $ref: '#/components/schemas/InfiniBandInterfaceCreateRequest' nvLinkInterfaces: type: array - description: Update NVLink Interfaces of the Instance. A subset of GPUs may be specified. Each item references one GPU index (`deviceInstance`) and one NVLink Logical Partition. Different interfaces may reference different NVLink Logical Partitions. + description: >- + Update NVLink Interfaces of the Instance. A subset of GPUs may be + specified. Each item references one GPU index (`deviceInstance`) and + one NVLink Logical Partition. Different interfaces may reference + different NVLink Logical Partitions. items: $ref: '#/components/schemas/NVLinkInterfaceCreateRequest' dpuExtensionServiceDeployments: type: array - description: Updated set of DPU Extension Services to deploy to the DPUs of this Instance + description: >- + Updated set of DPU Extension Services to deploy to the DPUs of this + Instance items: $ref: '#/components/schemas/DpuExtensionServiceDeploymentRequest' InstanceDeleteRequest: @@ -15577,12 +17145,16 @@ components: properties: machineHealthIssue: $ref: '#/components/schemas/MachineHealthIssue' - description: Information regarding issue with the underlying Machine experienced by Tenant + description: >- + Information regarding issue with the underlying Machine experienced + by Tenant isRepairTenant: type: - boolean - 'null' - description: Should be set to true for Tenants who are performing investigation/repairing the Machine. Otherwise omit or set to false + description: >- + Should be set to true for Tenants who are performing + investigation/repairing the Machine. Otherwise omit or set to false MachineHealthIssue: title: MachineHealthIssue type: object @@ -15694,7 +17266,9 @@ components: type: - integer - 'null' - description: 'Index of the device, used to identify which interface card to attache the Partition to' + description: >- + Index of the device, used to identify which interface card to + attache the Partition to virtualFunctionId: type: - integer @@ -15713,7 +17287,10 @@ components: type: - string - 'null' - description: Explicitly requested IP address for the interface. This is only used for VPC Prefix based interfaces and is not valid for Subnet based interfaces. The least-significant host bit must be 1. + description: >- + Explicitly requested IP address for the interface. This is only used + for VPC Prefix based interfaces and is not valid for Subnet based + interfaces. The least-significant host bit must be 1. status: $ref: '#/components/schemas/InterfaceStatus' created: @@ -15743,12 +17320,17 @@ components: - vpcPrefixId: 000bc42b-f946-472e-83d4-ddf7e365e148 ipAddress: 10.0.0.11 isPhysical: true - description: |- - Request data to create an Interface for an Instance by associating it with a Subnet or VPC Prefix. + description: >- + Request data to create an Interface for an Instance by associating it + with a Subnet or VPC Prefix. - If VPC specified in request has FNN virtualization type, then all interfaces must specify VPC Prefix. - If the VPC has Ethernet network virtualization type then all interfaces must specify Subnet. + If VPC specified in request has FNN virtualization type, then all + interfaces must specify VPC Prefix. + + + If the VPC has Ethernet network virtualization type then all interfaces + must specify Subnet. properties: subnetId: type: string @@ -15760,21 +17342,30 @@ components: type: - string - 'null' - description: Explicitly requested IP address for the interface. It cannot be specified for Subnet based interfaces. The least-significant host bit must be 1. + description: >- + Explicitly requested IP address for the interface. It cannot be + specified for Subnet based interfaces. The least-significant host + bit must be 1. isPhysical: type: boolean - description: Specifies whether this Subnet or VPC Prefix should be attached to the Instance over physical interface. + description: >- + Specifies whether this Subnet or VPC Prefix should be attached to + the Instance over physical interface. device: type: string description: Name of the device to use deviceInstance: type: integer - description: 'Index of the device, used to identify which interface card to attache the Partition to' + description: >- + Index of the device, used to identify which interface card to + attache the Partition to virtualFunctionId: type: - integer - 'null' - description: 'Index of the virtual function to use, must be specified if isPhysical is false' + description: >- + Index of the virtual function to use, must be specified if + isPhysical is false minimum: 1 maximum: 16 InfiniBandInterface: @@ -15784,7 +17375,7 @@ components: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 instanceId: 64d2028c-ae87-4069-a624-66089d957ef9 partitionId: 05ef7e84-1d4e-4e4d-980d-38589479a0fe - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 0 isPhysical: true virtualFunctionId: null @@ -15792,7 +17383,9 @@ components: status: Ready created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - description: Defines an interface created by associating an Instance with an InfiniBand Partition + description: >- + Defines an interface created by associating an Instance with an + InfiniBand Partition properties: id: type: string @@ -15846,16 +17439,18 @@ components: type: object examples: - partitionId: 4f4decba-7d7f-46b9-9e5f-e5d71c2e0666 - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 0 isPhysical: true virtualFunctionId: null - partitionId: 4f4decba-7d7f-46b9-9e5f-e5d71c2e0666 - device: 'MT2910 Family [ConnectX-7]' + device: MT2910 Family [ConnectX-7] deviceInstance: 3 isPhysical: false virtualFunctionId: 2 - description: Request data to create an InfiniBand Interface for an Instance by associating it with an InfiniBand Partition + description: >- + Request data to create an InfiniBand Interface for an Instance by + associating it with an InfiniBand Partition properties: partitionId: type: string @@ -15868,13 +17463,17 @@ components: type: - string - 'null' - description: 'Name of the InfiniBand device vendor, optional' + description: Name of the InfiniBand device vendor, optional deviceInstance: type: integer - description: 'Index of the device, used to identify which interface card to attache the Partition to' + description: >- + Index of the device, used to identify which interface card to + attache the Partition to isPhysical: type: boolean - description: Specifies whether this Partition should be attached to the Instance over physical interface + description: >- + Specifies whether this Partition should be attached to the Instance + over physical interface virtualFunctionId: type: - integer @@ -15893,7 +17492,9 @@ components: status: Ready created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - description: Defines an interface created by associating a GPU of an Instance with an NVLink Logical Partition + description: >- + Defines an interface created by associating a GPU of an Instance with an + NVLink Logical Partition properties: id: type: string @@ -15912,7 +17513,9 @@ components: description: ID of the NVLink Domain associated with this Interface deviceInstance: type: integer - description: 'Index of the device, used to identify the GPU associated with this Interface' + description: >- + Index of the device, used to identify the GPU associated with this + Interface gpuGuid: type: string description: Unique ID of the GPU @@ -15944,7 +17547,9 @@ components: deviceInstance: 0 - nvLinklogicalPartitionId: 4f4decba-7d7f-46b9-9e5f-e5d71c2e0666 deviceInstance: 1 - description: Request data to create an NVLink Interface for an Instance by associating a specific GPU index with an NVLink Logical Partition. + description: >- + Request data to create an NVLink Interface for an Instance by + associating a specific GPU index with an NVLink Logical Partition. properties: nvLinklogicalPartitionId: type: string @@ -15953,7 +17558,10 @@ components: deviceInstance: type: integer minimum: 0 - description: GPU index for this NVLink interface. Must be non-negative, unique within the request, and within the GPU count exposed by the selected Machine or Instance Type. + description: >- + GPU index for this NVLink interface. Must be non-negative, unique + within the request, and within the GPU count exposed by the selected + Machine or Instance Type. MachineCapability: title: MachineCapability type: object @@ -15983,7 +17591,7 @@ components: capacity: 80GB count: 2 - type: InfiniBand - name: 'MT28908 Family [ConnectX-6]' + name: MT28908 Family [ConnectX-6] vendor: Mellanox Technologies count: 2 - type: DPU @@ -16009,27 +17617,27 @@ components: type: - string - 'null' - description: 'Frequency of the Capability component, if available' + description: Frequency of the Capability component, if available cores: type: - integer - 'null' - description: 'Number of Cores in the Capability component, if applicable' + description: Number of Cores in the Capability component, if applicable threads: type: - integer - 'null' - description: 'Number of Threads in the Capability component, if applicable' + description: Number of Threads in the Capability component, if applicable capacity: type: - string - 'null' - description: 'Capacity of the Capability component, if applicable' + description: Capacity of the Capability component, if applicable vendor: type: - string - 'null' - description: 'Vendor of the Capability component, if available' + description: Vendor of the Capability component, if available inactiveDevices: type: array description: A list of inactive devices @@ -16044,7 +17652,7 @@ components: type: - string - 'null' - description: 'Device Type of the Capability component, if available' + description: Device Type of the Capability component, if available Rack: title: Rack type: object @@ -16074,7 +17682,7 @@ components: hostId: 0 bmcs: - type: BmcTypeHost - macAddress: 'AA:BB:CC:DD:EE:01' + macAddress: AA:BB:CC:DD:EE:01 ipAddress: 10.0.0.101 powerState: 'on' properties: @@ -16101,7 +17709,9 @@ components: $ref: '#/components/schemas/RackLocation' components: type: array - description: Components within the Rack. Only returned when includeComponents is true. + description: >- + Components within the Rack. Only returned when includeComponents is + true. items: $ref: '#/components/schemas/RackComponent' RackLocation: @@ -16124,7 +17734,9 @@ components: RackValidationResult: title: RackValidationResult type: object - description: Result of validating a rack's components by comparing expected vs actual state + description: >- + Result of validating a rack's components by comparing expected vs actual + state properties: diffs: type: array @@ -16182,7 +17794,9 @@ components: properties: fieldName: type: string - description: 'Name of the field that differs (e.g. firmware_version, position.slot_id)' + description: >- + Name of the field that differs (e.g. firmware_version, + position.slot_id) expectedValue: type: string description: Expected value of the field @@ -16207,7 +17821,9 @@ components: description: ID of the rack this component belongs to type: type: string - description: Type of the component (e.g. ComponentTypeCompute, ComponentTypeNvlswitch) + description: >- + Type of the component (e.g. ComponentTypeCompute, + ComponentTypeNvlswitch) name: type: string description: Name of the component @@ -16260,7 +17876,9 @@ components: Tray: title: Tray type: object - description: 'Tray represents a component within a rack (e.g. compute node, NVL switch, power shelf)' + description: >- + Tray represents a component within a rack (e.g. compute node, NVL + switch, power shelf) examples: - id: 660e8400-e29b-41d4-a716-446655440001 componentId: fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g @@ -16345,7 +17963,9 @@ components: RackFilter: title: RackFilter type: object - description: Filter criteria for selecting racks in batch operations. If omitted or empty, all racks in the site are targeted. + description: >- + Filter criteria for selecting racks in batch operations. If omitted or + empty, all racks in the site are targeted. properties: names: type: array @@ -16355,10 +17975,14 @@ components: TrayFilter: title: TrayFilter type: object - description: |- - Filter criteria for selecting trays in batch operations. If omitted or empty, all trays in the site are targeted. + description: >- + Filter criteria for selecting trays in batch operations. If omitted or + empty, all trays in the site are targeted. + - Constraints: `rackId` and `rackName` are mutually exclusive. `rackId`/`rackName` cannot be combined with `ids`/`componentIds`. `componentIds` requires `type`. + Constraints: `rackId` and `rackName` are mutually exclusive. + `rackId`/`rackName` cannot be combined with `ids`/`componentIds`. + `componentIds` requires `type`. properties: rackId: type: string @@ -16520,7 +18144,9 @@ components: description: Human-readable description provided when the task was created. message: type: string - description: Optional status or error message describing the current state or result. + description: >- + Optional status or error message describing the current state or + result. started: type: string format: date-time @@ -16541,7 +18167,7 @@ components: - id: 550e8400-e29b-41d4-a716-446655440000 status: Running description: Power on rack components - message: 'Processing 3 of 5 components' + message: Processing 3 of 5 components BatchTrayFirmwareUpdateRequest: title: BatchTrayFirmwareUpdateRequest type: object @@ -16602,7 +18228,9 @@ components: items: type: string format: uuid - description: List of task IDs created for the power control operation (one per rack) + description: >- + List of task IDs created for the power control operation (one per + rack) examples: - taskIds: - 550e8400-e29b-41d4-a716-446655440000 @@ -16622,7 +18250,7 @@ components: description: Target firmware version. examples: - siteId: 550e8400-e29b-41d4-a716-446655440000 - version: '24.11.0' + version: 24.11.0 - siteId: 550e8400-e29b-41d4-a716-446655440000 FirmwareUpdateResponse: title: FirmwareUpdateResponse @@ -16674,7 +18302,7 @@ components: subnetId: 1f232bf0-7b90-456e-b9b0-38d9fea4171a hostname: example.com isPrimary: true - macAddress: '00:00:5e:00:53:af' + macAddress: 00:00:5e:00:53:af ipAddresses: - 192.156.7.23 - 202.88.37.112 @@ -16746,7 +18374,7 @@ components: - string - 'null' format: uuid - description: 'ID of the Instance Type, if assigned' + description: ID of the Instance Type, if assigned instanceId: type: - string @@ -16758,10 +18386,12 @@ components: - string - 'null' format: uuid - description: ID of the Tenant that owns the Instance if the Machine is assigned to one + description: >- + ID of the Tenant that owns the Instance if the Machine is assigned + to one controllerMachineId: type: string - description: 'ID of the Machine at Site, now same as the primary ID' + description: ID of the Machine at Site, now same as the primary ID controllerMachineType: type: string description: Denotes architecture (x86 vs ARM) of the Machine @@ -16769,7 +18399,9 @@ components: type: - string - 'null' - description: 'SKU derived device type of the machine, e.g. cpu, gpu, cache, storage, etc.' + description: >- + SKU derived device type of the machine, e.g. cpu, gpu, cache, + storage, etc. vendor: type: string description: Name of the vendor of the Machine @@ -16778,7 +18410,7 @@ components: description: Product name of the Machine serialNumber: type: string - description: 'Serial number of the Machine, only visible to Provider' + description: Serial number of the Machine, only visible to Provider machineCapabilities: type: array items: @@ -16791,12 +18423,16 @@ components: type: - string - 'null' - description: 'If the Machine is in maintenance mode, this message will typically describe the reason and how long it is expected to be in maintenance' + description: >- + If the Machine is in maintenance mode, this message will typically + describe the reason and how long it is expected to be in maintenance health: $ref: '#/components/schemas/MachineHealth' metadata: $ref: '#/components/schemas/MachineMetadata' - description: Only available to Providers. Returned if includeMetadata query param is specified. Otherwise attribute is omitted from response. + description: >- + Only available to Providers. Returned if includeMetadata query param + is specified. Otherwise attribute is omitted from response. labels: $ref: '#/components/schemas/Labels' status: @@ -16804,7 +18440,9 @@ components: readOnly: true isUsableByTenant: type: boolean - description: Indicates whether the machine is usable by or currently in use by a tenant. + description: >- + Indicates whether the machine is usable by or currently in use by a + tenant. readOnly: true statusHistory: type: array @@ -16851,7 +18489,7 @@ components: readOnly: true controllerMachineId: type: string - description: 'ID of the Machine at Site, now same as the primary ID' + description: ID of the Machine at Site, now same as the primary ID controllerMachineType: type: - string @@ -16861,7 +18499,9 @@ components: type: - string - 'null' - description: 'SKU derived device type of the machine, e.g. cpu, gpu, cache, storage, etc.' + description: >- + SKU derived device type of the machine, e.g. cpu, gpu, cache, + storage, etc. vendor: type: - string @@ -16876,7 +18516,9 @@ components: type: - string - 'null' - description: 'If the Machine is in maintenance mode, this message will typically describe the reason and how long it is expected to be in maintenance' + description: >- + If the Machine is in maintenance mode, this message will typically + describe the reason and how long it is expected to be in maintenance status: $ref: '#/components/schemas/MachineStatus' readOnly: true @@ -16887,13 +18529,18 @@ components: - instanceTypeId: 2e016c02-2c67-48aa-b289-5d3ca6320c52 - clearInstanceType: true - setMaintenanceMode: true - maintenanceMessage: Machine requires re-cabling to connect with revised underlay network. Estimated maintenance time is 2 days + maintenanceMessage: >- + Machine requires re-cabling to connect with revised underlay + network. Estimated maintenance time is 2 days - setMaintenanceMode: false - labels: RackIdentifier: GVX11F01C02 ServerName: SITE1-C03-Server-02 RepairStatus: InProgress - description: 'Request data to update Machine. Instance Type attribute updates, maintenance attribute updates and labels updates must be specified in separate requests. They cannot be proceessed at the same time.' + description: >- + Request data to update Machine. Instance Type attribute updates, + maintenance attribute updates and labels updates must be specified in + separate requests. They cannot be proceessed at the same time. properties: instanceTypeId: type: @@ -16902,26 +18549,36 @@ components: minLength: 2 maxLength: 256 format: uuid - description: Update the Instance Type of the Machine. Cannot be specified when clearing Instance Type. Can only be updated by Provider. + description: >- + Update the Instance Type of the Machine. Cannot be specified when + clearing Instance Type. Can only be updated by Provider. clearInstanceType: type: - boolean - 'null' - description: Set to true to clear the existing Instance Type. Cannot be specified if Instance Type ID is specified. Can only be set by Provider. + description: >- + Set to true to clear the existing Instance Type. Cannot be specified + if Instance Type ID is specified. Can only be set by Provider. setMaintenanceMode: type: - boolean - 'null' - description: Set to `true` to enable maintenance mode and to `false` to disable maintenance mode. Can be set by Provider or Privileged Tenant. + description: >- + Set to `true` to enable maintenance mode and to `false` to disable + maintenance mode. Can be set by Provider or Privileged Tenant. maintenanceMessage: type: - string - 'null' - description: Optional message describing the reason for moving Machine into maintenance mode. Can be updated by Provider or Privileged Tenant. + description: >- + Optional message describing the reason for moving Machine into + maintenance mode. Can be updated by Provider or Privileged Tenant. minLength: 5 maxLength: 256 labels: - description: 'Machine labels will be overwritten, include existing labels to preserve them. Can be updated by Provider or Privileged Tenant.' + description: >- + Machine labels will be overwritten, include existing labels to + preserve them. Can be updated by Provider or Privileged Tenant. $ref: '#/components/schemas/Labels' MachineInterface: title: MachineInterface @@ -16936,7 +18593,7 @@ components: subnetId: 1f232bf0-7b90-456e-b9b0-38d9fea4171a hostname: example.com isPrimary: true - macAddress: '00:00:5e:00:53:af' + macAddress: 00:00:5e:00:53:af ipAddresses: - 192.156.7.23 - 202.88.37.112 @@ -16998,7 +18655,7 @@ components: chassisSerial: J1050ACR bmcInfo: ip: 10.217.133.5 - mac: 'C8:4B:D6:7A:C9:8A' + mac: C8:4B:D6:7A:C9:8A version: '1' firmwareRevision: '6.00' gpus: @@ -17011,21 +18668,26 @@ components: frequency: 1755 MHz pciBusId: '00000000:17:00.0' networkInterfaces: - - macAddress: 'c8:4b:d6:7b:ac:a8' + - macAddress: c8:4b:d6:7b:ac:a8 vendor: Broadcom Inc. and subsidiaries - device: NetXtreme BCM5720 Gigabit Ethernet PCIe (PowerEdge Rx5xx LOM Board) - path: '/devices/pci0000:00/0000:00:1c.5/0000:04:00.0/net/eno8303' + device: >- + NetXtreme BCM5720 Gigabit Ethernet PCIe (PowerEdge Rx5xx LOM + Board) + path: /devices/pci0000:00/0000:00:1c.5/0000:04:00.0/net/eno8303 numaNode: 0 - description: NetXtreme BCM5720 Gigabit Ethernet PCIe (PowerEdge Rx5xx LOM Board) + description: >- + NetXtreme BCM5720 Gigabit Ethernet PCIe (PowerEdge Rx5xx LOM + Board) slot: '0000:04:00.0' infinibandInterfaces: - guid: 1070fd0300bd43ac vendor: Mellanox Technologies - device: 'MT28908 Family [ConnectX-6]' - path: '/devices/pci0000:c9/0000:c9:02.0/0000:ca:00.0/infiniband/ibp202s0f0' + device: MT28908 Family [ConnectX-6] + path: >- + /devices/pci0000:c9/0000:c9:02.0/0000:ca:00.0/infiniband/ibp202s0f0 numaNode: 1 - description: 'MT28908 Family [ConnectX-6]' - slot: '0000:ca:00.0' + description: MT28908 Family [ConnectX-6] + slot: 0000:ca:00.0 properties: dmiData: $ref: '#/components/schemas/MachineDMIData' @@ -17049,7 +18711,7 @@ components: description: Describes BMC information of a Machine examples: - ip: 10.217.133.5 - mac: 'C8:4B:D6:7A:C9:8A' + mac: C8:4B:D6:7A:C9:8A version: '1' firmwareRevision: '6.00' properties: @@ -17229,21 +18891,21 @@ components: type: - string - 'null' - description: 'Information provided by Tenant, if any' + description: Information provided by Tenant, if any classifications: type: array items: type: string - description: 'Classifications for this alert, category or impact' + description: Classifications for this alert, category or impact MachineNetworkInterface: title: MachineNetworkInterface type: object description: Describes information about an Ethernet Interface of a Machine examples: - - macAddress: 'c8:4b:d6:7b:ac:a8' + - macAddress: c8:4b:d6:7b:ac:a8 vendor: Broadcom Inc. and subsidiaries device: NetXtreme BCM5720 Gigabit Ethernet PCIe (PowerEdge Rx5xx LOM Board) - path: '/devices/pci0000:00/0000:00:1c.5/0000:04:00.0/net/eno8303' + path: /devices/pci0000:00/0000:00:1c.5/0000:04:00.0/net/eno8303 numaNode: 0 description: NetXtreme BCM5720 Gigabit Ethernet PCIe (PowerEdge Rx5xx LOM Board) slot: '0000:04:00.0' @@ -17269,11 +18931,11 @@ components: examples: - guid: 1070fd0300bd43ac vendor: Mellanox Technologies - device: 'MT28908 Family [ConnectX-6]' - path: '/devices/pci0000:c9/0000:c9:02.0/0000:ca:00.0/infiniband/ibp202s0f0' + device: MT28908 Family [ConnectX-6] + path: /devices/pci0000:c9/0000:c9:02.0/0000:ca:00.0/infiniband/ibp202s0f0 numaNode: 1 - description: 'MT28908 Family [ConnectX-6]' - slot: '0000:ca:00.0' + description: MT28908 Family [ConnectX-6] + slot: 0000:ca:00.0 properties: guid: type: string @@ -17301,7 +18963,9 @@ components: - attribute: id replacedBy: machineId takeActionBy: '2026-07-09T00:00:00Z' - notice: '''id'' is being deprecated in favor of ''machineId''. Please take action prior to the specified date.' + notice: >- + 'id' is being deprecated in favor of 'machineId'. Please take + action prior to the specified date. created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' properties: @@ -17309,7 +18973,9 @@ components: type: string format: uuid readOnly: true - description: 'Deprecated: Use `machineId` when identifying a Machine/Instance Type association. This field will be removed on July 9th, 2026 0:00 UTC.' + description: >- + Deprecated: Use `machineId` when identifying a Machine/Instance Type + association. This field will be removed on July 9th, 2026 0:00 UTC. deprecated: true machineId: type: string @@ -17349,14 +19015,17 @@ components: ExpectedMachine: title: ExpectedMachine type: object - description: |- - An Expected Machine represents a physical machine that is expected to be discovered at a site, with hardware identifiers and metadata. + description: >- + An Expected Machine represents a physical machine that is expected to be + discovered at a site, with hardware identifiers and metadata. + - Note: BMC credentials (username/password) are only accepted during creation and updates but are not returned in responses. + Note: BMC credentials (username/password) are only accepted during + creation and updates but are not returned in responses. examples: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 siteId: f97df110-f4de-492e-8849-4a6af68026b0 - bmcMacAddress: '00:1A:2B:3C:4D:5E' + bmcMacAddress: 00:1A:2B:3C:4D:5E chassisSerialNumber: CHASSIS-12345 fallbackDPUSerialNumbers: - DPU-001 @@ -17383,14 +19052,18 @@ components: readOnly: true bmcMacAddress: type: string - pattern: '^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$' - description: MAC address of the Expected Machine's BMC (Baseboard Management Controller) + pattern: ^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$ + description: >- + MAC address of the Expected Machine's BMC (Baseboard Management + Controller) chassisSerialNumber: type: string description: Serial number of the Expected Machine's chassis fallbackDPUSerialNumbers: type: array - description: Serial numbers of the Expected Machine's fallback DPUs (Data Processing Units) + description: >- + Serial numbers of the Expected Machine's fallback DPUs (Data + Processing Units) items: type: string skuId: @@ -17400,7 +19073,9 @@ components: description: Optional ID of the SKU associated with this Expected Machine sku: $ref: '#/components/schemas/Sku' - description: SKU information for this Expected Machine (populated when includeRelation=Sku is specified) + description: >- + SKU information for this Expected Machine (populated when + includeRelation=Sku is specified) machineId: type: - string @@ -17408,7 +19083,9 @@ components: description: Optional ID of the Machine associated with this Expected Machine machine: $ref: '#/components/schemas/MachineSummary' - description: Machine information for this Expected Machine (populated when includeRelation=Machine is specified) + description: >- + Machine information for this Expected Machine (populated when + includeRelation=Machine is specified) rackId: type: - string @@ -17459,7 +19136,9 @@ components: description: Host ID within the tray labels: $ref: '#/components/schemas/Labels' - description: User-defined key-value pairs for organizing and categorizing Expected Machines + description: >- + User-defined key-value pairs for organizing and categorizing + Expected Machines created: type: string format: date-time @@ -17473,15 +19152,17 @@ components: ExpectedMachineCreateRequest: title: ExpectedMachineCreateRequest type: object - description: |- + description: >- Request data to create a new ExpectedMachine. - Note: BMC credentials (username/password) are only accepted during creation and updates but are not returned in responses. + + Note: BMC credentials (username/password) are only accepted during + creation and updates but are not returned in responses. examples: - siteId: f97df110-f4de-492e-8849-4a6af68026b0 - bmcMacAddress: '00:1A:2B:3C:4D:5E' - bmcUsername: admin - bmcPassword: password123 + bmcMacAddress: 00:1A:2B:3C:4D:5E + defaultBmcUsername: admin + defaultBmcPassword: password123 chassisSerialNumber: CHASSIS-12345 fallbackDPUSerialNumbers: - DPU-001 @@ -17499,15 +19180,17 @@ components: description: ID of the site the Expected Machine belongs to bmcMacAddress: type: string - pattern: '^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$' - description: MAC address of the Expected Machine's BMC (Baseboard Management Controller) - bmcUsername: + pattern: ^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$ + description: >- + MAC address of the Expected Machine's BMC (Baseboard Management + Controller) + defaultBmcUsername: type: - string - 'null' maxLength: 20 description: Username for accessing the Expected Machine's BMC - bmcPassword: + defaultBmcPassword: type: - string - 'null' @@ -17522,7 +19205,9 @@ components: type: - array - 'null' - description: Serial numbers of the Expected Machine's fallback DPUs (Data Processing Units) + description: >- + Serial numbers of the Expected Machine's fallback DPUs (Data + Processing Units) items: type: string skuId: @@ -17580,7 +19265,9 @@ components: description: Host ID within the tray labels: $ref: '#/components/schemas/Labels' - description: User-defined key-value pairs for organizing and categorizing Expected Machines + description: >- + User-defined key-value pairs for organizing and categorizing + Expected Machines required: - siteId - bmcMacAddress @@ -17588,17 +19275,24 @@ components: ExpectedMachineUpdateRequest: title: ExpectedMachineUpdateRequest type: object - description: |- + description: >- Request data to update an existing Expected Machine. - Note: BMC credentials (username/password) are only accepted during creation and updates but are not returned in responses. - For single updates (PATCH /expected-machine/{id}), the id field is optional in body and will be ignored if provided (the ID from the URL path is used). + Note: BMC credentials (username/password) are only accepted during + creation and updates but are not returned in responses. + + + For single updates (PATCH /expected-machine/{id}), the id field is + optional in body and will be ignored if provided (the ID from the URL + path is used). + - For batch updates (PATCH /expected-machine/batch), the id field is required to identify which Expected Machine to update. + For batch updates (PATCH /expected-machine/batch), the id field is + required to identify which Expected Machine to update. examples: - - bmcUsername: newadmin - bmcPassword: newpassword123 + - defaultBmcUsername: newadmin + defaultBmcPassword: newpassword123 chassisSerialNumber: CHASSIS-54321 skuId: sku-xyz789 rackId: rack-02 @@ -17612,25 +19306,30 @@ components: - string - 'null' format: uuid - description: |- + description: >- ID of the Expected Machine to update. - Optional for individual Expected Machine update (ignored if provided, ID from URL path is used). + + Optional for individual Expected Machine update (ignored if + provided, ID from URL path is used). + Required for batch update operations. bmcMacAddress: type: - string - 'null' - pattern: '^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$' - description: MAC address of the Expected Machine's BMC (Baseboard Management Controller) - bmcUsername: + pattern: ^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$ + description: >- + MAC address of the Expected Machine's BMC (Baseboard Management + Controller) + defaultBmcUsername: type: - string - 'null' maxLength: 20 description: Username for accessing the Expected Machine's BMC - bmcPassword: + defaultBmcPassword: type: - string - 'null' @@ -17647,7 +19346,9 @@ components: type: - array - 'null' - description: Serial numbers of the Expected Machine's fallback DPUs (Data Processing Units) + description: >- + Serial numbers of the Expected Machine's fallback DPUs (Data + Processing Units) items: type: string skuId: @@ -17705,20 +19406,25 @@ components: description: Host ID within the tray labels: $ref: '#/components/schemas/Labels' - description: User-defined key-value pairs for organizing and categorizing Expected Machines + description: >- + User-defined key-value pairs for organizing and categorizing + Expected Machines ExpectedPowerShelf: title: ExpectedPowerShelf type: object - description: |- - An Expected Power Shelf represents a power shelf that is expected to be discovered at a site, with hardware identifiers and metadata. + description: >- + An Expected Power Shelf represents a power shelf that is expected to be + discovered at a site, with hardware identifiers and metadata. - Note: BMC credentials (username/password) are only accepted during creation and updates but are not returned in responses. + + Note: BMC credentials (username/password) are only accepted during + creation and updates but are not returned in responses. examples: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 siteId: f97df110-f4de-492e-8849-4a6af68026b0 - bmcMacAddress: '00:1A:2B:3C:4D:5E' + bmcMacAddress: 00:1A:2B:3C:4D:5E shelfSerialNumber: SHELF-12345 - ipAddress: '192.168.1.100' + ipAddress: 192.168.1.100 rackId: rack-01 manufacturer: Delta labels: @@ -17739,8 +19445,10 @@ components: readOnly: true bmcMacAddress: type: string - pattern: '^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$' - description: MAC address of the Expected Power Shelf's BMC (Baseboard Management Controller) + pattern: ^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$ + description: >- + MAC address of the Expected Power Shelf's BMC (Baseboard Management + Controller) shelfSerialNumber: type: string description: Serial number of the Expected Power Shelf @@ -17799,7 +19507,9 @@ components: description: Host ID within the tray labels: $ref: '#/components/schemas/Labels' - description: User-defined key-value pairs for organizing and categorizing Expected Power Shelves + description: >- + User-defined key-value pairs for organizing and categorizing + Expected Power Shelves created: type: string format: date-time @@ -17813,17 +19523,19 @@ components: ExpectedPowerShelfCreateRequest: title: ExpectedPowerShelfCreateRequest type: object - description: |- + description: >- Request data to create a new Expected Power Shelf. - Note: BMC credentials (username/password) are only accepted during creation and updates but are not returned in responses. + + Note: BMC credentials (username/password) are only accepted during + creation and updates but are not returned in responses. examples: - siteId: f97df110-f4de-492e-8849-4a6af68026b0 - bmcMacAddress: '00:1A:2B:3C:4D:5E' + bmcMacAddress: 00:1A:2B:3C:4D:5E defaultBmcUsername: admin defaultBmcPassword: password123 shelfSerialNumber: SHELF-12345 - ipAddress: '192.168.1.100' + ipAddress: 192.168.1.100 rackId: rack-01 manufacturer: Delta labels: @@ -17836,8 +19548,10 @@ components: description: ID of the site the Expected Power Shelf belongs to bmcMacAddress: type: string - pattern: '^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$' - description: MAC address of the Expected Power Shelf's BMC (Baseboard Management Controller) + pattern: ^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$ + description: >- + MAC address of the Expected Power Shelf's BMC (Baseboard Management + Controller) defaultBmcUsername: type: - string @@ -17910,7 +19624,9 @@ components: description: Host ID within the tray labels: $ref: '#/components/schemas/Labels' - description: User-defined key-value pairs for organizing and categorizing Expected Power Shelves + description: >- + User-defined key-value pairs for organizing and categorizing + Expected Power Shelves required: - siteId - bmcMacAddress @@ -17918,15 +19634,17 @@ components: ExpectedPowerShelfUpdateRequest: title: ExpectedPowerShelfUpdateRequest type: object - description: |- + description: >- Request data to update an existing Expected Power Shelf. - Note: BMC credentials (username/password) are only accepted during creation and updates but are not returned in responses. + + Note: BMC credentials (username/password) are only accepted during + creation and updates but are not returned in responses. examples: - defaultBmcUsername: newadmin defaultBmcPassword: newpassword123 shelfSerialNumber: SHELF-54321 - ipAddress: '192.168.1.200' + ipAddress: 192.168.1.200 rackId: rack-02 manufacturer: Delta labels: @@ -17938,13 +19656,17 @@ components: - string - 'null' format: uuid - description: ID of the Expected Power Shelf to update (ignored for single update, used for identification in batch operations). + description: >- + ID of the Expected Power Shelf to update (ignored for single update, + used for identification in batch operations). bmcMacAddress: type: - string - 'null' - pattern: '^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$' - description: MAC address of the Expected Power Shelf's BMC (Baseboard Management Controller) + pattern: ^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$ + description: >- + MAC address of the Expected Power Shelf's BMC (Baseboard Management + Controller) defaultBmcUsername: type: - string @@ -18019,18 +19741,23 @@ components: description: Host ID within the tray labels: $ref: '#/components/schemas/Labels' - description: User-defined key-value pairs for organizing and categorizing Expected Power Shelves + description: >- + User-defined key-value pairs for organizing and categorizing + Expected Power Shelves ExpectedSwitch: title: ExpectedSwitch type: object - description: |- - An Expected Switch represents a network switch that is expected to be discovered at a site, with hardware identifiers and metadata. + description: >- + An Expected Switch represents a network switch that is expected to be + discovered at a site, with hardware identifiers and metadata. - Note: BMC and NvOS credentials (username/password) are only accepted during creation and updates but are not returned in responses. + + Note: BMC and NvOS credentials (username/password) are only accepted + during creation and updates but are not returned in responses. examples: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 siteId: f97df110-f4de-492e-8849-4a6af68026b0 - bmcMacAddress: '00:1A:2B:3C:4D:5E' + bmcMacAddress: 00:1A:2B:3C:4D:5E switchSerialNumber: SWITCH-12345 rackId: rack-01 manufacturer: NVIDIA @@ -18052,8 +19779,10 @@ components: readOnly: true bmcMacAddress: type: string - pattern: '^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$' - description: MAC address of the Expected Switch's BMC (Baseboard Management Controller) + pattern: ^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$ + description: >- + MAC address of the Expected Switch's BMC (Baseboard Management + Controller) switchSerialNumber: type: string description: Serial number of the Expected Switch @@ -18107,7 +19836,9 @@ components: description: Host ID within the tray labels: $ref: '#/components/schemas/Labels' - description: User-defined key-value pairs for organizing and categorizing Expected Switches + description: >- + User-defined key-value pairs for organizing and categorizing + Expected Switches created: type: string format: date-time @@ -18121,13 +19852,15 @@ components: ExpectedSwitchCreateRequest: title: ExpectedSwitchCreateRequest type: object - description: |- + description: >- Request data to create a new Expected Switch. - Note: BMC and NvOS credentials (username/password) are only accepted during creation and updates but are not returned in responses. + + Note: BMC and NvOS credentials (username/password) are only accepted + during creation and updates but are not returned in responses. examples: - siteId: f97df110-f4de-492e-8849-4a6af68026b0 - bmcMacAddress: '00:1A:2B:3C:4D:5E' + bmcMacAddress: 00:1A:2B:3C:4D:5E defaultBmcUsername: admin defaultBmcPassword: password123 switchSerialNumber: SWITCH-12345 @@ -18145,8 +19878,10 @@ components: description: ID of the site the Expected Switch belongs to bmcMacAddress: type: string - pattern: '^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$' - description: MAC address of the Expected Switch's BMC (Baseboard Management Controller) + pattern: ^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$ + description: >- + MAC address of the Expected Switch's BMC (Baseboard Management + Controller) defaultBmcUsername: type: - string @@ -18224,7 +19959,9 @@ components: description: Host ID within the tray labels: $ref: '#/components/schemas/Labels' - description: User-defined key-value pairs for organizing and categorizing Expected Switches + description: >- + User-defined key-value pairs for organizing and categorizing + Expected Switches required: - siteId - bmcMacAddress @@ -18232,10 +19969,12 @@ components: ExpectedSwitchUpdateRequest: title: ExpectedSwitchUpdateRequest type: object - description: |- + description: >- Request data to update an existing Expected Switch. - Note: BMC and NvOS credentials (username/password) are only accepted during creation and updates but are not returned in responses. + + Note: BMC and NvOS credentials (username/password) are only accepted + during creation and updates but are not returned in responses. examples: - defaultBmcUsername: newadmin defaultBmcPassword: newpassword123 @@ -18253,13 +19992,17 @@ components: - string - 'null' format: uuid - description: ID of the Expected Switch to update (ignored for single update, used for identification in batch operations). + description: >- + ID of the Expected Switch to update (ignored for single update, used + for identification in batch operations). bmcMacAddress: type: - string - 'null' - pattern: '^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$' - description: MAC address of the Expected Switch's BMC (Baseboard Management Controller) + pattern: ^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$ + description: >- + MAC address of the Expected Switch's BMC (Baseboard Management + Controller) defaultBmcUsername: type: - string @@ -18339,13 +20082,18 @@ components: description: Host ID within the tray labels: $ref: '#/components/schemas/Labels' - description: User-defined key-value pairs for organizing and categorizing Expected Switches + description: >- + User-defined key-value pairs for organizing and categorizing + Expected Switches Sku: title: Sku type: object - description: |- - A SKU (Stock Keeping Unit) represents a unique hardware configuration discovered at a site. - SKUs are automatically derived from machine hardware characteristics and used to group similar machines. + description: >- + A SKU (Stock Keeping Unit) represents a unique hardware configuration + discovered at a site. + + SKUs are automatically derived from machine hardware characteristics and + used to group similar machines. examples: - id: lenovo.sr650v2.cpu.1 siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 @@ -18391,7 +20139,7 @@ components: type: - string - 'null' - description: 'Optional device type identifier (e.g. "gpu", "cpu", "storage")' + description: Optional device type identifier (e.g. "gpu", "cpu", "storage") readOnly: true associatedMachineIds: type: array @@ -18503,7 +20251,7 @@ components: description: Capacity in megabytes memoryType: type: string - description: 'Type of memory (e.g. "DDR4", "DDR5")' + description: Type of memory (e.g. "DDR4", "DDR5") count: type: integer format: uint32 @@ -18586,11 +20334,17 @@ components: IpBlock: title: IpBlock type: object - description: IP block contains information about an IPv4 address pool owned by the Infrastructure Provider and assigned as an overlay network for a particular Site. It is equivalent to Network Resource in product terminology. + description: >- + IP block contains information about an IPv4 address pool owned by the + Infrastructure Provider and assigned as an overlay network for a + particular Site. It is equivalent to Network Resource in product + terminology. examples: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 name: Public Network Overlay for Site SJC4 - description: This is the primary IP overlay for SJC4. All IPs are publicly routable + description: >- + This is the primary IP overlay for SJC4. All IPs are publicly + routable siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 infrastructureProviderId: e94bcfda-f6cb-42e4-80ec-516811e5abbf tenantId: null @@ -18601,7 +20355,7 @@ components: status: Pending statusHistory: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -18753,7 +20507,9 @@ components: description: Request data for creating IP block examples: - name: Public Network Overlay for Site SJC4 - description: This is the primary IP overlay for SJC4. All IPs are publicly routable + description: >- + This is the primary IP overlay for SJC4. All IPs are publicly + routable siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 routingType: Public prefix: 202.168.1.0 @@ -18798,7 +20554,9 @@ components: description: Request data for editing IP block examples: - name: Public Network Overlay for Site SJC4 - description: This is the primary IP overlay for SJC4. All IPs are publicly routable + description: >- + This is the primary IP overlay for SJC4. All IPs are publicly + routable properties: name: type: string @@ -18911,7 +20669,9 @@ components: format: uuid statefulEgress: type: boolean - description: Egress rules with protocol and destination ports defined but without source ports defined should automatically be made stateful. + description: >- + Egress rules with protocol and destination ports defined but without + source ports defined should automatically be made stateful. rules: type: array items: @@ -18952,10 +20712,16 @@ components: - 'null' statefulEgress: type: boolean - description: Egress rules with protocol and destination ports defined but without source ports defined should automatically be made stateful. + description: >- + Egress rules with protocol and destination ports defined but without + source ports defined should automatically be made stateful. rules: type: array - description: 'Update rules of the NetworkSecurityGroup. The rules will be entirely replaced by those sent in the request. Any rules not included in the request will be removed. To retain existing rules, first fetch them and include them. ' + description: >- + Update rules of the NetworkSecurityGroup. The rules will be entirely + replaced by those sent in the request. Any rules not included in the + request will be removed. To retain existing rules, first fetch them + and include them. items: $ref: '#/components/schemas/NetworkSecurityGroupRule' labels: @@ -19073,7 +20839,7 @@ components: readOnly: true examples: - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' SshKeyGroup: @@ -19134,7 +20900,7 @@ components: type: - string - 'null' - description: 'Description for the SSH Key Group, optional' + description: Description for the SSH Key Group, optional org: type: string description: Organization this SSH Key Group belongs to @@ -19285,13 +21051,13 @@ components: - 'null' siteIds: type: array - description: 'When specified, replaces existing Site associations' + description: When specified, replaces existing Site associations items: type: string format: uuid sshKeyIds: type: array - description: 'When specified, replaces existing SSH Key associations' + description: When specified, replaces existing SSH Key associations items: type: string format: uuid @@ -19344,7 +21110,10 @@ components: description: Request data to create an SSH key examples: - name: sre-ssh-reno - publicKey: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICip4hl6WjuVHs60PeikVUs0sWE/kPhk2D0rRHWsIuyL jdoe@test.com + publicKey: >- + ssh-ed25519 + AAAAC3NzaC1lZDI1NTE5AAAAICip4hl6WjuVHs60PeikVUs0sWE/kPhk2D0rRHWsIuyL + jdoe@test.com sshKeyGroupId: 0b5be54a-65ee-4a85-9928-90e6bca22dac properties: name: @@ -19353,7 +21122,7 @@ components: publicKey: type: string description: 'Must be an SSH key of type: RSA, ECDSA or ED25519' - pattern: '^ssh-(rsa|ecdsa|ed25519) AAAA[0-9A-Za-z+/]+[=]{0,3}(\s+.+)?$' + pattern: ^ssh-(rsa|ecdsa|ed25519) AAAA[0-9A-Za-z+/]+[=]{0,3}(\s+.+)?$ sshKeyGroupId: type: - string @@ -19375,18 +21144,31 @@ components: DpuExtensionService: title: DpuExtensionService type: object - description: DPU Extension Service allows user defined services to run on DPUs of their Instances + description: >- + DPU Extension Service allows user defined services to run on DPUs of + their Instances examples: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 name: busybox - description: 'Single, multi-call executable that contains stripped-down versions of common Unix utilities' + description: >- + Single, multi-call executable that contains stripped-down versions + of common Unix utilities serviceType: KubernetesPod siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 tenantId: f97df110-f4de-492e-8849-4a6af68026b0 version: V1-T1761856992374052 versionInfo: version: V1-T1761856992374052 - data: 'apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: busybox-deployment\n labels:\n app: busybox\nspec:\n replicas: 1 # You can adjust the number of desired replicas here\n selector:\n matchLabels:\n app: busybox\n template:\n metadata:\n labels:\n app: busybox\n spec:\n containers:\n - name: busybox-container\n image: busybox:latest # You can specify a different BusyBox image tag\n command: ["sh", "-c", "echo \''BusyBox container running\'' && sleep 3600"]' + data: >- + apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: + busybox-deployment\n labels:\n app: busybox\nspec:\n + replicas: 1 # You can adjust the number of desired replicas + here\n selector:\n matchLabels:\n app: busybox\n + template:\n metadata:\n labels:\n app: busybox\n + spec:\n containers:\n - name: busybox-container\n + image: busybox:latest # You can specify a different BusyBox image + tag\n command: ["sh", "-c", "echo \'BusyBox container + running\' && sleep 3600"] hasCredentials: true created: '2019-08-24T14:15:22Z' observability: @@ -19405,7 +21187,7 @@ components: created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' - status: Pending - message: 'Request received, pending processing' + message: Request received, pending processing created: '2019-08-24T14:15:22Z' updated: '2019-08-24T14:15:22Z' created: '2019-08-24T14:15:22Z' @@ -19418,7 +21200,9 @@ components: readOnly: true name: type: string - description: Name for the DPU Extension Service. Must be unique for a given Tenant + description: >- + Name for the DPU Extension Service. Must be unique for a given + Tenant description: type: - string @@ -19447,7 +21231,9 @@ components: description: Details for the latest version of the DPU Extension Service activeVersions: type: array - description: Latest and past versions of this DPU Extension Service that have not been deleted and are available for deployment + description: >- + Latest and past versions of this DPU Extension Service that have not + been deleted and are available for deployment items: type: string status: @@ -19480,7 +21266,9 @@ components: DpuExtensionServiceSummary: title: DpuExtensionServiceSummary type: object - description: DPU Extension Service allows user defined services to run on DPUs of their Instances + description: >- + DPU Extension Service allows user defined services to run on DPUs of + their Instances examples: - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 name: busybox @@ -19495,7 +21283,9 @@ components: readOnly: true name: type: string - description: Name for the DPU Extension Service. Must be unique for a given Tenant + description: >- + Name for the DPU Extension Service. Must be unique for a given + Tenant serviceType: type: string description: Type of the DPU Extension Service @@ -19515,7 +21305,16 @@ components: description: Information about a specific version of DPU Extension Service examples: - version: V1-T1761856992374052 - data: 'apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: busybox-deployment\n labels:\n app: busybox\nspec:\n replicas: 1 # You can adjust the number of desired replicas here\n selector:\n matchLabels:\n app: busybox\n template:\n metadata:\n labels:\n app: busybox\n spec:\n containers:\n - name: busybox-container\n image: busybox:latest # You can specify a different BusyBox image tag\n command: ["sh", "-c", "echo \''BusyBox container running\'' && sleep 3600"]' + data: >- + apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: + busybox-deployment\n labels:\n app: busybox\nspec:\n replicas: + 1 # You can adjust the number of desired replicas here\n + selector:\n matchLabels:\n app: busybox\n template:\n + metadata:\n labels:\n app: busybox\n spec:\n + containers:\n - name: busybox-container\n image: + busybox:latest # You can specify a different BusyBox image + tag\n command: ["sh", "-c", "echo \'BusyBox container + running\' && sleep 3600"] hasCredentials: true created: '2019-08-24T14:15:22Z' observability: @@ -19550,12 +21349,23 @@ components: description: Request data to create a new DPU Extension Service examples: - name: busybox - description: 'Single, multi-call executable that contains stripped-down versions of common Unix utilities' + description: >- + Single, multi-call executable that contains stripped-down versions + of common Unix utilities serviceType: KubernetesPod siteId: 60189e9c-7d12-438c-b9ca-6998d9c364b1 - data: 'apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: busybox-deployment\n labels:\n app: busybox\nspec:\n replicas: 1 # You can adjust the number of desired replicas here\n selector:\n matchLabels:\n app: busybox\n template:\n metadata:\n labels:\n app: busybox\n spec:\n containers:\n - name: busybox-container\n image: busybox:latest # You can specify a different BusyBox image tag\n command: ["sh", "-c", "echo \''BusyBox container running\'' && sleep 3600"]' + data: >- + apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: + busybox-deployment\n labels:\n app: busybox\nspec:\n replicas: + 1 # You can adjust the number of desired replicas here\n + selector:\n matchLabels:\n app: busybox\n template:\n + metadata:\n labels:\n app: busybox\n spec:\n + containers:\n - name: busybox-container\n image: + busybox:latest # You can specify a different BusyBox image + tag\n command: ["sh", "-c", "echo \'BusyBox container + running\' && sleep 3600"] credentials: - registryUrl: 'https://registry.hub.docker.com' + registryUrl: https://registry.hub.docker.com username: johndoe password: password123 observability: @@ -19567,7 +21377,9 @@ components: properties: name: type: string - description: Name for the DPU Extension Service. Must be unique for a given Tenant + description: >- + Name for the DPU Extension Service. Must be unique for a given + Tenant description: type: - string @@ -19587,7 +21399,9 @@ components: description: Deployment spec for the DPU Extension Service credentials: $ref: '#/components/schemas/DpuExtensionServiceCredentials' - description: Credentials to download resources specified in DPU Extension Service data + description: >- + Credentials to download resources specified in DPU Extension Service + data observability: $ref: '#/components/schemas/DpuExtensionServiceObservability' description: Observability configuration for the DPU Extension Service version @@ -19602,9 +21416,18 @@ components: description: Request data to update an existing DPU Extension Service examples: - name: busybox-ha - data: 'apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: busybox-deployment\n labels:\n app: busybox\nspec:\n replicas: 3 # You can adjust the number of desired replicas here\n selector:\n matchLabels:\n app: busybox\n template:\n metadata:\n labels:\n app: busybox\n spec:\n containers:\n - name: busybox-container\n image: busybox:latest # You can specify a different BusyBox image tag\n command: ["sh", "-c", "echo \''BusyBox container running\'' && sleep 3600"]' + data: >- + apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: + busybox-deployment\n labels:\n app: busybox\nspec:\n replicas: + 3 # You can adjust the number of desired replicas here\n + selector:\n matchLabels:\n app: busybox\n template:\n + metadata:\n labels:\n app: busybox\n spec:\n + containers:\n - name: busybox-container\n image: + busybox:latest # You can specify a different BusyBox image + tag\n command: ["sh", "-c", "echo \'BusyBox container + running\' && sleep 3600"] credentials: - registryUrl: 'https://registry.hub.docker.com' + registryUrl: https://registry.hub.docker.com username: johndoe password: password123 observability: @@ -19615,7 +21438,9 @@ components: properties: name: type: string - description: Name for the DPU Extension Service. Must be unique for a given Tenant + description: >- + Name for the DPU Extension Service. Must be unique for a given + Tenant description: type: string description: Optional description for the DPU Extension Service @@ -19624,16 +21449,20 @@ components: description: Deployment spec for the DPU Extension Service credentials: $ref: '#/components/schemas/DpuExtensionServiceCredentials' - description: Credentials to download resources specified in DPU Extension Service data + description: >- + Credentials to download resources specified in DPU Extension Service + data observability: $ref: '#/components/schemas/DpuExtensionServiceObservability' description: Observability configuration for the DPU Extension Service version DpuExtensionServiceCredentials: title: DpuExtensionServiceCredentials type: object - description: Credentials for retreiving resources specified in DPU Extension Service data + description: >- + Credentials for retreiving resources specified in DPU Extension Service + data examples: - - registryUrl: 'https://registry.hub.docker.com' + - registryUrl: https://registry.hub.docker.com username: johndoe password: password123 properties: @@ -19644,12 +21473,16 @@ components: type: - string - 'null' - description: Username for the registry. Must be specified if registry URL is specified + description: >- + Username for the registry. Must be specified if registry URL is + specified password: type: - string - 'null' - description: Password for the registry. Must be specified if registry URL is specified + description: >- + Password for the registry. Must be specified if registry URL is + specified DpuExtensionServiceObservability: title: DpuExtensionServiceObservability type: object @@ -19740,7 +21573,9 @@ components: readOnly: true dpuExtensionService: $ref: '#/components/schemas/DpuExtensionServiceSummary' - description: Summary of the DPU Extension Service. Deployed version may be different + description: >- + Summary of the DPU Extension Service. Deployed version may be + different version: type: string description: Deployed version of the DPU Extension Service @@ -19750,11 +21585,15 @@ components: created: type: string format: date-time - description: Date/time when this version of the DPU Extension Service Deployment was created + description: >- + Date/time when this version of the DPU Extension Service Deployment + was created updated: type: string format: date-time - description: Date/time when this version of the DPU Extension Service Deployment was updated + description: >- + Date/time when this version of the DPU Extension Service Deployment + was updated DpuExtensionServiceDeploymentStatus: title: DpuExtensionServiceDeploymentStatus type: string @@ -19768,7 +21607,9 @@ components: DpuExtensionServiceDeploymentRequest: title: DpuExtensionServiceDeploymentRequest type: object - description: Request data to deploy of a specific version of a DPU Extension Service on DPUs of an Instance + description: >- + Request data to deploy of a specific version of a DPU Extension Service + on DPUs of an Instance examples: - dpuExtensionServiceId: 3bddb7b4-0963-4278-b311-c212dc758357 version: V1-T1761856992374052 @@ -19929,7 +21770,9 @@ components: - attribute: blockSize replacedBy: prefixLength takeActionBy: '2023-04-15T00:00:00Z' - notice: blockSize' has been deprecated in favor of 'prefixLength'. Please take action as soon as possible + notice: >- + blockSize' has been deprecated in favor of 'prefixLength'. Please + take action as soon as possible properties: attribute: type: @@ -20006,7 +21849,9 @@ components: description: GPU name from the MachineCapability record gpus: type: integer - description: Total number of GPUs (summation of all Machine GPU capability counts) + description: >- + Total number of GPUs (summation of all Machine GPU capability + counts) machines: type: integer description: Number of machines that have this GPU capability @@ -20059,7 +21904,9 @@ components: description: Number of Machines of this Instance Type allocated to Tenants maxAllocatable: type: integer - description: Number of Ready Machines of this Instance Type available for additional allocation to Tenants + description: >- + Number of Ready Machines of this Instance Type available for + additional allocation to Tenants usedMachineStats: $ref: '#/components/schemas/MachineStatusBreakdown' tenants: @@ -20121,15 +21968,23 @@ components: JWTBearerToken: type: http scheme: Bearer - description: |- + description: >- ``` + export JWT_BEARER_TOKEN="" + # Example org name: "acme-inc + export ORG_NAME= + # Use the JWT bearer token in your API request auth header: - curl -v -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $JWT_BEARER_TOKEN" https://carbide-rest-api.carbide.svc.cluster.local/v2/org/$ORG_NAME/carbide/user/current + + curl -v -X GET -H "Content-Type: application/json" -H "Authorization: + Bearer $JWT_BEARER_TOKEN" + https://carbide-rest-api.carbide.svc.cluster.local/v2/org/$ORG_NAME/carbide/user/current + ``` responses: GenericHttpError: @@ -20157,7 +22012,9 @@ components: message: Could not find resource with specified ID data: null ForbiddenError: - description: Error response when user is not authorized to call an endpoint or retrieve/modify objects + description: >- + Error response when user is not authorized to call an endpoint or + retrieve/modify objects content: application/json: schema: