> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/infra-controller/llms.txt.
> For full documentation content, see https://docs.nvidia.com/infra-controller/llms-full.txt.

# Update Instance

PATCH https://carbide-rest-api.carbide.svc.cluster.local/v2/org/{org}/carbide/instance/{instanceId}
Content-Type: application/json

Update an Instance by ID

Org must have a Tenant entity. Instance must belong to Tenant. User must have `FORGE_TENANT_ADMIN` authorization role.

Reference: https://docs.nvidia.com/infra-controller/infra-controller/rest-api-reference/api-reference/instance/update-instance

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: NCX Infra Controller REST API
  version: 1.0.0
paths:
  /v2/org/{org}/carbide/instance/{instanceId}:
    patch:
      operationId: update-instance
      summary: Update Instance
      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.
      tags:
        - subpackage_instance
      parameters:
        - name: org
          in: path
          required: true
          schema:
            type: string
        - name: instanceId
          in: path
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >-
            ```

            export JWT_BEARER_TOKEN="<jwt-bearer-token>"


            # Example org name: "acme-inc

            export ORG_NAME=<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

            ```
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Instance'
        '400':
          description: Error response when request data cannot be validated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CarbideAPIError'
        '403':
          description: >-
            Error response when user is not authorized to call an endpoint or
            retrieve/modify objects
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CarbideAPIError'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InstanceUpdateRequest'
servers:
  - url: https://carbide-rest-api.carbide.svc.cluster.local
components:
  schemas:
    Labels:
      type: object
      additionalProperties:
        type: string
      title: Labels
    InterfaceCreateRequest:
      type: object
      properties:
        subnetId:
          type: string
          format: uuid
        vpcPrefixId:
          type: string
          format: uuid
        ipAddress:
          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.
        isPhysical:
          type: boolean
          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
        virtualFunctionId:
          type:
            - integer
            - 'null'
          description: >-
            Index of the virtual function to use, must be specified if
            isPhysical is false
      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.
      title: InterfaceCreateRequest
    InfiniBandInterfaceCreateRequest:
      type: object
      properties:
        partitionId:
          type: string
          format: uuid
          description: ID of the Partition the Interface should attach to
        device:
          type: string
          description: Name of the InfiniBand device to use
        vendor:
          type:
            - string
            - 'null'
          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
        isPhysical:
          type: boolean
          description: >-
            Specifies whether this Partition should be attached to the Instance
            over physical interface
        virtualFunctionId:
          type:
            - integer
            - 'null'
          description: Must be specified if isPhysical is false
      description: >-
        Request data to create an InfiniBand Interface for an Instance by
        associating it with an InfiniBand Partition
      title: InfiniBandInterfaceCreateRequest
    NVLinkInterfaceCreateRequest:
      type: object
      properties:
        nvLinklogicalPartitionId:
          type: string
          format: uuid
          description: ID of the NVLink Logical Partition the Interface should attach to
        deviceInstance:
          type: integer
          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: >-
        Request data to create an NVLink Interface for an Instance by
        associating a specific GPU index with an NVLink Logical Partition.
      title: NVLinkInterfaceCreateRequest
    DpuExtensionServiceDeploymentRequest:
      type: object
      properties:
        dpuExtensionServiceId:
          type: string
          format: uuid
          description: ID of the DPU Extension Service to deploy
        version:
          type: string
          description: Version of the DPU Extension Service to deploy
      description: >-
        Request data to deploy of a specific version of a DPU Extension Service
        on DPUs of an Instance
      title: DpuExtensionServiceDeploymentRequest
    InstanceUpdateRequest:
      type: object
      properties:
        name:
          type:
            - string
            - 'null'
          description: Updated name for the Instance
        description:
          type:
            - string
            - 'null'
          description: Updated description of the Instance
        triggerReboot:
          type:
            - boolean
            - 'null'
          description: Trigger power cycle for Instance
        rebootWithCustomIpxe:
          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.
        applyUpdatesOnReboot:
          type:
            - boolean
            - 'null'
          description: >-
            When specified, any updates pending for the Instance e.g. DPU
            reprovisioning, will be applied on reboot
        operatingSystemId:
          type:
            - string
            - 'null'
          description: The UUID of the desired operating system.
        ipxeScript:
          type:
            - string
            - 'null'
          description: The iPXE script content to be used for booting.
        sshKeyGroupIds:
          type: array
          items:
            type: string
            format: uuid
          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.
        networkSecurityGroupId:
          type:
            - string
            - 'null'
        userData:
          type:
            - string
            - 'null'
          description: >-
            Any user-data to be sent to the booting OS.  For example, cloud-init
            data.
        alwaysBootWithCustomIpxe:
          type:
            - boolean
            - 'null'
          description: Whether the custom iPXE data should be used for every boot.
        phoneHomeEnabled:
          type:
            - boolean
            - 'null'
          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.
        secondaryVpcIds:
          type: array
          items:
            type: string
            format: uuid
          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`.
        interfaces:
          type: array
          items:
            $ref: '#/components/schemas/InterfaceCreateRequest'
          description: Update Interfaces of the Instance
        infinibandInterfaces:
          type: array
          items:
            $ref: '#/components/schemas/InfiniBandInterfaceCreateRequest'
          description: Update InfiniBand Interfaces of the Instance
        nvLinkInterfaces:
          type: array
          items:
            $ref: '#/components/schemas/NVLinkInterfaceCreateRequest'
          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.
        dpuExtensionServiceDeployments:
          type: array
          items:
            $ref: '#/components/schemas/DpuExtensionServiceDeploymentRequest'
          description: >-
            Updated set of DPU Extension Services to deploy to the DPUs of this
            Instance
      description: Request data to update Instance
      title: InstanceUpdateRequest
    NetworkSecurityGroupPropagationDetailsDetailedStatus:
      type: string
      enum:
        - None
        - Partial
        - Full
        - Unknown
        - Error
      title: NetworkSecurityGroupPropagationDetailsDetailedStatus
    NetworkSecurityGroupPropagationStatus:
      type: string
      enum:
        - Synchronizing
        - Synchronized
        - Error
      description: Status values for Network Security Group propagation
      title: NetworkSecurityGroupPropagationStatus
    NetworkSecurityGroupPropagationDetails:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The VPC or Instance ID
        detailedStatus:
          $ref: >-
            #/components/schemas/NetworkSecurityGroupPropagationDetailsDetailedStatus
        status:
          $ref: '#/components/schemas/NetworkSecurityGroupPropagationStatus'
        details:
          type:
            - string
            - 'null'
        unpropagatedInstanceIds:
          type: array
          items:
            type: string
            format: uuid
        relatedInstanceIds:
          type: array
          items:
            type: string
            format: uuid
      description: The Network Security Group propagation details for a VPC or Instance
      title: NetworkSecurityGroupPropagationDetails
    InterfaceStatus:
      type: string
      enum:
        - Pending
        - Provisioning
        - Ready
        - Deleting
        - Error
      description: Status values for Interface objects
      title: InterfaceStatus
    Interface:
      type: object
      properties:
        id:
          type: string
          format: uuid
        instanceId:
          type: string
          format: uuid
        subnetId:
          type:
            - string
            - 'null'
          format: uuid
        vpcPrefixId:
          type:
            - string
            - 'null'
          format: uuid
        isPhysical:
          type: boolean
        device:
          type:
            - string
            - 'null'
          description: Name of the device to use
        deviceInstance:
          type:
            - integer
            - 'null'
          description: >-
            Index of the device, used to identify which interface card to
            attache the Partition to
        virtualFunctionId:
          type:
            - integer
            - 'null'
          description: Must be specified if isPhysical is false
        macAddress:
          type:
            - string
            - 'null'
        ipAddresses:
          type: array
          items:
            type: string
          description: A list of IPv4 or IPv6 addresses
        requestedIpAddress:
          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.
        status:
          $ref: '#/components/schemas/InterfaceStatus'
        created:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
      description: Associates an Instance with a Subnet
      title: Interface
    InfiniBandInterfaceStatus:
      type: string
      enum:
        - Pending
        - Provisioning
        - Ready
        - Deleting
        - Error
      description: Status values for InfiniBand Interface objects
      title: InfiniBandInterfaceStatus
    InfiniBandInterface:
      type: object
      properties:
        id:
          type: string
          format: uuid
        instanceId:
          type: string
          format: uuid
        partitionId:
          type: string
          format: uuid
          description: ID of the InfiniBand Partition associated with this interface
        device:
          type: string
          description: Name of the InfiniBand device associated with this interface
        deviceInstance:
          type: integer
        isPhysical:
          type: boolean
          description: Indicates whether this is a physical interface
        virtualFunctionId:
          type:
            - integer
            - 'null'
        guid:
          type:
            - string
            - 'null'
        status:
          $ref: '#/components/schemas/InfiniBandInterfaceStatus'
        created:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
      description: >-
        Defines an interface created by associating an Instance with an
        InfiniBand Partition
      title: InfiniBandInterface
    NVLinkInterfaceStatus:
      type: string
      enum:
        - Pending
        - Provisioning
        - Ready
        - Deleting
        - Error
      description: Status values for NVLink Interface objects
      title: NVLinkInterfaceStatus
    NVLinkInterface:
      type: object
      properties:
        id:
          type: string
          format: uuid
        instanceId:
          type: string
          format: uuid
        nvLinkLogicalPartitionId:
          type: string
          format: uuid
          description: ID of the NVLink Logical Partition associated with this interface
        nvLinkDomainId:
          type: string
          format: uuid
          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
        gpuGuid:
          type: string
          description: Unique ID of the GPU
        status:
          $ref: '#/components/schemas/NVLinkInterfaceStatus'
        created:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
      description: >-
        Defines an interface created by associating a GPU of an Instance with an
        NVLink Logical Partition
      title: NVLinkInterface
    DpuExtensionServiceSummaryServiceType:
      type: string
      enum:
        - KubernetesPod
      description: Type of the DPU Extension Service
      title: DpuExtensionServiceSummaryServiceType
    DpuExtensionServiceStatus:
      type: string
      enum:
        - Pending
        - Ready
        - Error
        - Deleting
      description: Status values for DPU Extension Service objects
      title: DpuExtensionServiceStatus
    DpuExtensionServiceSummary:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the DPU Extension Service
        name:
          type: string
          description: >-
            Name for the DPU Extension Service. Must be unique for a given
            Tenant
        serviceType:
          $ref: '#/components/schemas/DpuExtensionServiceSummaryServiceType'
          description: Type of the DPU Extension Service
        latestVersion:
          type:
            - string
            - 'null'
          description: Latest version of the DPU Extension Service
        status:
          $ref: '#/components/schemas/DpuExtensionServiceStatus'
          description: Status of the DPU Extension Service
      description: >-
        DPU Extension Service allows user defined services to run on DPUs of
        their Instances
      title: DpuExtensionServiceSummary
    DpuExtensionServiceDeploymentStatus:
      type: string
      enum:
        - Pending
        - Running
        - Error
        - Failed
        - Terminating
      description: Status values for DPU Extension Service Deployment objects
      title: DpuExtensionServiceDeploymentStatus
    DpuExtensionServiceDeployment:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the DPU Extension Service Deployment
        dpuExtensionService:
          $ref: '#/components/schemas/DpuExtensionServiceSummary'
          description: >-
            Summary of the DPU Extension Service. Deployed version may be
            different
        version:
          type: string
          description: Deployed version of the DPU Extension Service
        status:
          $ref: '#/components/schemas/DpuExtensionServiceDeploymentStatus'
          description: Status of the DPU Extension Service Deployment
        created:
          type: string
          format: date-time
          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: Describes a deployment of a DPU Extension Service on DPUs of an Instance
      title: DpuExtensionServiceDeployment
    SshKey:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the key
        name:
          type: string
        org:
          type: string
        tenantId:
          type: string
          format: uuid
        fingerprint:
          type: string
          description: SHA256 fingerprint of the public key
        created:
          type: string
          format: date-time
          description: Date/time when the SSH key was created
        updated:
          type: string
          format: date-time
          description: Date/time when the SSH key was last updated
      description: Details of SSH public key
      title: SshKey
    SiteCapabilities:
      type: object
      properties:
        nativeNetworking:
          type: boolean
        networkSecurityGroup:
          type: boolean
        nvLinkPartition:
          type: boolean
        rackLevelAdministration:
          type: boolean
        imageBasedOperatingSystem:
          type: boolean
      description: Boolean flags to indicate features supported by a Site
      title: SiteCapabilities
    SiteStatus:
      type: string
      enum:
        - Pending
        - Registered
        - Error
      description: Status values for Site objects
      title: SiteStatus
    SiteSummary:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
          description: Name of the Site
        infrastructureProviderId:
          type: string
          format: uuid
        isSerialConsoleEnabled:
          type: boolean
          description: Indicates if Serial Console is enabled for the Site by the Provider
        isOnline:
          type: boolean
          description: Indicates if the Site is currently reachable from Cloud
        capabilities:
          $ref: '#/components/schemas/SiteCapabilities'
        status:
          $ref: '#/components/schemas/SiteStatus'
      description: >-
        SiteSummary contains a subset of data for Site object, used when nesting
        in other objects
      title: SiteSummary
    SshKeyGroupSiteAssociationStatus:
      type: string
      enum:
        - Syncing
        - Synced
        - Pending
        - Error
        - Deleting
      description: Status values for SSH Key Group Site Association objects
      title: SshKeyGroupSiteAssociationStatus
    SshKeyGroupSiteAssociation:
      type: object
      properties:
        site:
          $ref: '#/components/schemas/SiteSummary'
        status:
          $ref: '#/components/schemas/SshKeyGroupSiteAssociationStatus'
        version:
          type: string
          description: Version of the Key Group on Site
        created:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
      description: Describes the relationship between an SSH Key Group and a Site
      title: SshKeyGroupSiteAssociation
    SshKeyGroupStatus:
      type: string
      enum:
        - Syncing
        - Synced
        - Error
        - Deleting
      description: Status values for SSH Key Group objects
      title: SshKeyGroupStatus
    StatusDetail:
      type: object
      properties:
        status:
          type: string
        message:
          type: string
        created:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
      description: Describes the details of a status transition for a resource
      title: StatusDetail
    SshKeyGroup:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the SSH Key Group
        name:
          type: string
          description: Name of the SSH Key Group
        description:
          type:
            - string
            - 'null'
          description: Description for the SSH Key Group, optional
        org:
          type: string
          description: Organization this SSH Key Group belongs to
        tenantId:
          type: string
          format: uuid
          description: ID of the Tenane the SSH Key Group belongs to
        version:
          type: string
          description: Version of the SSH Key Group
        sshKeys:
          type: array
          items:
            $ref: '#/components/schemas/SshKey'
          description: SSH Keys associated with this SSH Key Group
        siteAssociations:
          type: array
          items:
            $ref: '#/components/schemas/SshKeyGroupSiteAssociation'
          description: Sites the SSH Key Group is synced to
        status:
          $ref: '#/components/schemas/SshKeyGroupStatus'
          description: Status of the SSH Key Group
        statusHistory:
          type: array
          items:
            $ref: '#/components/schemas/StatusDetail'
          description: History of the SSH Key Group states
        created:
          type: string
          format: date-time
          description: Date/time when the SSH key was created
        updated:
          type: string
          format: date-time
          description: Date/time when the SSH key was last updated
      description: Describes the model that groups SSH Keys
      title: SshKeyGroup
    InstanceStatus:
      type: string
      enum:
        - Pending
        - Provisioning
        - Configuring
        - Ready
        - Updating
        - Rebooting
        - Terminating
        - Error
      description: Status values for Instance objects
      title: InstanceStatus
    Deprecation:
      type: object
      properties:
        attribute:
          type:
            - string
            - 'null'
        queryParam:
          type:
            - string
            - 'null'
        endpoint:
          type:
            - string
            - 'null'
        replacedBy:
          type:
            - string
            - 'null'
        takeActionBy:
          type: string
          format: date-time
        notice:
          type: string
      description: Details of a particular deprecation in NCX Infra Controller API
      title: Deprecation
    Instance:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the Instance
        name:
          type: string
          description: Name for the Instance
        description:
          type: string
          description: Description for the Instance
        tenantId:
          type: string
          format: uuid
          description: ID of the Tenant the Instance belongs to
        infrastructureProviderId:
          type: string
          format: uuid
          description: >-
            ID of the Infrastructure Provider that owns the Site where the
            Instance is located
        siteId:
          type: string
          format: uuid
          description: ID of the Site where the Instance is located
        instanceTypeId:
          type: string
          format: uuid
        vpcId:
          type: string
          format: uuid
        secondaryVpcIds:
          type: array
          items:
            type: string
            format: uuid
          description: IDs of VPCs attached to the Instance through non-primary interfaces
        machineId:
          type:
            - string
            - 'null'
        operatingSystemId:
          type: string
          format: uuid
        networkSecurityGroupId:
          type:
            - string
            - 'null'
        networkSecurityGroupPropagationDetails:
          $ref: '#/components/schemas/NetworkSecurityGroupPropagationDetails'
          description: Propagation details for the attached Network Security Group
        networkSecurityGroupInherited:
          type: boolean
          description: Indicates if the Network Security Group is inherited from VPC
        controllerInstanceId:
          type:
            - string
            - 'null'
          format: uuid
        ipxeScript:
          type:
            - string
            - 'null'
        alwaysBootWithCustomIpxe:
          type: boolean
          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
        userData:
          type:
            - string
            - 'null'
        labels:
          $ref: '#/components/schemas/Labels'
        isUpdatePending:
          type: boolean
          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://<id>@siteSerialConsoleHostname
        interfaces:
          type: array
          items:
            $ref: '#/components/schemas/Interface'
        infinibandInterfaces:
          type: array
          items:
            $ref: '#/components/schemas/InfiniBandInterface'
        nvLinkInterfaces:
          type: array
          items:
            $ref: '#/components/schemas/NVLinkInterface'
        dpuExtensionServiceDeployments:
          type: array
          items:
            $ref: '#/components/schemas/DpuExtensionServiceDeployment'
          description: DPU Extension Services deployed on DPUs of this Instance
        sshKeyGroupIds:
          type: array
          items:
            type: string
            format: uuid
          description: IDs of SSH Key Groups associated with this Instance
        sshKeyGroups:
          type: array
          items:
            $ref: '#/components/schemas/SshKeyGroup'
          description: IDs of SSH Key Groups associated with this Instance
        tpmEkCertificate:
          type:
            - string
            - 'null'
          description: base64 encoded TPM EK Certificate associated with this Instance
        status:
          $ref: '#/components/schemas/InstanceStatus'
        statusHistory:
          type: array
          items:
            $ref: '#/components/schemas/StatusDetail'
        deprecations:
          type: array
          items:
            $ref: '#/components/schemas/Deprecation'
        created:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
      description: Instance is a baremetal Machine that has been provisioned for a Tenant
      title: Instance
    CarbideApiErrorSource:
      type: string
      enum:
        - carbide
      description: Source of the error. Only 'carbide' is supported
      title: CarbideApiErrorSource
    CarbideApiErrorData:
      type: object
      properties: {}
      description: Additional data about the error
      title: CarbideApiErrorData
    CarbideAPIError:
      type: object
      properties:
        source:
          $ref: '#/components/schemas/CarbideApiErrorSource'
          description: Source of the error. Only 'carbide' is supported
        message:
          type: string
          description: Message describing the error
        data:
          oneOf:
            - $ref: '#/components/schemas/CarbideApiErrorData'
            - type: 'null'
          description: Additional data about the error
      description: Describes the error response from NCX Infra Controller REST API
      title: CarbideAPIError
  securitySchemes:
    JWTBearerToken:
      type: http
      scheme: bearer
      description: >-
        ```

        export JWT_BEARER_TOKEN="<jwt-bearer-token>"


        # Example org name: "acme-inc

        export ORG_NAME=<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

        ```

```

## SDK Code Examples

```python example-1
import requests

url = "https://carbide-rest-api.carbide.svc.cluster.local/v2/org/org/carbide/instance/instanceId"

payload = {
    "name": "spark-monitor-1",
    "description": "Spark Monitor Node 1",
    "triggerReboot": True,
    "rebootWithCustomIpxe": True,
    "applyUpdatesOnReboot": True,
    "sshKeyGroupIds": ["a7bf2f9c-12f0-4673-be47-12be6d9e16c8"],
    "labels": {
        "region": "portland",
        "env": "staging"
    },
    "interfaces": [
        {
            "vpcPrefixId": "1f492faa-2963-4f21-aab5-9f00b2e40119",
            "isPhysical": True,
            "device": "MT42822 BlueField-2 integrated ConnectX-6 Dx network controller",
            "deviceInstance": 0,
            "virtualFunctionId": None
        },
        {
            "vpcPrefixId": "1f3677dd-5794-4e57-b9b0-aebaf49b84fe",
            "isPhysical": False,
            "device": "MT42822 BlueField-2 integrated ConnectX-6 Dx network controller",
            "deviceInstance": 0,
            "virtualFunctionId": 1
        },
        {
            "vpcPrefixId": "29e6f51b-145c-4f89-8c26-accaa8328398",
            "isPhysical": False,
            "device": "MT42822 BlueField-2 integrated ConnectX-6 Dx network controller",
            "deviceInstance": 0,
            "virtualFunctionId": 2
        }
    ],
    "infinibandInterfaces": [
        {
            "partitionId": "550e8400-e29b-41d4-a716-446655440000",
            "device": "MT2910 Family [ConnectX-7]",
            "deviceInstance": 0,
            "isPhysical": True
        },
        {
            "partitionId": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
            "device": "MT2910 Family [ConnectX-7]",
            "deviceInstance": 1,
            "isPhysical": False
        },
        {
            "partitionId": "8b05d5c3-8de4-48c8-8d1c-399a8abc3ab8",
            "device": "MT2910 Family [ConnectX-7]",
            "deviceInstance": 2,
            "isPhysical": False
        }
    ],
    "nvLinkInterfaces": [
        {
            "deviceInstance": 0,
            "nvLinkLogicalPartitionId": "2f8676fd-d228-4db5-ac76-1cfc74f48a23"
        },
        {
            "deviceInstance": 1,
            "nvLinkLogicalPartitionId": "2f8676fd-d228-4db5-ac76-1cfc74f48a23"
        },
        {
            "deviceInstance": 2,
            "nvLinkLogicalPartitionId": "2f8676fd-d228-4db5-ac76-1cfc74f48a23"
        },
        {
            "deviceInstance": 3,
            "nvLinkLogicalPartitionId": "2f8676fd-d228-4db5-ac76-1cfc74f48a23"
        }
    ],
    "dpuExtensionServiceDeployments": [
        {
            "dpuExtensionServiceId": "3bddb7b4-0963-4278-b311-c212dc758357",
            "version": "V1-T1761856992374052"
        },
        {
            "dpuExtensionServiceId": "cd4a8168-c206-430a-9a4b-bf7dbbac3b40",
            "version": "V1-T1762294647497908"
        }
    ]
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.patch(url, json=payload, headers=headers)

print(response.json())
```

```javascript example-1
const url = 'https://carbide-rest-api.carbide.svc.cluster.local/v2/org/org/carbide/instance/instanceId';
const options = {
  method: 'PATCH',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"name":"spark-monitor-1","description":"Spark Monitor Node 1","triggerReboot":true,"rebootWithCustomIpxe":true,"applyUpdatesOnReboot":true,"sshKeyGroupIds":["a7bf2f9c-12f0-4673-be47-12be6d9e16c8"],"labels":{"region":"portland","env":"staging"},"interfaces":[{"vpcPrefixId":"1f492faa-2963-4f21-aab5-9f00b2e40119","isPhysical":true,"device":"MT42822 BlueField-2 integrated ConnectX-6 Dx network controller","deviceInstance":0,"virtualFunctionId":null},{"vpcPrefixId":"1f3677dd-5794-4e57-b9b0-aebaf49b84fe","isPhysical":false,"device":"MT42822 BlueField-2 integrated ConnectX-6 Dx network controller","deviceInstance":0,"virtualFunctionId":1},{"vpcPrefixId":"29e6f51b-145c-4f89-8c26-accaa8328398","isPhysical":false,"device":"MT42822 BlueField-2 integrated ConnectX-6 Dx network controller","deviceInstance":0,"virtualFunctionId":2}],"infinibandInterfaces":[{"partitionId":"550e8400-e29b-41d4-a716-446655440000","device":"MT2910 Family [ConnectX-7]","deviceInstance":0,"isPhysical":true},{"partitionId":"6ba7b810-9dad-11d1-80b4-00c04fd430c8","device":"MT2910 Family [ConnectX-7]","deviceInstance":1,"isPhysical":false},{"partitionId":"8b05d5c3-8de4-48c8-8d1c-399a8abc3ab8","device":"MT2910 Family [ConnectX-7]","deviceInstance":2,"isPhysical":false}],"nvLinkInterfaces":[{"deviceInstance":0,"nvLinkLogicalPartitionId":"2f8676fd-d228-4db5-ac76-1cfc74f48a23"},{"deviceInstance":1,"nvLinkLogicalPartitionId":"2f8676fd-d228-4db5-ac76-1cfc74f48a23"},{"deviceInstance":2,"nvLinkLogicalPartitionId":"2f8676fd-d228-4db5-ac76-1cfc74f48a23"},{"deviceInstance":3,"nvLinkLogicalPartitionId":"2f8676fd-d228-4db5-ac76-1cfc74f48a23"}],"dpuExtensionServiceDeployments":[{"dpuExtensionServiceId":"3bddb7b4-0963-4278-b311-c212dc758357","version":"V1-T1761856992374052"},{"dpuExtensionServiceId":"cd4a8168-c206-430a-9a4b-bf7dbbac3b40","version":"V1-T1762294647497908"}]}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go example-1
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://carbide-rest-api.carbide.svc.cluster.local/v2/org/org/carbide/instance/instanceId"

	payload := strings.NewReader("{\n  \"name\": \"spark-monitor-1\",\n  \"description\": \"Spark Monitor Node 1\",\n  \"triggerReboot\": true,\n  \"rebootWithCustomIpxe\": true,\n  \"applyUpdatesOnReboot\": true,\n  \"sshKeyGroupIds\": [\n    \"a7bf2f9c-12f0-4673-be47-12be6d9e16c8\"\n  ],\n  \"labels\": {\n    \"region\": \"portland\",\n    \"env\": \"staging\"\n  },\n  \"interfaces\": [\n    {\n      \"vpcPrefixId\": \"1f492faa-2963-4f21-aab5-9f00b2e40119\",\n      \"isPhysical\": true,\n      \"device\": \"MT42822 BlueField-2 integrated ConnectX-6 Dx network controller\",\n      \"deviceInstance\": 0,\n      \"virtualFunctionId\": null\n    },\n    {\n      \"vpcPrefixId\": \"1f3677dd-5794-4e57-b9b0-aebaf49b84fe\",\n      \"isPhysical\": false,\n      \"device\": \"MT42822 BlueField-2 integrated ConnectX-6 Dx network controller\",\n      \"deviceInstance\": 0,\n      \"virtualFunctionId\": 1\n    },\n    {\n      \"vpcPrefixId\": \"29e6f51b-145c-4f89-8c26-accaa8328398\",\n      \"isPhysical\": false,\n      \"device\": \"MT42822 BlueField-2 integrated ConnectX-6 Dx network controller\",\n      \"deviceInstance\": 0,\n      \"virtualFunctionId\": 2\n    }\n  ],\n  \"infinibandInterfaces\": [\n    {\n      \"partitionId\": \"550e8400-e29b-41d4-a716-446655440000\",\n      \"device\": \"MT2910 Family [ConnectX-7]\",\n      \"deviceInstance\": 0,\n      \"isPhysical\": true\n    },\n    {\n      \"partitionId\": \"6ba7b810-9dad-11d1-80b4-00c04fd430c8\",\n      \"device\": \"MT2910 Family [ConnectX-7]\",\n      \"deviceInstance\": 1,\n      \"isPhysical\": false\n    },\n    {\n      \"partitionId\": \"8b05d5c3-8de4-48c8-8d1c-399a8abc3ab8\",\n      \"device\": \"MT2910 Family [ConnectX-7]\",\n      \"deviceInstance\": 2,\n      \"isPhysical\": false\n    }\n  ],\n  \"nvLinkInterfaces\": [\n    {\n      \"deviceInstance\": 0,\n      \"nvLinkLogicalPartitionId\": \"2f8676fd-d228-4db5-ac76-1cfc74f48a23\"\n    },\n    {\n      \"deviceInstance\": 1,\n      \"nvLinkLogicalPartitionId\": \"2f8676fd-d228-4db5-ac76-1cfc74f48a23\"\n    },\n    {\n      \"deviceInstance\": 2,\n      \"nvLinkLogicalPartitionId\": \"2f8676fd-d228-4db5-ac76-1cfc74f48a23\"\n    },\n    {\n      \"deviceInstance\": 3,\n      \"nvLinkLogicalPartitionId\": \"2f8676fd-d228-4db5-ac76-1cfc74f48a23\"\n    }\n  ],\n  \"dpuExtensionServiceDeployments\": [\n    {\n      \"dpuExtensionServiceId\": \"3bddb7b4-0963-4278-b311-c212dc758357\",\n      \"version\": \"V1-T1761856992374052\"\n    },\n    {\n      \"dpuExtensionServiceId\": \"cd4a8168-c206-430a-9a4b-bf7dbbac3b40\",\n      \"version\": \"V1-T1762294647497908\"\n    }\n  ]\n}")

	req, _ := http.NewRequest("PATCH", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby example-1
require 'uri'
require 'net/http'

url = URI("https://carbide-rest-api.carbide.svc.cluster.local/v2/org/org/carbide/instance/instanceId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"name\": \"spark-monitor-1\",\n  \"description\": \"Spark Monitor Node 1\",\n  \"triggerReboot\": true,\n  \"rebootWithCustomIpxe\": true,\n  \"applyUpdatesOnReboot\": true,\n  \"sshKeyGroupIds\": [\n    \"a7bf2f9c-12f0-4673-be47-12be6d9e16c8\"\n  ],\n  \"labels\": {\n    \"region\": \"portland\",\n    \"env\": \"staging\"\n  },\n  \"interfaces\": [\n    {\n      \"vpcPrefixId\": \"1f492faa-2963-4f21-aab5-9f00b2e40119\",\n      \"isPhysical\": true,\n      \"device\": \"MT42822 BlueField-2 integrated ConnectX-6 Dx network controller\",\n      \"deviceInstance\": 0,\n      \"virtualFunctionId\": null\n    },\n    {\n      \"vpcPrefixId\": \"1f3677dd-5794-4e57-b9b0-aebaf49b84fe\",\n      \"isPhysical\": false,\n      \"device\": \"MT42822 BlueField-2 integrated ConnectX-6 Dx network controller\",\n      \"deviceInstance\": 0,\n      \"virtualFunctionId\": 1\n    },\n    {\n      \"vpcPrefixId\": \"29e6f51b-145c-4f89-8c26-accaa8328398\",\n      \"isPhysical\": false,\n      \"device\": \"MT42822 BlueField-2 integrated ConnectX-6 Dx network controller\",\n      \"deviceInstance\": 0,\n      \"virtualFunctionId\": 2\n    }\n  ],\n  \"infinibandInterfaces\": [\n    {\n      \"partitionId\": \"550e8400-e29b-41d4-a716-446655440000\",\n      \"device\": \"MT2910 Family [ConnectX-7]\",\n      \"deviceInstance\": 0,\n      \"isPhysical\": true\n    },\n    {\n      \"partitionId\": \"6ba7b810-9dad-11d1-80b4-00c04fd430c8\",\n      \"device\": \"MT2910 Family [ConnectX-7]\",\n      \"deviceInstance\": 1,\n      \"isPhysical\": false\n    },\n    {\n      \"partitionId\": \"8b05d5c3-8de4-48c8-8d1c-399a8abc3ab8\",\n      \"device\": \"MT2910 Family [ConnectX-7]\",\n      \"deviceInstance\": 2,\n      \"isPhysical\": false\n    }\n  ],\n  \"nvLinkInterfaces\": [\n    {\n      \"deviceInstance\": 0,\n      \"nvLinkLogicalPartitionId\": \"2f8676fd-d228-4db5-ac76-1cfc74f48a23\"\n    },\n    {\n      \"deviceInstance\": 1,\n      \"nvLinkLogicalPartitionId\": \"2f8676fd-d228-4db5-ac76-1cfc74f48a23\"\n    },\n    {\n      \"deviceInstance\": 2,\n      \"nvLinkLogicalPartitionId\": \"2f8676fd-d228-4db5-ac76-1cfc74f48a23\"\n    },\n    {\n      \"deviceInstance\": 3,\n      \"nvLinkLogicalPartitionId\": \"2f8676fd-d228-4db5-ac76-1cfc74f48a23\"\n    }\n  ],\n  \"dpuExtensionServiceDeployments\": [\n    {\n      \"dpuExtensionServiceId\": \"3bddb7b4-0963-4278-b311-c212dc758357\",\n      \"version\": \"V1-T1761856992374052\"\n    },\n    {\n      \"dpuExtensionServiceId\": \"cd4a8168-c206-430a-9a4b-bf7dbbac3b40\",\n      \"version\": \"V1-T1762294647497908\"\n    }\n  ]\n}"

response = http.request(request)
puts response.read_body
```

```java example-1
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.patch("https://carbide-rest-api.carbide.svc.cluster.local/v2/org/org/carbide/instance/instanceId")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"name\": \"spark-monitor-1\",\n  \"description\": \"Spark Monitor Node 1\",\n  \"triggerReboot\": true,\n  \"rebootWithCustomIpxe\": true,\n  \"applyUpdatesOnReboot\": true,\n  \"sshKeyGroupIds\": [\n    \"a7bf2f9c-12f0-4673-be47-12be6d9e16c8\"\n  ],\n  \"labels\": {\n    \"region\": \"portland\",\n    \"env\": \"staging\"\n  },\n  \"interfaces\": [\n    {\n      \"vpcPrefixId\": \"1f492faa-2963-4f21-aab5-9f00b2e40119\",\n      \"isPhysical\": true,\n      \"device\": \"MT42822 BlueField-2 integrated ConnectX-6 Dx network controller\",\n      \"deviceInstance\": 0,\n      \"virtualFunctionId\": null\n    },\n    {\n      \"vpcPrefixId\": \"1f3677dd-5794-4e57-b9b0-aebaf49b84fe\",\n      \"isPhysical\": false,\n      \"device\": \"MT42822 BlueField-2 integrated ConnectX-6 Dx network controller\",\n      \"deviceInstance\": 0,\n      \"virtualFunctionId\": 1\n    },\n    {\n      \"vpcPrefixId\": \"29e6f51b-145c-4f89-8c26-accaa8328398\",\n      \"isPhysical\": false,\n      \"device\": \"MT42822 BlueField-2 integrated ConnectX-6 Dx network controller\",\n      \"deviceInstance\": 0,\n      \"virtualFunctionId\": 2\n    }\n  ],\n  \"infinibandInterfaces\": [\n    {\n      \"partitionId\": \"550e8400-e29b-41d4-a716-446655440000\",\n      \"device\": \"MT2910 Family [ConnectX-7]\",\n      \"deviceInstance\": 0,\n      \"isPhysical\": true\n    },\n    {\n      \"partitionId\": \"6ba7b810-9dad-11d1-80b4-00c04fd430c8\",\n      \"device\": \"MT2910 Family [ConnectX-7]\",\n      \"deviceInstance\": 1,\n      \"isPhysical\": false\n    },\n    {\n      \"partitionId\": \"8b05d5c3-8de4-48c8-8d1c-399a8abc3ab8\",\n      \"device\": \"MT2910 Family [ConnectX-7]\",\n      \"deviceInstance\": 2,\n      \"isPhysical\": false\n    }\n  ],\n  \"nvLinkInterfaces\": [\n    {\n      \"deviceInstance\": 0,\n      \"nvLinkLogicalPartitionId\": \"2f8676fd-d228-4db5-ac76-1cfc74f48a23\"\n    },\n    {\n      \"deviceInstance\": 1,\n      \"nvLinkLogicalPartitionId\": \"2f8676fd-d228-4db5-ac76-1cfc74f48a23\"\n    },\n    {\n      \"deviceInstance\": 2,\n      \"nvLinkLogicalPartitionId\": \"2f8676fd-d228-4db5-ac76-1cfc74f48a23\"\n    },\n    {\n      \"deviceInstance\": 3,\n      \"nvLinkLogicalPartitionId\": \"2f8676fd-d228-4db5-ac76-1cfc74f48a23\"\n    }\n  ],\n  \"dpuExtensionServiceDeployments\": [\n    {\n      \"dpuExtensionServiceId\": \"3bddb7b4-0963-4278-b311-c212dc758357\",\n      \"version\": \"V1-T1761856992374052\"\n    },\n    {\n      \"dpuExtensionServiceId\": \"cd4a8168-c206-430a-9a4b-bf7dbbac3b40\",\n      \"version\": \"V1-T1762294647497908\"\n    }\n  ]\n}")
  .asString();
```

```php example-1
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('PATCH', 'https://carbide-rest-api.carbide.svc.cluster.local/v2/org/org/carbide/instance/instanceId', [
  'body' => '{
  "name": "spark-monitor-1",
  "description": "Spark Monitor Node 1",
  "triggerReboot": true,
  "rebootWithCustomIpxe": true,
  "applyUpdatesOnReboot": true,
  "sshKeyGroupIds": [
    "a7bf2f9c-12f0-4673-be47-12be6d9e16c8"
  ],
  "labels": {
    "region": "portland",
    "env": "staging"
  },
  "interfaces": [
    {
      "vpcPrefixId": "1f492faa-2963-4f21-aab5-9f00b2e40119",
      "isPhysical": true,
      "device": "MT42822 BlueField-2 integrated ConnectX-6 Dx network controller",
      "deviceInstance": 0,
      "virtualFunctionId": null
    },
    {
      "vpcPrefixId": "1f3677dd-5794-4e57-b9b0-aebaf49b84fe",
      "isPhysical": false,
      "device": "MT42822 BlueField-2 integrated ConnectX-6 Dx network controller",
      "deviceInstance": 0,
      "virtualFunctionId": 1
    },
    {
      "vpcPrefixId": "29e6f51b-145c-4f89-8c26-accaa8328398",
      "isPhysical": false,
      "device": "MT42822 BlueField-2 integrated ConnectX-6 Dx network controller",
      "deviceInstance": 0,
      "virtualFunctionId": 2
    }
  ],
  "infinibandInterfaces": [
    {
      "partitionId": "550e8400-e29b-41d4-a716-446655440000",
      "device": "MT2910 Family [ConnectX-7]",
      "deviceInstance": 0,
      "isPhysical": true
    },
    {
      "partitionId": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
      "device": "MT2910 Family [ConnectX-7]",
      "deviceInstance": 1,
      "isPhysical": false
    },
    {
      "partitionId": "8b05d5c3-8de4-48c8-8d1c-399a8abc3ab8",
      "device": "MT2910 Family [ConnectX-7]",
      "deviceInstance": 2,
      "isPhysical": false
    }
  ],
  "nvLinkInterfaces": [
    {
      "deviceInstance": 0,
      "nvLinkLogicalPartitionId": "2f8676fd-d228-4db5-ac76-1cfc74f48a23"
    },
    {
      "deviceInstance": 1,
      "nvLinkLogicalPartitionId": "2f8676fd-d228-4db5-ac76-1cfc74f48a23"
    },
    {
      "deviceInstance": 2,
      "nvLinkLogicalPartitionId": "2f8676fd-d228-4db5-ac76-1cfc74f48a23"
    },
    {
      "deviceInstance": 3,
      "nvLinkLogicalPartitionId": "2f8676fd-d228-4db5-ac76-1cfc74f48a23"
    }
  ],
  "dpuExtensionServiceDeployments": [
    {
      "dpuExtensionServiceId": "3bddb7b4-0963-4278-b311-c212dc758357",
      "version": "V1-T1761856992374052"
    },
    {
      "dpuExtensionServiceId": "cd4a8168-c206-430a-9a4b-bf7dbbac3b40",
      "version": "V1-T1762294647497908"
    }
  ]
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp example-1
using RestSharp;

var client = new RestClient("https://carbide-rest-api.carbide.svc.cluster.local/v2/org/org/carbide/instance/instanceId");
var request = new RestRequest(Method.PATCH);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"name\": \"spark-monitor-1\",\n  \"description\": \"Spark Monitor Node 1\",\n  \"triggerReboot\": true,\n  \"rebootWithCustomIpxe\": true,\n  \"applyUpdatesOnReboot\": true,\n  \"sshKeyGroupIds\": [\n    \"a7bf2f9c-12f0-4673-be47-12be6d9e16c8\"\n  ],\n  \"labels\": {\n    \"region\": \"portland\",\n    \"env\": \"staging\"\n  },\n  \"interfaces\": [\n    {\n      \"vpcPrefixId\": \"1f492faa-2963-4f21-aab5-9f00b2e40119\",\n      \"isPhysical\": true,\n      \"device\": \"MT42822 BlueField-2 integrated ConnectX-6 Dx network controller\",\n      \"deviceInstance\": 0,\n      \"virtualFunctionId\": null\n    },\n    {\n      \"vpcPrefixId\": \"1f3677dd-5794-4e57-b9b0-aebaf49b84fe\",\n      \"isPhysical\": false,\n      \"device\": \"MT42822 BlueField-2 integrated ConnectX-6 Dx network controller\",\n      \"deviceInstance\": 0,\n      \"virtualFunctionId\": 1\n    },\n    {\n      \"vpcPrefixId\": \"29e6f51b-145c-4f89-8c26-accaa8328398\",\n      \"isPhysical\": false,\n      \"device\": \"MT42822 BlueField-2 integrated ConnectX-6 Dx network controller\",\n      \"deviceInstance\": 0,\n      \"virtualFunctionId\": 2\n    }\n  ],\n  \"infinibandInterfaces\": [\n    {\n      \"partitionId\": \"550e8400-e29b-41d4-a716-446655440000\",\n      \"device\": \"MT2910 Family [ConnectX-7]\",\n      \"deviceInstance\": 0,\n      \"isPhysical\": true\n    },\n    {\n      \"partitionId\": \"6ba7b810-9dad-11d1-80b4-00c04fd430c8\",\n      \"device\": \"MT2910 Family [ConnectX-7]\",\n      \"deviceInstance\": 1,\n      \"isPhysical\": false\n    },\n    {\n      \"partitionId\": \"8b05d5c3-8de4-48c8-8d1c-399a8abc3ab8\",\n      \"device\": \"MT2910 Family [ConnectX-7]\",\n      \"deviceInstance\": 2,\n      \"isPhysical\": false\n    }\n  ],\n  \"nvLinkInterfaces\": [\n    {\n      \"deviceInstance\": 0,\n      \"nvLinkLogicalPartitionId\": \"2f8676fd-d228-4db5-ac76-1cfc74f48a23\"\n    },\n    {\n      \"deviceInstance\": 1,\n      \"nvLinkLogicalPartitionId\": \"2f8676fd-d228-4db5-ac76-1cfc74f48a23\"\n    },\n    {\n      \"deviceInstance\": 2,\n      \"nvLinkLogicalPartitionId\": \"2f8676fd-d228-4db5-ac76-1cfc74f48a23\"\n    },\n    {\n      \"deviceInstance\": 3,\n      \"nvLinkLogicalPartitionId\": \"2f8676fd-d228-4db5-ac76-1cfc74f48a23\"\n    }\n  ],\n  \"dpuExtensionServiceDeployments\": [\n    {\n      \"dpuExtensionServiceId\": \"3bddb7b4-0963-4278-b311-c212dc758357\",\n      \"version\": \"V1-T1761856992374052\"\n    },\n    {\n      \"dpuExtensionServiceId\": \"cd4a8168-c206-430a-9a4b-bf7dbbac3b40\",\n      \"version\": \"V1-T1762294647497908\"\n    }\n  ]\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift example-1
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "name": "spark-monitor-1",
  "description": "Spark Monitor Node 1",
  "triggerReboot": true,
  "rebootWithCustomIpxe": true,
  "applyUpdatesOnReboot": true,
  "sshKeyGroupIds": ["a7bf2f9c-12f0-4673-be47-12be6d9e16c8"],
  "labels": [
    "region": "portland",
    "env": "staging"
  ],
  "interfaces": [
    [
      "vpcPrefixId": "1f492faa-2963-4f21-aab5-9f00b2e40119",
      "isPhysical": true,
      "device": "MT42822 BlueField-2 integrated ConnectX-6 Dx network controller",
      "deviceInstance": 0,
      "virtualFunctionId": 
    ],
    [
      "vpcPrefixId": "1f3677dd-5794-4e57-b9b0-aebaf49b84fe",
      "isPhysical": false,
      "device": "MT42822 BlueField-2 integrated ConnectX-6 Dx network controller",
      "deviceInstance": 0,
      "virtualFunctionId": 1
    ],
    [
      "vpcPrefixId": "29e6f51b-145c-4f89-8c26-accaa8328398",
      "isPhysical": false,
      "device": "MT42822 BlueField-2 integrated ConnectX-6 Dx network controller",
      "deviceInstance": 0,
      "virtualFunctionId": 2
    ]
  ],
  "infinibandInterfaces": [
    [
      "partitionId": "550e8400-e29b-41d4-a716-446655440000",
      "device": "MT2910 Family [ConnectX-7]",
      "deviceInstance": 0,
      "isPhysical": true
    ],
    [
      "partitionId": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
      "device": "MT2910 Family [ConnectX-7]",
      "deviceInstance": 1,
      "isPhysical": false
    ],
    [
      "partitionId": "8b05d5c3-8de4-48c8-8d1c-399a8abc3ab8",
      "device": "MT2910 Family [ConnectX-7]",
      "deviceInstance": 2,
      "isPhysical": false
    ]
  ],
  "nvLinkInterfaces": [
    [
      "deviceInstance": 0,
      "nvLinkLogicalPartitionId": "2f8676fd-d228-4db5-ac76-1cfc74f48a23"
    ],
    [
      "deviceInstance": 1,
      "nvLinkLogicalPartitionId": "2f8676fd-d228-4db5-ac76-1cfc74f48a23"
    ],
    [
      "deviceInstance": 2,
      "nvLinkLogicalPartitionId": "2f8676fd-d228-4db5-ac76-1cfc74f48a23"
    ],
    [
      "deviceInstance": 3,
      "nvLinkLogicalPartitionId": "2f8676fd-d228-4db5-ac76-1cfc74f48a23"
    ]
  ],
  "dpuExtensionServiceDeployments": [
    [
      "dpuExtensionServiceId": "3bddb7b4-0963-4278-b311-c212dc758357",
      "version": "V1-T1761856992374052"
    ],
    [
      "dpuExtensionServiceId": "cd4a8168-c206-430a-9a4b-bf7dbbac3b40",
      "version": "V1-T1762294647497908"
    ]
  ]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://carbide-rest-api.carbide.svc.cluster.local/v2/org/org/carbide/instance/instanceId")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PATCH"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```