---
title: "Create VPC peering"
method: POST
path: "/v2/org/{org}/nico/vpc-peering"
tags: ["VPC Peering"]
---

# Create VPC peering

`POST /v2/org/{org}/nico/vpc-peering`

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).

User must have authorization role with `TENANT_ADMIN` or `PROVIDER_ADMIN` suffix.

## Request body

- VpcPeeringCreateRequest — Request data to create a VPC peering between two VPCs, the ordering of VPCs is not important
  - `vpc1Id` string, uuid, required — ID of the first VPC in the peering
  - `vpc2Id` string, uuid, required — ID of the second VPC to peer with
  - `siteId` string, uuid, required — ID of the Site where the peering exists

## Response `201`

Created

- VpcPeering — VPC peering connection between two VPCs on the same site
  - `id` string, uuid — Unique identifier of the VPC peering
  - `vpc1Id` string, uuid — ID of the first VPC in the peering
  - `vpc1` VpcPeeringVpcSummary — Summarizes a VPC in context of a VPC Peering
    - `id` string, uuid — ID of the VPC
    - `name` string — Name of the VPC
    - `tenantId` string, uuid — ID of the tenant
    - `tenant` VpcPeeringTenantSummary — Summarizes a Tenant in context of a VPC Peering
      - `id` string, uuid — ID of the Tenant
      - `org` string — Name of the org this tenant belongs to
      - `orgDisplayName` string, nullable — Display name of the org the Tenant belongs to
    - `networkVirtualizationType` 'ETHERNET_VIRTUALIZER' | 'FNN' | 'FLAT', nullable — Network virtualization type of the VPC
    - `status` 'Pending' | 'Provisioning' | 'Ready' | 'Configuring' | 'Deleting' | 'Error' — Status values for VPC objects
  - `vpc2Id` string, uuid — ID of the second VPC in the peering
  - `vpc2` VpcPeeringVpcSummary — Summarizes a VPC in context of a VPC Peering
    - `id` string, uuid — ID of the VPC
    - `name` string — Name of the VPC
    - `tenantId` string, uuid — ID of the tenant
    - `tenant` VpcPeeringTenantSummary — Summarizes a Tenant in context of a VPC Peering
      - `id` string, uuid — ID of the Tenant
      - `org` string — Name of the org this tenant belongs to
      - `orgDisplayName` string, nullable — Display name of the org the Tenant belongs to
    - `networkVirtualizationType` 'ETHERNET_VIRTUALIZER' | 'FNN' | 'FLAT', nullable — Network virtualization type of the VPC
    - `status` 'Pending' | 'Provisioning' | 'Ready' | 'Configuring' | 'Deleting' | 'Error' — Status values for VPC objects
  - `siteId` string, uuid — ID of the Site where the peering exists
  - `site` SiteSummary — SiteSummary contains a subset of data for Site object, used when nesting in other objects
    - `id` string, uuid — Unique UUID v4 identifier for the Site
    - `name` string — Name of the Site
    - `infrastructureProviderId` string, uuid — ID of the Infrastructure Provider that owns the Site
    - `isSerialConsoleEnabled` boolean — Indicates if Serial Console is enabled for the Site by the Provider
    - `isOnline` boolean — Indicates if the Site is currently reachable from Cloud
    - `capabilities` SiteCapabilities — Boolean flags to indicate features supported by a Site
      - `nativeNetworking` boolean — Whether the Site supports native networking
      - `networkSecurityGroup` boolean — Whether the Site supports Network Security Groups
      - `nvLinkPartition` boolean — Whether the Site supports NVLink partitioning
      - `flow` boolean — Whether the Site supports Flow-based operations
      - `imageBasedOperatingSystem` boolean — Whether the Site supports image-based operating system provisioning
    - `status` 'Pending' | 'Registered' | 'Error' — Status values for Site objects
  - `tenantId` string, uuid — ID of the tenant that created the VPC peering.
  - `tenant` TenantSummary — Summarizes a Tenant
    - `org` string — Name of the org this tenant belongs to
    - `orgDisplayName` string, nullable — Display name of the org the Tenant belongs to
    - `capabilities` TenantCapabilities — Deprecated tenant-wide capability summary. TargetedInstanceCreation is no longer stored on the Tenant entity; it is configured on Tenant Account `siteCapabilities` (and may be overridden per Site via Tenant Site configuration). On GET `/tenant/current`, `targetedInstanceCreation` is present and `true` only when the Tenant has at least one Ready Tenant Account, every Ready Tenant Account has the capability enabled by default, and no Tenant Site explicitly disables it. Otherwise the property is omitted. Embedded `TenantSummary.capabilities` objects in nested resources also omit the property.
      - `targetedInstanceCreation` boolean — Deprecated in favor of TenantAccount.siteCapabilities. On GET `/tenant/current`, the property is present and true only when every Ready Tenant Account enables TargetedInstanceCreation and no Tenant Site explicitly disables it; otherwise it is omitted. It is also omitted from embedded TenantSummary objects.
    - `deprecations` Deprecation[] — Deprecation notices for Tenant fields
      - `attribute` string, nullable — Name of the attribute that is deprecated. Omitted if queryParam or endpoint is being deprecated.
      - `queryParam` string, nullable — Query parameter that is deprecated. Omitted if attribute or endpoint is being deprecated.
      - `endpoint` string, nullable — API endpoint that is deprecated. Omitted if attribute or queryParam is being deprecated.
      - `replacedBy` string, nullable — Name of the attribute, query parameter, or endpoint that replaces the deprecated item. Omitted if no replacement is available.
      - `takeActionBy` string, date-time — Date/time by which clients should migrate away from the deprecated API surface
      - `notice` string — Message describing the deprecation
  - `isMultiTenant` boolean — Indicates if this is a multi-tenant peering (VPCs from different tenants)
  - `status` 'Pending' | 'Configuring' | 'Requested' | 'Ready' | 'Deleting' | 'Error' — Status values for VPC peering objects
  - `created` string, date-time — Date and time when the VPC peering was created
  - `updated` string, date-time — Date and time when the VPC peering was last updated

## Other responses

- `400` — Error response when request data cannot be validated
- `403` — Error response when user is not authorized to call an endpoint or retrieve/modify objects
- `404` — Error response when requested object is not found

---

[API](https://skmtc.net/nvidia/apis/nvidia-infra-controller-rest-api.md) · [All operations](https://skmtc.net/nvidia/apis/nvidia-infra-controller-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/nvidia/nvidia-infra-controller-rest-api/revisions/4c29fe59bd4e/schema)
