diff --git a/rest-api/api/pkg/api/handler/instancetype.go b/rest-api/api/pkg/api/handler/instancetype.go index 99bffd12e6..b820eb1017 100644 --- a/rest-api/api/pkg/api/handler/instancetype.go +++ b/rest-api/api/pkg/api/handler/instancetype.go @@ -650,7 +650,7 @@ func (gaith GetAllInstanceTypeHandler) Handle(c echo.Context) error { instanceTypeIDsToMachineInstanceTypeMap[mi.InstanceTypeID] = append(instanceTypeIDsToMachineInstanceTypeMap[mi.InstanceTypeID], cmi) } - var instantTypeIDsToAllocStatsMap map[uuid.UUID]*model.APIAllocationStats + var instantTypeIDsToAllocStatsMap map[uuid.UUID]*model.APIInstanceTypeAllocationStats if includeAllocationStats { instantTypeIDsToAllocStatsMap, apiErr = common.GetAllInstanceTypeAllocationStats(ctx, gaith.dbSession, stID, itIDs, logger, tenantID) if apiErr != nil { @@ -844,7 +844,7 @@ func (gith GetInstanceTypeHandler) Handle(c echo.Context) error { } // Allocation stats info for this Tnstance Type - var aas *model.APIAllocationStats + var aas *model.APIInstanceTypeAllocationStats if includeAllocationStats { aas, apiErr = common.GetInstanceTypeAllocationStats(ctx, gith.dbSession, logger, *it, tenantID) diff --git a/rest-api/api/pkg/api/handler/stats.go b/rest-api/api/pkg/api/handler/stats.go index 5076a43d56..1d1195993f 100644 --- a/rest-api/api/pkg/api/handler/stats.go +++ b/rest-api/api/pkg/api/handler/stats.go @@ -305,8 +305,8 @@ func (gtitsh GetTenantInstanceTypeStatsHandler) Handle(c echo.Context) error { return acc + ac.ConstraintValue }, 0) - apiAllocs := lo.Map(details, func(ac cdbm.AllocationConstraint, _ int) model.APITenantInstanceTypeAllocation { - return model.APITenantInstanceTypeAllocation{ + apiAllocs := lo.Map(details, func(ac cdbm.AllocationConstraint, _ int) model.APITenantInstanceTypeAllocationStats { + return model.APITenantInstanceTypeAllocationStats{ ID: ac.Allocation.ID.String(), Name: ac.Allocation.Name, Total: ac.ConstraintValue, diff --git a/rest-api/api/pkg/api/handler/stats_test.go b/rest-api/api/pkg/api/handler/stats_test.go index d65b07e827..22b7a23554 100644 --- a/rest-api/api/pkg/api/handler/stats_test.go +++ b/rest-api/api/pkg/api/handler/stats_test.go @@ -522,7 +522,7 @@ func TestStatsHandlers(t *testing.T) { assert.Equal(t, 0, gpuLStats.UsedMachineStats.Unknown) assert.Equal(t, 2, len(gpuLStats.Tenants)) // alpha, beta - gpuLTenantByName := make(map[string]model.APIMachineInstanceTypeTenant) + gpuLTenantByName := make(map[string]model.APIMachineInstanceTypeTenantStats) for _, tn := range gpuLStats.Tenants { gpuLTenantByName[tn.Name] = tn } @@ -563,7 +563,7 @@ func TestStatsHandlers(t *testing.T) { assert.Equal(t, 1, gpuSStats.UsedMachineStats.Initializing) assert.Equal(t, 3, len(gpuSStats.Tenants)) // alpha, beta, gamma - gpuSTenantByName := make(map[string]model.APIMachineInstanceTypeTenant) + gpuSTenantByName := make(map[string]model.APIMachineInstanceTypeTenantStats) for _, tn := range gpuSStats.Tenants { gpuSTenantByName[tn.Name] = tn } diff --git a/rest-api/api/pkg/api/handler/subnet_test.go b/rest-api/api/pkg/api/handler/subnet_test.go index d78d190b0d..485675f2ea 100644 --- a/rest-api/api/pkg/api/handler/subnet_test.go +++ b/rest-api/api/pkg/api/handler/subnet_test.go @@ -213,9 +213,6 @@ func TestSubnetHandler_Create(t *testing.T) { okBody, err := json.Marshal(model.APISubnetCreateRequest{Name: "ok1", Description: cutil.GetPtr(""), VpcID: vpc1.ID.String(), IPv4BlockID: cutil.GetPtr(ipb1.ID.String()), PrefixLength: prefixLen}) assert.Nil(t, err) - errBodyIPBlockSize, err := json.Marshal(model.APISubnetCreateRequest{Name: "okipb", Description: cutil.GetPtr(""), VpcID: vpc1.ID.String(), IPv4BlockID: cutil.GetPtr(ipb1.ID.String()), IPBlockSize: &prefixLen}) - assert.Nil(t, err) - prefixLen = 16 okBodyFG, err := json.Marshal(model.APISubnetCreateRequest{Name: "okFG", Description: cutil.GetPtr(""), VpcID: vpc1.ID.String(), IPv4BlockID: cutil.GetPtr(ipbFG.ID.String()), PrefixLength: prefixLen}) assert.Nil(t, err) @@ -407,13 +404,6 @@ func TestSubnetHandler_Create(t *testing.T) { expectedStatus: http.StatusCreated, expectedGateway: "192.168.0.1", expectedPrefix: "192.168.0.0", - }, { - name: "error when ipBlockSize is specified", - reqOrgName: tnOrg1, - reqBody: string(errBodyIPBlockSize), - user: tnu, - expectedErr: true, - expectedStatus: http.StatusBadRequest, }, { name: "success case with Full Grant", diff --git a/rest-api/api/pkg/api/handler/util/common/common.go b/rest-api/api/pkg/api/handler/util/common/common.go index 2d3f471538..5ff0859e5f 100644 --- a/rest-api/api/pkg/api/handler/util/common/common.go +++ b/rest-api/api/pkg/api/handler/util/common/common.go @@ -607,7 +607,7 @@ func GetAndValidateQueryRelations(qParams url.Values, relatedEntities map[string } // GetAllInstanceTypeAllocationStats is a utility function to get all instance type allocation stats -func GetAllInstanceTypeAllocationStats(ctx context.Context, dbSession *cdb.Session, siteID *uuid.UUID, instanceTypeIDs []uuid.UUID, logger zerolog.Logger, tenantID *uuid.UUID) (map[uuid.UUID]*cam.APIAllocationStats, *cutil.APIError) { +func GetAllInstanceTypeAllocationStats(ctx context.Context, dbSession *cdb.Session, siteID *uuid.UUID, instanceTypeIDs []uuid.UUID, logger zerolog.Logger, tenantID *uuid.UUID) (map[uuid.UUID]*cam.APIInstanceTypeAllocationStats, *cutil.APIError) { var instances []cdbm.Instance var serr error @@ -704,10 +704,10 @@ func GetAllInstanceTypeAllocationStats(ctx context.Context, dbSession *cdb.Sessi } // Build allocation stats map for each instance type ID with total, used, max allocatable - allocAPIStatsMap := make(map[uuid.UUID]*cam.APIAllocationStats) + allocAPIStatsMap := make(map[uuid.UUID]*cam.APIInstanceTypeAllocationStats) for _, instanceTypeID := range instanceTypeIDs { - aas := &cam.APIAllocationStats{} + aas := &cam.APIInstanceTypeAllocationStats{} aas.Assigned = instanceTypeIDToMachinesMap[instanceTypeID] aas.Total = instanceTypeToSumConstraintValue[instanceTypeID] @@ -739,7 +739,7 @@ func GetAllInstanceTypeAllocationStats(ctx context.Context, dbSession *cdb.Sessi } // GetInstanceTypeAllocationStats is a utility function to get the allocation stats from allocation constraints and instances based on instancetype -func GetInstanceTypeAllocationStats(ctx context.Context, dbSession *cdb.Session, logger zerolog.Logger, it cdbm.InstanceType, tenantID *uuid.UUID) (*cam.APIAllocationStats, *cutil.APIError) { +func GetInstanceTypeAllocationStats(ctx context.Context, dbSession *cdb.Session, logger zerolog.Logger, it cdbm.InstanceType, tenantID *uuid.UUID) (*cam.APIInstanceTypeAllocationStats, *cutil.APIError) { mstats, err := GetAllInstanceTypeAllocationStats(ctx, dbSession, it.SiteID, []uuid.UUID{it.ID}, logger, tenantID) if err != nil { return nil, err diff --git a/rest-api/api/pkg/api/handler/util/common/common_test.go b/rest-api/api/pkg/api/handler/util/common/common_test.go index aacb306685..5c9358ade0 100644 --- a/rest-api/api/pkg/api/handler/util/common/common_test.go +++ b/rest-api/api/pkg/api/handler/util/common/common_test.go @@ -1443,7 +1443,7 @@ func TestGetInstanceTypeAllocationStats(t *testing.T) { it *cdbm.InstanceType tnas []cdbm.Allocation instances []cdbm.Instance - expectStats *cam.APIAllocationStats + expectStats *cam.APIInstanceTypeAllocationStats expectErr bool logger zerolog.Logger }{ @@ -1452,7 +1452,7 @@ func TestGetInstanceTypeAllocationStats(t *testing.T) { tenantID: cutil.GetPtr(tn1.ID), instances: tn1inss, it: it1, - expectStats: &cam.APIAllocationStats{ + expectStats: &cam.APIInstanceTypeAllocationStats{ Assigned: len(m1s), Total: alc1.ConstraintValue, Used: len(tn1inss), @@ -1467,7 +1467,7 @@ func TestGetInstanceTypeAllocationStats(t *testing.T) { tenantID: cutil.GetPtr(tn2.ID), instances: tn2inss, it: it1, - expectStats: &cam.APIAllocationStats{ + expectStats: &cam.APIInstanceTypeAllocationStats{ Assigned: len(m1s), Total: alc2.ConstraintValue, Used: len(tn2inss), @@ -1482,7 +1482,7 @@ func TestGetInstanceTypeAllocationStats(t *testing.T) { tenantID: cutil.GetPtr(tn3.ID), instances: tn3inss, it: it1, - expectStats: &cam.APIAllocationStats{ + expectStats: &cam.APIInstanceTypeAllocationStats{ Assigned: len(m1s), Total: alc3.ConstraintValue, Used: len(tn3inss), @@ -1497,7 +1497,7 @@ func TestGetInstanceTypeAllocationStats(t *testing.T) { tenantID: nil, instances: it1inss, it: it1, - expectStats: &cam.APIAllocationStats{ + expectStats: &cam.APIInstanceTypeAllocationStats{ Assigned: len(m1s), Total: alc1.ConstraintValue + alc2.ConstraintValue + alc3.ConstraintValue, Used: len(it1inss), @@ -1512,7 +1512,7 @@ func TestGetInstanceTypeAllocationStats(t *testing.T) { tenantID: nil, instances: []cdbm.Instance{}, it: it2, - expectStats: &cam.APIAllocationStats{ + expectStats: &cam.APIInstanceTypeAllocationStats{ Assigned: len(m2s), Total: 0, Used: 0, diff --git a/rest-api/api/pkg/api/model/allocationconstraint.go b/rest-api/api/pkg/api/model/allocationconstraint.go index 7e58c0e8b8..e5fc8006fb 100644 --- a/rest-api/api/pkg/api/model/allocationconstraint.go +++ b/rest-api/api/pkg/api/model/allocationconstraint.go @@ -7,6 +7,7 @@ import ( "time" "github.com/NVIDIA/infra-controller/rest-api/api/pkg/api/model/util" + cutil "github.com/NVIDIA/infra-controller/rest-api/common/pkg/util" cdbm "github.com/NVIDIA/infra-controller/rest-api/db/pkg/db/model" validation "github.com/go-ozzo/ozzo-validation/v4" validationis "github.com/go-ozzo/ozzo-validation/v4/is" @@ -19,6 +20,21 @@ const ( ValidationErrorAllocationConstraintConstraintType = "Constraint Type should be Reserved, OnDemand or Preemptible" ) +var ( + // resourceTypeIDDeprecationTime is the time when the ResourceTypeID attribute will be no longer be available in the API + resourceTypeIDDeprecationTime, _ = time.Parse(time.RFC1123, "Thu, 09 Jul 2026 00:00:00 UTC") + + // resourceTypeIDDeprecations is a list of deprecated entities for the ResourceTypeID attribute + allocationConstraintDeprecations = []DeprecatedEntity{ + { + OldValue: "ResourceTypeID", + NewValue: cutil.GetPtr("resourceTypeId"), + Type: DeprecationTypeAttribute, + TakeActionBy: resourceTypeIDDeprecationTime, + }, + } +) + // APIAllocationConstraintCreateRequest captures user request to create a new Allocation Constraint type APIAllocationConstraintCreateRequest struct { // ResourceType is the type of the resource for the Allocation Constraint @@ -82,8 +98,10 @@ type APIAllocationConstraint struct { AllocationID string `json:"allocationId"` // ResourceType is the type of the Resource ResourceType string `json:"resourceType"` + // ResourceTypeIDDeprecated is the deprecated improperly cased attribute + ResourceTypeIDDeprecated *string `json:"ResourceTypeID,omitempty"` // ResourceTypeID is the ID of the resource corresponding to the Allocation Constraint - ResourceTypeID string `bun:"resource_type_id,type:uuid,notnull"` + ResourceTypeID string `json:"resourceTypeId"` // ConstraintType is the type of the Allocation Constraint ConstraintType string `json:"constraintType"` // ConstraintValue is the value of the Allocation Constraint @@ -98,6 +116,8 @@ type APIAllocationConstraint struct { Created time.Time `json:"created"` // UpdatedAt indicates the ISO datetime string for when the entity was last updated Updated time.Time `json:"updated"` + // Deprecations is the list of deprecations for the Allocation Constraint + Deprecations []APIDeprecation `json:"deprecations,omitempty"` } // NewAPIAllocationConstraint accepts a DB layer Allocation Constraint object and returns an API object @@ -122,5 +142,13 @@ func NewAPIAllocationConstraint(cdbm *cdbm.AllocationConstraint, dbinstp *cdbm.I apiac.IPBlock = NewAPIIPBlockSummary(dbipb) } + if time.Now().Before(resourceTypeIDDeprecationTime) { + apiac.ResourceTypeIDDeprecated = cutil.GetPtr(cdbm.ResourceTypeID.String()) + } + + for _, deprecation := range allocationConstraintDeprecations { + apiac.Deprecations = append(apiac.Deprecations, NewAPIDeprecation(deprecation)) + } + return apiac } diff --git a/rest-api/api/pkg/api/model/deprecation.go b/rest-api/api/pkg/api/model/deprecation.go index dec90d2f81..2048f48bae 100644 --- a/rest-api/api/pkg/api/model/deprecation.go +++ b/rest-api/api/pkg/api/model/deprecation.go @@ -36,7 +36,7 @@ type APIDeprecation struct { QueryParam *string `json:"queryParam,omitempty"` // Endpoint denotes the endpoint that is deprecated (optional) Endpoint *string `json:"endpoint,omitempty"` - // ReplacedBy denotes the field that replaces the deprecated field + // ReplacedBy denotes the field that replaces the deprecated field (optional) ReplacedBy *string `json:"replacedBy,omitempty"` // TakeActionBy indicates the ISO datetime string for when the deprecated field will no longer be accepted or available in the API TakeActionBy time.Time `json:"takeActionBy"` diff --git a/rest-api/api/pkg/api/model/instancetype.go b/rest-api/api/pkg/api/model/instancetype.go index 8c0f404abc..fb9fa4babd 100644 --- a/rest-api/api/pkg/api/model/instancetype.go +++ b/rest-api/api/pkg/api/model/instancetype.go @@ -133,7 +133,7 @@ type APIInstanceType struct { // MachineInstanceTypes is the list of machines that are associated to this Instance Type MachineInstanceTypes []APIMachineInstanceType `json:"machineInstanceTypes,omitempty"` // AllocationStats is the stats of allocation that are associated to this Instance Type - AllocationStats *APIAllocationStats `json:"allocationStats,omitempty"` + AllocationStats *APIInstanceTypeAllocationStats `json:"allocationStats,omitempty"` // Deprecations is the list of deprecation messages denoting fields which are being deprecated Deprecations []APIDeprecation `json:"deprecations,omitempty"` // Status is the status of the Instance Type @@ -147,7 +147,7 @@ type APIInstanceType struct { } // NewAPIInstanceType accepts a DB layer Instance Type object returns an API layer object -func NewAPIInstanceType(dbit *cdbm.InstanceType, dbsds []cdbm.StatusDetail, mcs []cdbm.MachineCapability, mit []cdbm.MachineInstanceType, aas *APIAllocationStats) *APIInstanceType { +func NewAPIInstanceType(dbit *cdbm.InstanceType, dbsds []cdbm.StatusDetail, mcs []cdbm.MachineCapability, mit []cdbm.MachineInstanceType, aas *APIInstanceTypeAllocationStats) *APIInstanceType { if dbit == nil { return nil } @@ -223,7 +223,7 @@ func NewAPIInstanceTypeSummary(dbist *cdbm.InstanceType) *APIInstanceTypeSummary } // APIAllocationStats is the data structure to capture API representation of an InstanceType allocation stats -type APIAllocationStats struct { +type APIInstanceTypeAllocationStats struct { // Assigned is the total number of Machines assigned to this Instance Type Assigned int `json:"assigned"` // Total is the total number of Machines allocated to different Tenants for this Instance Type diff --git a/rest-api/api/pkg/api/model/ipblock.go b/rest-api/api/pkg/api/model/ipblock.go index 2c37330c46..1899dacc96 100644 --- a/rest-api/api/pkg/api/model/ipblock.go +++ b/rest-api/api/pkg/api/model/ipblock.go @@ -46,9 +46,6 @@ type APIIPBlockCreateRequest struct { RoutingType string `json:"routingType"` // Prefix is the prefix of the network in CIDR notation Prefix string `json:"prefix"` - // BlockSize is the legacy field for prefixLength - // NOTE: This field has been deprecated - BlockSize *int `json:"blockSize"` // PrefixLength is the length of the prefix PrefixLength int `json:"prefixLength"` // ProtocolVersion is the version of the ip network ipv4 or ipv6 diff --git a/rest-api/api/pkg/api/model/ipblock_test.go b/rest-api/api/pkg/api/model/ipblock_test.go index b7158e2d35..5066f3a4a9 100644 --- a/rest-api/api/pkg/api/model/ipblock_test.go +++ b/rest-api/api/pkg/api/model/ipblock_test.go @@ -94,11 +94,6 @@ func TestAPIIPBlockCreateRequest_Validate(t *testing.T) { obj: APIIPBlockCreateRequest{Name: "ab", Description: cutil.GetPtr("abc"), SiteID: uuid.New().String(), RoutingType: cdbm.IPBlockRoutingTypePublic, Prefix: "192.164.10.0", PrefixLength: prefLen, ProtocolVersion: "ipv4"}, expectErr: true, }, - { - desc: "error when neither BlockSize is specified", - obj: APIIPBlockCreateRequest{Name: "ab", Description: cutil.GetPtr("abc"), SiteID: uuid.New().String(), RoutingType: cdbm.IPBlockRoutingTypePublic, Prefix: "192.164.10.0", BlockSize: cutil.GetPtr(28), ProtocolVersion: cdbm.IPBlockProtocolVersionV4}, - expectErr: true, - }, { desc: "error when prefixLength is not specified", obj: APIIPBlockCreateRequest{Name: "ab", Description: cutil.GetPtr("abc"), SiteID: uuid.New().String(), RoutingType: cdbm.IPBlockRoutingTypePublic, Prefix: "192.164.10.0", ProtocolVersion: cdbm.IPBlockProtocolVersionV4}, diff --git a/rest-api/api/pkg/api/model/networksecuritygroup.go b/rest-api/api/pkg/api/model/networksecuritygroup.go index 2d1794c36a..260ca700e4 100644 --- a/rest-api/api/pkg/api/model/networksecuritygroup.go +++ b/rest-api/api/pkg/api/model/networksecuritygroup.go @@ -105,6 +105,21 @@ var NetworkSecurityGroupRuleAPIPropagationStatusFromProtobufPropagationStatus = cwssaws.NetworkSecurityGroupPropagationStatus_NSG_PROP_STATUS_ERROR: APINetworkSecurityGroupPropagationStatusError, } +var ( + // Time when the NetworkSecurityGroup propagation object_id attribute will be deprecated + networkSecurityGroupPropagationObjectIDDeprecationTime, _ = time.Parse(time.RFC1123, "Thu, 09 Jul 2026 00:00:00 UTC") + + // Deprecations for the NetworkSecurityGroup model + networkSecurityGroupPropagationDetailsDeprecations = []DeprecatedEntity{ + { + OldValue: "object_id", + NewValue: cutil.GetPtr("objectId"), + Type: DeprecationTypeAttribute, + TakeActionBy: networkSecurityGroupPropagationObjectIDDeprecationTime, + }, + } +) + // APINetworkSecurityGroupCreateRequest is the data structure to capture instance request to create a new NetworkSecurityGroup type APINetworkSecurityGroupCreateRequest struct { // Name is the name of the NetworkSecurityGroup @@ -117,7 +132,7 @@ type APINetworkSecurityGroupCreateRequest struct { Rules []APINetworkSecurityGroupRule `json:"rules"` // StatefulEgress defines whether a NetworkSecurityGroup's egress rules will be automatically stateful StatefulEgress bool `json:"statefulEgress"` - // Labels to be associted with the NetworkSecurityGroup + // Labels to be associated with the NetworkSecurityGroup Labels map[string]string `json:"labels"` } @@ -624,7 +639,9 @@ func NewAPINetworkSecurityGroupSummary(dbsg *cdbm.NetworkSecurityGroup) *APINetw type APINetworkSecurityGroupPropagationDetails struct { // The ID of the object (VPC/Instance/etc) for these details - ObjectID string `json:"object_id"` + ObjectIDDeprecated *string `json:"object_id,omitempty"` + // The ID of the object (VPC/Instance/etc) for these details + ObjectID string `json:"objectId"` // The detailed propagation status that was // actually returned from NICo DetailedStatus string `json:"detailedStatus"` @@ -640,6 +657,8 @@ type APINetworkSecurityGroupPropagationDetails struct { // IDs of any instances associated with the ObjectID that have // not yet updated their NSG rules. UnpropagatedInstanceIds []string `json:"unpropagatedInstanceIds"` + // Deprecations is the list of deprecations for the NetworkSecurityGroupPropagationDetails + Deprecations []APIDeprecation `json:"deprecations,omitempty"` } func NewAPINetworkSecurityGroupPropagationDetails(s *cdbm.NetworkSecurityGroupPropagationDetails) *APINetworkSecurityGroupPropagationDetails { @@ -654,6 +673,10 @@ func NewAPINetworkSecurityGroupPropagationDetails(s *cdbm.NetworkSecurityGroupPr UnpropagatedInstanceIds: s.NetworkSecurityGroupPropagationObjectStatus.UnpropagatedInstanceIds, } + if time.Now().Before(networkSecurityGroupPropagationObjectIDDeprecationTime) { + details.ObjectIDDeprecated = cutil.GetPtr(s.NetworkSecurityGroupPropagationObjectStatus.Id) + } + status, found := NetworkSecurityGroupRuleAPIPropagationDetailedStatusFromProtobufPropagationStatus[s.Status] if !found { // We could return an error, but we should probably _not_ fail @@ -675,5 +698,9 @@ func NewAPINetworkSecurityGroupPropagationDetails(s *cdbm.NetworkSecurityGroupPr details.Status = status + for _, deprecation := range networkSecurityGroupPropagationDetailsDeprecations { + details.Deprecations = append(details.Deprecations, NewAPIDeprecation(deprecation)) + } + return details } diff --git a/rest-api/api/pkg/api/model/nvlinkinterface.go b/rest-api/api/pkg/api/model/nvlinkinterface.go index 280d2a54bb..652ebfcd59 100644 --- a/rest-api/api/pkg/api/model/nvlinkinterface.go +++ b/rest-api/api/pkg/api/model/nvlinkinterface.go @@ -13,6 +13,21 @@ import ( cdbm "github.com/NVIDIA/infra-controller/rest-api/db/pkg/db/model" ) +var ( + // Time when nvLinklogicalPartitionId attribute will be deprecated + nvLinkLogicalPartitionIDDeprecationTime, _ = time.Parse(time.RFC1123, "Thu, 09 Jul 2026 00:00:00 UTC") + + // Deprecations for the NVLinkInterface model + nvLinkLogicalPartitionIDDeprecations = []DeprecatedEntity{ + { + OldValue: "nvLinklogicalPartitionId", + NewValue: cutil.GetPtr("nvLinkLogicalPartitionId"), + Type: DeprecationTypeAttribute, + TakeActionBy: nvLinkLogicalPartitionIDDeprecationTime, + }, + } +) + // APINVLinkInterfaceCreateRequest is the data structure to capture user request to create a new NVLinkInterface type APINVLinkInterfaceCreateOrUpdateRequest struct { // NVLinkLogicalPartitionID is the ID of the NVLinkLogicalPartition @@ -47,8 +62,10 @@ type APINVLinkInterface struct { InstanceID string `json:"instanceId"` // Instance is the summary of the Instance Instance *APIInstanceSummary `json:"instance,omitempty"` + // NVLinkLogicalPartitionIDDeprecated is the ID of the associated NVLinkLogicalPartition (deprecated) + NVLinkLogicalPartitionIDDeprecated *string `json:"nvLinklogicalPartitionId,omitempty"` // NVLinkLogicalPartitionID is the ID of the associated NVLinkLogicalPartition - NVLinkLogicalPartitionID string `json:"nvLinklogicalPartitionId"` + NVLinkLogicalPartitionID string `json:"nvLinkLogicalPartitionId"` // NVLinkLogicalPartition is the summary of the NVLinkLogicalPartition NVLinkLogicalPartition *APINVLinkLogicalPartitionSummary `json:"nvLinkLogicalPartition,omitempty"` // NVLinkDomainID is the id of the physical NVLink domain that the interface is attached to @@ -63,6 +80,8 @@ type APINVLinkInterface struct { Created time.Time `json:"created"` // Updated is the date and time the entity was last updated Updated time.Time `json:"updated"` + // Deprecations is the list of deprecations for the NVLinkInterface + Deprecations []APIDeprecation `json:"deprecations,omitempty"` } // NewAPINVLinkInterface creates a new APINVLinkInterface @@ -93,6 +112,14 @@ func NewAPINVLinkInterface(dbnvli *cdbm.NVLinkInterface) *APINVLinkInterface { apiNVLinkInterface.NVLinkLogicalPartition = NewAPINVLinkLogicalPartitionSummary(dbnvli.NVLinkLogicalPartition) } + if time.Now().Before(nvLinkLogicalPartitionIDDeprecationTime) { + apiNVLinkInterface.NVLinkLogicalPartitionIDDeprecated = cutil.GetPtr(dbnvli.NVLinkLogicalPartitionID.String()) + } + + for _, deprecation := range nvLinkLogicalPartitionIDDeprecations { + apiNVLinkInterface.Deprecations = append(apiNVLinkInterface.Deprecations, NewAPIDeprecation(deprecation)) + } + return apiNVLinkInterface } diff --git a/rest-api/api/pkg/api/model/nvlinkinterface_test.go b/rest-api/api/pkg/api/model/nvlinkinterface_test.go index 1bf20d47e1..8a5ba2fdba 100644 --- a/rest-api/api/pkg/api/model/nvlinkinterface_test.go +++ b/rest-api/api/pkg/api/model/nvlinkinterface_test.go @@ -5,7 +5,6 @@ package model import ( "encoding/json" - "reflect" "testing" "time" @@ -54,9 +53,14 @@ func TestNewAPINVLinkInterface(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if got := NewAPINVLinkInterface(tt.args.dbnvli); !reflect.DeepEqual(got, tt.want) { - t.Errorf("NewAPINVLinkInterface() = %v, want %v", got, tt.want) - } + got := NewAPINVLinkInterface(tt.args.dbnvli) + assert.Equal(t, tt.want.ID, got.ID) + assert.Equal(t, tt.want.InstanceID, got.InstanceID) + assert.Equal(t, tt.want.NVLinkLogicalPartitionID, got.NVLinkLogicalPartitionID) + assert.Equal(t, tt.want.DeviceInstance, got.DeviceInstance) + assert.Equal(t, tt.want.Status, got.Status) + assert.Equal(t, tt.want.Created, got.Created) + assert.Equal(t, tt.want.Updated, got.Updated) }) } } diff --git a/rest-api/api/pkg/api/model/stats.go b/rest-api/api/pkg/api/model/stats.go index 89beac9a9f..7053aa2530 100644 --- a/rest-api/api/pkg/api/model/stats.go +++ b/rest-api/api/pkg/api/model/stats.go @@ -83,11 +83,11 @@ type APITenantInstanceTypeStatsEntry struct { // MaxAllocatable is the number of Ready Machines of this Instance Type available for additional allocation to Tenants MaxAllocatable int `json:"maxAllocatable"` // Allocations is the list of individual allocations for this instance type within the tenant - Allocations []APITenantInstanceTypeAllocation `json:"allocations"` + Allocations []APITenantInstanceTypeAllocationStats `json:"allocations"` } // APITenantInstanceTypeAllocation represents a single allocation's stats for an instance type -type APITenantInstanceTypeAllocation struct { +type APITenantInstanceTypeAllocationStats struct { // ID is the unique identifier for the Allocation ID string `json:"id"` // Name is the name of the Allocation @@ -161,11 +161,11 @@ type APIMachineInstanceTypeStats struct { // that are currently associated with Tenant Instances UsedMachineStats APIMachineStatusBreakdown `json:"usedMachineStats"` // Tenants is the per-tenant breakdown for this instance type - Tenants []APIMachineInstanceTypeTenant `json:"tenants"` + Tenants []APIMachineInstanceTypeTenantStats `json:"tenants"` } // APIMachineInstanceTypeTenant represents per-tenant allocation stats within an instance type -type APIMachineInstanceTypeTenant struct { +type APIMachineInstanceTypeTenantStats struct { // ID is the unique identifier for the Tenant ID string `json:"id"` // Name is the name of the Tenant @@ -175,11 +175,11 @@ type APIMachineInstanceTypeTenant struct { // UsedMachineStats captures the usage status of machines for this tenant and instance type UsedMachineStats APIMachineStatusBreakdown `json:"usedMachineStats"` // Allocations is the list of individual allocations for this tenant and instance type - Allocations []APIMachineInstanceTypeTenantAllocation `json:"allocations"` + Allocations []APIMachineInstanceTypeTenantAllocationStats `json:"allocations"` } // APIMachineInstanceTypeTenantAllocation represents a single allocation within a tenant's instance type stats -type APIMachineInstanceTypeTenantAllocation struct { +type APIMachineInstanceTypeTenantAllocationStats struct { // ID is the unique identifier for the Allocation ID string `json:"id"` // Name is the name of the Allocation @@ -213,19 +213,19 @@ func NewAPIMachineInstanceTypeStats( // ready machines minus those already reserved (allocated but not yet in use) maxAlloc := max(0, assignedStats.Ready-(allocated-used.Total)) - tenantMap := make(map[uuid.UUID]*APIMachineInstanceTypeTenant) + tenantMap := make(map[uuid.UUID]*APIMachineInstanceTypeTenantStats) for _, ac := range itConstraints { tID := ac.Allocation.TenantID tenantEntry, exists := tenantMap[tID] if !exists { - tenantEntry = &APIMachineInstanceTypeTenant{ + tenantEntry = &APIMachineInstanceTypeTenantStats{ ID: tID.String(), Name: ac.Allocation.Tenant.Org, } tenantMap[tID] = tenantEntry } tenantEntry.Allocated += ac.ConstraintValue - tenantEntry.Allocations = append(tenantEntry.Allocations, APIMachineInstanceTypeTenantAllocation{ + tenantEntry.Allocations = append(tenantEntry.Allocations, APIMachineInstanceTypeTenantAllocationStats{ ID: ac.Allocation.ID.String(), Name: ac.Allocation.Name, Allocated: ac.ConstraintValue, @@ -238,7 +238,7 @@ func NewAPIMachineInstanceTypeStats( } } - tenants := lo.MapToSlice(tenantMap, func(_ uuid.UUID, t *APIMachineInstanceTypeTenant) APIMachineInstanceTypeTenant { + tenants := lo.MapToSlice(tenantMap, func(_ uuid.UUID, t *APIMachineInstanceTypeTenantStats) APIMachineInstanceTypeTenantStats { return *t }) diff --git a/rest-api/api/pkg/api/model/stats_test.go b/rest-api/api/pkg/api/model/stats_test.go index 45983d0199..79797964a6 100644 --- a/rest-api/api/pkg/api/model/stats_test.go +++ b/rest-api/api/pkg/api/model/stats_test.go @@ -125,7 +125,7 @@ func TestAPIMachineInstanceTypeStats_JSON(t *testing.T) { UsedMachineStats: APIMachineStatusBreakdown{ Total: 4, InUse: 2, Error: 1, Maintenance: 1, }, - Tenants: []APIMachineInstanceTypeTenant{ + Tenants: []APIMachineInstanceTypeTenantStats{ { ID: "t-alpha", Name: "alpha-org", @@ -133,7 +133,7 @@ func TestAPIMachineInstanceTypeStats_JSON(t *testing.T) { UsedMachineStats: APIMachineStatusBreakdown{ Total: 3, InUse: 2, Error: 1, }, - Allocations: []APIMachineInstanceTypeTenantAllocation{ + Allocations: []APIMachineInstanceTypeTenantAllocationStats{ {ID: "a-1", Name: "training-reserved", Allocated: 4}, {ID: "a-2", Name: "inference-ondemand", Allocated: 2}, }, @@ -145,7 +145,7 @@ func TestAPIMachineInstanceTypeStats_JSON(t *testing.T) { UsedMachineStats: APIMachineStatusBreakdown{ Total: 1, Maintenance: 1, }, - Allocations: []APIMachineInstanceTypeTenantAllocation{ + Allocations: []APIMachineInstanceTypeTenantAllocationStats{ {ID: "a-3", Name: "simulation-pool", Allocated: 1}, }, }, @@ -233,7 +233,7 @@ func TestAPITenantInstanceTypeStats_JSON(t *testing.T) { Total: 3, InUse: 2, Error: 1, }, MaxAllocatable: 2, - Allocations: []APITenantInstanceTypeAllocation{ + Allocations: []APITenantInstanceTypeAllocationStats{ {ID: "a-1", Name: "training-reserved", Total: 4}, {ID: "a-2", Name: "inference-ondemand", Total: 2}, }, @@ -246,7 +246,7 @@ func TestAPITenantInstanceTypeStats_JSON(t *testing.T) { Total: 2, InUse: 2, }, MaxAllocatable: 1, - Allocations: []APITenantInstanceTypeAllocation{ + Allocations: []APITenantInstanceTypeAllocationStats{ {ID: "a-1", Name: "training-reserved", Total: 3}, }, }, diff --git a/rest-api/api/pkg/api/model/subnet.go b/rest-api/api/pkg/api/model/subnet.go index 874186c1c0..94f2e312c8 100644 --- a/rest-api/api/pkg/api/model/subnet.go +++ b/rest-api/api/pkg/api/model/subnet.go @@ -39,9 +39,6 @@ type APISubnetCreateRequest struct { IPv4BlockID *string `json:"ipv4BlockId"` // IPv6BlockID is the derived IPv6BlockId for the tenant from an allocation IPv6BlockID *string `json:"ipv6BlockId"` - // IPBlockSize the block size for the Subnet - // NOTE: This field has been deprecated - IPBlockSize *int `json:"ipBlockSize"` // PrefixLength is the length of the prefix PrefixLength int `json:"prefixLength"` } diff --git a/rest-api/api/pkg/api/model/tenant.go b/rest-api/api/pkg/api/model/tenant.go index 18f47f51a7..f39e5983ad 100644 --- a/rest-api/api/pkg/api/model/tenant.go +++ b/rest-api/api/pkg/api/model/tenant.go @@ -28,7 +28,8 @@ type APITenant struct { // CreatedAt indicates the ISO datetime string for when the entity was created Created time.Time `json:"created"` // UpdatedAt indicates the ISO datetime string for when the entity was last updated - Updated time.Time `json:"updated"` + Updated time.Time `json:"updated"` + // Capabilities describes tenant-level feature flags Capabilities *APITenantCapabilities `json:"capabilities"` } diff --git a/rest-api/api/pkg/api/model/tenantaccount.go b/rest-api/api/pkg/api/model/tenantaccount.go index 0fc59efc0e..da0191739c 100644 --- a/rest-api/api/pkg/api/model/tenantaccount.go +++ b/rest-api/api/pkg/api/model/tenantaccount.go @@ -18,6 +18,29 @@ const ( validationErrorTenantIDOrOrgRequired = "Either Tenant ID or Tenant Org must be specified" ) +var ( + // Time when the AccountNumber, SubscriptionID, and SubscriptionTier attributes will be deprecated + accountNumberSubscriptionIDTierDeprecationTime, _ = time.Parse(time.RFC1123, "Thu, 09 Jul 2026 00:00:00 UTC") + + tenantAccountDeprecations = []DeprecatedEntity{ + { + OldValue: "accountNumber", + Type: DeprecationTypeAttribute, + TakeActionBy: accountNumberSubscriptionIDTierDeprecationTime, + }, + { + OldValue: "subscriptionId", + Type: DeprecationTypeAttribute, + TakeActionBy: accountNumberSubscriptionIDTierDeprecationTime, + }, + { + OldValue: "subscriptionTier", + Type: DeprecationTypeAttribute, + TakeActionBy: accountNumberSubscriptionIDTierDeprecationTime, + }, + } +) + // APITenantAccountCreateRequest is the data structure to capture user request to create a new Tenant type APITenantAccountCreateRequest struct { // InfrastructureProviderID is the ID of the infrastructureProvider in the org @@ -62,7 +85,7 @@ type APITenantAccount struct { // ID is the unique UUID v4 identifier for the TenantAccount ID string `json:"id"` // AccountNumber is the account number of the TenantAccount - AccountNumber string `json:"accountNumber"` + AccountNumberDeprecated *string `json:"accountNumber,omitempty"` // InfrastructureProviderID is the ID of the InfrastructureProvider InfrastructureProviderID string `json:"infrastructureProviderId"` // InfrastructureProvider is the summary of the InfrastructureProvider @@ -70,9 +93,9 @@ type APITenantAccount struct { // InfrastructureProviderOrg is the org of the InfrastructureProvider InfrastructureProviderOrg string `json:"infrastructureProviderOrg"` // SubscriptionID is the ID of the subscription - SubscriptionID *string `json:"subscriptionId"` + SubscriptionIDDeprecated *string `json:"subscriptionId,omitempty"` // SubscriptionTier is the tier of the subscription - SubscriptionTier *string `json:"subscriptionTier"` + SubscriptionTierDeprecated *string `json:"subscriptionTier,omitempty"` // TenantID is the ID of the Tenant TenantID *string `json:"tenantId"` // Tenant is the summary of the Tenant @@ -91,6 +114,8 @@ type APITenantAccount struct { Created time.Time `json:"created"` // UpdatedAt indicates the ISO datetime string for when the entity was last updated Updated time.Time `json:"updated"` + // Deprecations is the list of deprecations for the TenantAccount + Deprecations []APIDeprecation `json:"deprecations"` } // APITenantAccountStats is a data structure to capture information about a TenantAccount stats at the API layer @@ -111,11 +136,8 @@ type APITenantAccountStats struct { func NewAPITenantAccount(dbta *cdbm.TenantAccount, dbsds []cdbm.StatusDetail, allocationCount int) *APITenantAccount { apiTenantAccount := APITenantAccount{ ID: dbta.ID.String(), - AccountNumber: dbta.AccountNumber, InfrastructureProviderID: dbta.InfrastructureProviderID.String(), InfrastructureProviderOrg: dbta.InfrastructureProviderOrg, - SubscriptionID: dbta.SubscriptionID, - SubscriptionTier: dbta.SubscriptionTier, TenantOrg: dbta.TenantOrg, AllocationCount: allocationCount, Status: dbta.Status, @@ -143,5 +165,15 @@ func NewAPITenantAccount(dbta *cdbm.TenantAccount, dbsds []cdbm.StatusDetail, al apiTenantAccount.StatusHistory = append(apiTenantAccount.StatusHistory, NewAPIStatusDetail(dbsd)) } + if time.Now().Before(accountNumberSubscriptionIDTierDeprecationTime) { + apiTenantAccount.AccountNumberDeprecated = cutil.GetPtr(dbta.AccountNumber) + apiTenantAccount.SubscriptionIDDeprecated = dbta.SubscriptionID + apiTenantAccount.SubscriptionTierDeprecated = dbta.SubscriptionTier + } + + for _, deprecation := range tenantAccountDeprecations { + apiTenantAccount.Deprecations = append(apiTenantAccount.Deprecations, NewAPIDeprecation(deprecation)) + } + return &apiTenantAccount } diff --git a/rest-api/api/pkg/api/model/tenantaccount_test.go b/rest-api/api/pkg/api/model/tenantaccount_test.go index 368bcdaf02..99fa3045bc 100644 --- a/rest-api/api/pkg/api/model/tenantaccount_test.go +++ b/rest-api/api/pkg/api/model/tenantaccount_test.go @@ -4,7 +4,6 @@ package model import ( - "reflect" "testing" "time" @@ -112,13 +111,10 @@ func TestAPITenantAccountUpdateRequest_Validate(t *testing.T) { func TestAPITenantAccountNew(t *testing.T) { dbObj := &cdbm.TenantAccount{ ID: uuid.New(), - AccountNumber: "acctNum", TenantID: cutil.GetPtr(uuid.New()), TenantOrg: "testOrg", InfrastructureProviderID: uuid.New(), InfrastructureProviderOrg: "testIPOrg", - SubscriptionID: cutil.GetPtr(uuid.New().String()), - SubscriptionTier: cutil.GetPtr("someTier"), TenantContactID: cutil.GetPtr(uuid.New()), Status: "Invited", Created: cdb.GetCurTime(), @@ -134,13 +130,10 @@ func TestAPITenantAccountNew(t *testing.T) { } dbObj2 := &cdbm.TenantAccount{ ID: uuid.New(), - AccountNumber: "acctNum", TenantID: cutil.GetPtr(uuid.New()), TenantOrg: "testOrg", InfrastructureProviderID: uuid.New(), InfrastructureProviderOrg: "testIPOrg", - SubscriptionID: cutil.GetPtr(uuid.New().String()), - SubscriptionTier: cutil.GetPtr("someTier"), TenantContact: dbUsr, TenantContactID: cutil.GetPtr(uuid.New()), Status: "Invited", @@ -173,11 +166,8 @@ func TestAPITenantAccountNew(t *testing.T) { sdObj: dbsds, apiObj: &APITenantAccount{ ID: dbObj.ID.String(), - AccountNumber: dbObj.AccountNumber, InfrastructureProviderID: dbObj.InfrastructureProviderID.String(), InfrastructureProviderOrg: dbObj.InfrastructureProviderOrg, - SubscriptionID: dbObj.SubscriptionID, - SubscriptionTier: dbObj.SubscriptionTier, TenantID: cutil.GetPtr(dbObj.TenantID.String()), TenantOrg: dbObj.TenantOrg, TenantContact: nil, @@ -194,11 +184,8 @@ func TestAPITenantAccountNew(t *testing.T) { sdObj: dbsds, apiObj: &APITenantAccount{ ID: dbObj2.ID.String(), - AccountNumber: dbObj2.AccountNumber, InfrastructureProviderID: dbObj2.InfrastructureProviderID.String(), - InfrastructureProviderOrg: dbObj.InfrastructureProviderOrg, - SubscriptionID: dbObj2.SubscriptionID, - SubscriptionTier: dbObj2.SubscriptionTier, + InfrastructureProviderOrg: dbObj2.InfrastructureProviderOrg, TenantID: cutil.GetPtr(dbObj2.TenantID.String()), TenantOrg: dbObj.TenantOrg, TenantContact: apiUsr, @@ -213,7 +200,15 @@ func TestAPITenantAccountNew(t *testing.T) { for _, tc := range tests { t.Run(tc.desc, func(t *testing.T) { got := NewAPITenantAccount(tc.dbObj, tc.sdObj, 2) - assert.Equal(t, true, reflect.DeepEqual(got, tc.apiObj)) + assert.Equal(t, tc.apiObj.ID, got.ID) + assert.Equal(t, tc.apiObj.InfrastructureProviderID, got.InfrastructureProviderID) + assert.Equal(t, tc.apiObj.InfrastructureProviderOrg, got.InfrastructureProviderOrg) + assert.Equal(t, tc.apiObj.TenantID, got.TenantID) + assert.Equal(t, tc.apiObj.TenantOrg, got.TenantOrg) + assert.Equal(t, tc.apiObj.TenantContact, got.TenantContact) + assert.Equal(t, tc.apiObj.AllocationCount, got.AllocationCount) + assert.Equal(t, tc.apiObj.Status, got.Status) + assert.Equal(t, tc.apiObj.StatusHistory, got.StatusHistory) }) } } diff --git a/rest-api/docs/index.html b/rest-api/docs/index.html index 0716e03784..b0e0e64c38 100644 --- a/rest-api/docs/index.html +++ b/rest-api/docs/index.html @@ -482,10 +482,10 @@ 55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864 -231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688, -104.0616 -231.873,-231.248 z - " fill="currentColor">

NVIDIA Infra Controller REST API (1.6.0)

Download OpenAPI specification:

License: Apache-2.0

NVIDIA Infra Controller REST API is the centralized RESTful gateway to access NVIDIA Infra Controller service

-

NVIDIA Infra Controller REST API allows users to create and manage resources e.g. VPC, Subnets, Instances across all connected NVIDIA Infra Controller datacenters, also referred to as Sites.

+ " fill="currentColor">

NVIDIA Infra Controller REST API (1.6.0)

Download OpenAPI specification:

License: Apache-2.0

NVIDIA Infra Controller REST API is the RESTful gateway for accessing the NVIDIA Infra Controller service

+

NVIDIA Infra Controller REST API allows users to create and manage resources, e.g., VPCs, Subnets, and Instances, across all connected NVIDIA Infra Controller datacenters, also referred to as Sites.

Getting Started

This section provides a quick overview of the API and how to get started.

Authentication

@@ -579,8 +579,8 @@

Provider or Tenant Mode

or the Tenant by making a call to the Retrieve Tenant endpoint.

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.

-

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 the Site configuration toml file.

+

Creating Site-Level IP Blocks

+

To use a NICo Site, the Provider or Service Account holder must create IP Blocks for each network overlay defined in the Site configuration TOML file.

To create an IP Block, the user must make a call to the Create IP Block endpoint.

Note: From this point onwards, a brief outline is provided for the typical API call flows for various use cases.

@@ -589,36 +589,36 @@

Typical API Call Flow for Ser
  • Retrieve available Sites using the Retrieve All Sites endpoint 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 using the full prefix length. +
  • For each Site IP Block, create a Network Allocation for the Tenant entity with the full prefix length using the Create Allocation endpoint. 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.
  • -
  • Create a VPC Prefix or Subnet referencing the VPC and a Tenant IP Block

    Typical API Call Flow for Provider

Service Account

Service Account

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 +">

When the 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.

Retrieve Service Account status for current org

Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Name of the Org

Responses

Response Schema: application/json
id
string <uuid>
org
string
orgDisplayName
string or null
created
string <date-time>
updated
string <date-time>

Responses

Response Schema: application/json
object (MachineCountByStatus)

Describes count of Machines in various statuses

-
total
integer
initializing
integer
reset
integer
assigned
integer
ready
integer
error
integer
decommissioned
integer
unknown
integer
object (IpBlockCountByStatus)

Describes counts of IP Blocks in various statuses

-
total
integer
pending
integer
provisioning
integer
ready
integer
deleting
integer
error
integer
object (TenantAccountCountByStatus)

Describes counts of Tenant Accounts in various statuses

-
total
integer
pending
integer
invited
integer
ready
integer
error
integer

Responses

Response Schema: application/json
object (InstanceCountByStatus)

Describes count of Instances in various statuses

-
total
integer
pending
integer
provisioning
integer
ready
integer
terminating
integer
error
integer
object (VpcCountByStatus)

Describes counts of VPCs in various statuses

-
total
integer
pending
integer
provisioning
integer
ready
integer
deleting
integer
error
integer
object (SubnetCountByStatus)

Describes counts of Subnets in various statuses

-
total
integer
pending
integer
provisioning
integer
ready
integer
deleting
integer
error
integer

Response samples

Content type
application/json
{
  • "instance": {
    },
  • "vpc": {
    },
  • "subnet": {
    }
}

Retrieve per-tenant instance type allocation stats for a site

https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/tenant/current/stats

Response samples

Content type
application/json
{
  • "instance": {
    },
  • "vpc": {
    },
  • "subnet": {
    },
  • "tenantAccount": {
    }
}

Retrieve per-tenant instance type allocation stats for a site

Returns instance type allocation stats grouped by tenant for the specified site.

User must have authorization role with PROVIDER_ADMIN suffix. The specified site must belong to the Provider.

@@ -786,28 +882,48 @@

Typical API Call Flow for Tenant

" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Organization name for the Tenant

orgDisplayName
string

Display name for the Tenant's organization

-
Array of objects (InstanceTypeStats)
Array
id
string <uuid>
name
string
allocated
integer
object (MachineStatusBreakdown)

Machine counts broken down by status

-
maxAllocatable
integer
Array of objects (AllocationStats)
Array of objects (InstanceTypeStats)

Instance Type statistics for this Tenant

+
Array
id
string <uuid>

Unique UUID v4 identifier for the Instance Type

+
name
string

Name of the Instance Type

+
allocated
integer

Number of Machines allocated for this Instance Type

+
object (MachineStatusBreakdown)

Usage statistics for Machines allocated to this Instance Type

+
maxAllocatable
integer

Maximum number of Machines of this Instance Type that can be allocated

+
Array of objects (TenantInstanceTypeAllocationStats)

Allocation statistics for this Instance Type

+

Response samples

Content type
application/json
[
  • {
    }
]

Tenant Account

Tenant Account connects a Tenant with an Infrastructure Provider. It represents/contains any information pertaining to their relationship.

+

Deprecation history:

+
    +
  • accountNumber, subscriptionId, and subscriptionTier attributes were deprecated and will be removed on July 9th, 2026 0:00 UTC. Please update your usage accordingly.
  • +

Retrieve all Tenant Accounts

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 authorization role with PROVIDER_ADMIN suffix.

-

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 authorization role with TENANT_ADMIN suffix.

+

Either infrastructureProviderId or tenantId query parameter must be specified.

+

If the infrastructureProviderId query parameter is provided, then org must have an Infrastructure Provider entity and its ID should match the query parameter value. User must have authorization role with PROVIDER_ADMIN suffix.

+

If the tenantId query parameter is provided, then org must have a Tenant entity and its ID should match the query parameter value. User must have authorization role with TENANT_ADMIN suffix.

Authorizations:
JWTBearerToken
path Parameters
org
required
string

Name of the Org

-
query Parameters
infrastructureProviderId
string <uuid>

Filter TenantAccounts by Infrastructure Provider ID

-
tenantId
string <uuid>

Filter TenantAccounts by Tenant ID

+
query Parameters
infrastructureProviderId
string <uuid>

Filter Tenant Accounts by Infrastructure Provider ID

+
tenantId
string <uuid>

Filter Tenant Accounts by Tenant ID

query
string

Search string to filter Tenant Accounts by account number, tenant org, or tenant org display name

includeRelation
string
Enum: "InfrastructureProvider" "Tenant"
Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

OK

Response Headers
X-Pagination
string
Example: "{\"pageNumber\":1,\"pageSize\":20,\"total\":30,\"orderBy\": \"CREATED_DESC\"}"

Pagination result in JSON format

-
Response Schema: application/json
Array
id
string <uuid>
infrastructureProviderId
string <uuid>
infrastructureProviderOrg
string
tenantId
string or null <uuid>
tenantOrg
string or null
object (User)

Details of the user collected from authentication tokens

+
Response Schema: application/json
Array
id
string <uuid>

Unique UUID v4 identifier for the Tenant Account

+
infrastructureProviderId
string <uuid>

ID of the Infrastructure Provider

+
infrastructureProviderOrg
string

Organization name of the Infrastructure Provider

+
tenantId
string or null <uuid>

ID of the Tenant

+
tenantOrg
string or null

Org of the Tenant

+
object (User)

Contact user for the Tenant

id
string <uuid>

Unique identifier for the given user.

-
email
string or null <email>
firstName
string or null
lastName
string or null
created
string <date-time>
email
string or null <email>

Email used by the user to register with NGC

+
firstName
string or null

First name of the user

+
lastName
string or null

Surname of the user

+
created
string <date-time>

The date that the user was created.

-
updated
string <date-time>
allocationCount
integer
status
string (TenantAccountStatus)
Enum: "Pending" "Invited" "Ready" "Error"

Status values for Tenant Account objects

-
Array of objects (StatusDetail)
Array
status
string
message
string or null
created
string <date-time>
updated
string <date-time>
created
string <date-time>
updated
string <date-time>
updated
string <date-time>

Date/time when the user was last updated in NICo

+
allocationCount
integer

Number of Allocations for the Tenant Account

+
status
string (TenantAccountStatus)
Enum: "Pending" "Invited" "Ready" "Error"

Status of the Tenant Account

+
Array of objects (StatusDetail)

Chronological status history for the Tenant Account

+
Array
status
string

State of the associated entity at a particular time

+
message
string or null

Description of the state and cause/remedy in case of error

+
created
string <date-time>

Date/time when the associated entity assumed the status

+
updated
string <date-time>

Date/time when the associated entity was last observed with this status

+
created
string <date-time>

Date/time when the Tenant Account was created

+
updated
string <date-time>

Date/time when the Tenant Account was last updated

+

Response samples

Content type
application/json
[
  • {
    }
]

Create Tenant Account

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 authorization role with PROVIDER_ADMIN suffix

-

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.

+

Infrastructure Provider can create a Tenant Account by specifying the Tenant's UUID or Tenant's org name. This sets the Tenant Account status to "Invited". The Tenant can then view the account information and accept the account by updating the Tenant Account.

Authorizations:
JWTBearerToken
path Parameters
org
required
string

Name of the Org

-
Request Body schema: application/json
infrastructureProviderId
required
string <uuid>
tenantOrg
required
string non-empty ^[A-Za-z0-9-_]+$
Request Body schema: application/json
infrastructureProviderId
required
string <uuid>

ID of the Infrastructure Provider in the organization

+
tenantOrg
required
string non-empty ^[A-Za-z0-9-_]+$

Must be a valid Org name

Responses

Response Schema: application/json
id
string <uuid>
infrastructureProviderId
string <uuid>
infrastructureProviderOrg
string
tenantId
string or null <uuid>
tenantOrg
string or null
object (User)

Details of the user collected from authentication tokens

+
Response Schema: application/json
id
string <uuid>

Unique UUID v4 identifier for the Tenant Account

+
infrastructureProviderId
string <uuid>

ID of the Infrastructure Provider

+
infrastructureProviderOrg
string

Organization name of the Infrastructure Provider

+
tenantId
string or null <uuid>

ID of the Tenant

+
tenantOrg
string or null

Org of the Tenant

+
object (User)

Contact user for the Tenant

id
string <uuid>

Unique identifier for the given user.

-
email
string or null <email>
firstName
string or null
lastName
string or null
created
string <date-time>
email
string or null <email>

Email used by the user to register with NGC

+
firstName
string or null

First name of the user

+
lastName
string or null

Surname of the user

+
created
string <date-time>

The date that the user was created.

-
updated
string <date-time>
allocationCount
integer
status
string (TenantAccountStatus)
Enum: "Pending" "Invited" "Ready" "Error"

Status values for Tenant Account objects

-
Array of objects (StatusDetail)
Array
status
string
message
string or null
created
string <date-time>
updated
string <date-time>
created
string <date-time>
updated
string <date-time>
updated
string <date-time>

Date/time when the user was last updated in NICo

+
allocationCount
integer

Number of Allocations for the Tenant Account

+
status
string (TenantAccountStatus)
Enum: "Pending" "Invited" "Ready" "Error"

Status of the Tenant Account

+
Array of objects (StatusDetail)

Chronological status history for the Tenant Account

+
Array
status
string

State of the associated entity at a particular time

+
message
string or null

Description of the state and cause/remedy in case of error

+
created
string <date-time>

Date/time when the associated entity assumed the status

+
updated
string <date-time>

Date/time when the associated entity was last observed with this status

+
created
string <date-time>

Date/time when the Tenant Account was created

+
updated
string <date-time>

Date/time when the Tenant Account was last updated

+

Request samples

Content type
application/json
{
  • "infrastructureProviderId": "e94bcfda-f6cb-42e4-80ec-516811e5abbf",
  • "tenantOrg": "rf43bbtnb9c5"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "infrastructureProviderId": "e94bcfda-f6cb-42e4-80ec-516811e5abbf",
  • "infrastructureProviderOrg": "xskkpgqpeakn",
  • "tenantId": null,
  • "tenantOrg": "rf43bbtnb9c5",
  • "tenantContact": {
    },
  • "allocationCount": 0,
  • "status": "Pending",
  • "statusHistory": [
    ],
  • "created": "2019-08-24T14:15:22Z",
  • "updated": "2019-08-24T14:15:22Z"
}

Retrieve Tenant Account

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 authorization role with PROVIDER_ADMIN suffix.

-

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 authorization role with TENANT_ADMIN suffix.

+

Either infrastructureProviderId or tenantId query parameter must be specified.

+

If the infrastructureProviderId query parameter is provided, then org must have an Infrastructure Provider entity and its ID should match the query parameter value. User must have authorization role with PROVIDER_ADMIN suffix.

+

If the tenantId query parameter is provided, then org must have a Tenant entity and its ID should match the query parameter value. User must have authorization role with TENANT_ADMIN suffix.

Authorizations:
JWTBearerToken
path Parameters
org
required
string

Name of the Org

accountId
required
string <uuid>
Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

Related entity to expand

Responses

Response Schema: application/json
id
string <uuid>
infrastructureProviderId
string <uuid>
infrastructureProviderOrg
string
tenantId
string or null <uuid>
tenantOrg
string or null
object (User)

Details of the user collected from authentication tokens

+
Response Schema: application/json
id
string <uuid>

Unique UUID v4 identifier for the Tenant Account

+
infrastructureProviderId
string <uuid>

ID of the Infrastructure Provider

+
infrastructureProviderOrg
string

Organization name of the Infrastructure Provider

+
tenantId
string or null <uuid>

ID of the Tenant

+
tenantOrg
string or null

Org of the Tenant

+
object (User)

Contact user for the Tenant

id
string <uuid>

Unique identifier for the given user.

-
email
string or null <email>
firstName
string or null
lastName
string or null
created
string <date-time>
email
string or null <email>

Email used by the user to register with NGC

+
firstName
string or null

First name of the user

+
lastName
string or null

Surname of the user

+
created
string <date-time>

The date that the user was created.

-
updated
string <date-time>
allocationCount
integer
status
string (TenantAccountStatus)
Enum: "Pending" "Invited" "Ready" "Error"

Status values for Tenant Account objects

-
Array of objects (StatusDetail)
Array
status
string
message
string or null
created
string <date-time>
updated
string <date-time>
created
string <date-time>
updated
string <date-time>
updated
string <date-time>

Date/time when the user was last updated in NICo

+
allocationCount
integer

Number of Allocations for the Tenant Account

+
status
string (TenantAccountStatus)
Enum: "Pending" "Invited" "Ready" "Error"

Status of the Tenant Account

+
Array of objects (StatusDetail)

Chronological status history for the Tenant Account

+
Array
status
string

State of the associated entity at a particular time

+
message
string or null

Description of the state and cause/remedy in case of error

+
created
string <date-time>

Date/time when the associated entity assumed the status

+
updated
string <date-time>

Date/time when the associated entity was last observed with this status

+
created
string <date-time>

Date/time when the Tenant Account was created

+
updated
string <date-time>

Date/time when the Tenant Account was last updated

+

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "infrastructureProviderId": "e94bcfda-f6cb-42e4-80ec-516811e5abbf",
  • "infrastructureProviderOrg": "xskkpgqpeakn",
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
  • "tenantOrg": "rf43bbtnb9c5",
  • "tenantContact": {
    },
  • "allocationCount": 2,
  • "status": "Ready",
  • "statusHistory": [
    ],
  • "created": "2019-08-24T14:15:22Z",
  • "updated": "2019-08-24T14:15:22Z"
}

Update Tenant Account

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 authorization role with TENANT_ADMIN suffix. Can only update a TenantAccount that has Invited status.

+

Can be used to accept an invitation sent by an Infrastructure Provider.

+

Org must have a Tenant entity whose ID matches the tenantId of the Tenant Account object. User must have authorization role with TENANT_ADMIN suffix. Can only update a Tenant Account that has Invited status.

Authorizations:
JWTBearerToken
path Parameters
org
required
string

Name of the Org

accountId
required
string <uuid>

ID of the Tenant Account

-
Request Body schema: application/json

No params needed, an empty request body will suffice.

+
Request Body schema: application/json

No parameters are required; an empty request body is sufficient.

object (TenantAccountUpdateRequest)

Request data to update a TenantAccount.

No params needed, an empty request will suffice.

Responses

Response Schema: application/json
id
string <uuid>
infrastructureProviderId
string <uuid>
infrastructureProviderOrg
string
tenantId
string or null <uuid>
tenantOrg
string or null
object (User)

Details of the user collected from authentication tokens

+
Response Schema: application/json
id
string <uuid>

Unique UUID v4 identifier for the Tenant Account

+
infrastructureProviderId
string <uuid>

ID of the Infrastructure Provider

+
infrastructureProviderOrg
string

Organization name of the Infrastructure Provider

+
tenantId
string or null <uuid>

ID of the Tenant

+
tenantOrg
string or null

Org of the Tenant

+
object (User)

Contact user for the Tenant

id
string <uuid>

Unique identifier for the given user.

-
email
string or null <email>
firstName
string or null
lastName
string or null
created
string <date-time>
email
string or null <email>

Email used by the user to register with NGC

+
firstName
string or null

First name of the user

+
lastName
string or null

Surname of the user

+
created
string <date-time>

The date that the user was created.

-
updated
string <date-time>
allocationCount
integer
status
string (TenantAccountStatus)
Enum: "Pending" "Invited" "Ready" "Error"

Status values for Tenant Account objects

-
Array of objects (StatusDetail)
Array
status
string
message
string or null
created
string <date-time>
updated
string <date-time>
created
string <date-time>
updated
string <date-time>
updated
string <date-time>

Date/time when the user was last updated in NICo

+
allocationCount
integer

Number of Allocations for the Tenant Account

+
status
string (TenantAccountStatus)
Enum: "Pending" "Invited" "Ready" "Error"

Status of the Tenant Account

+
Array of objects (StatusDetail)

Chronological status history for the Tenant Account

+
Array
status
string

State of the associated entity at a particular time

+
message
string or null

Description of the state and cause/remedy in case of error

+
created
string <date-time>

Date/time when the associated entity assumed the status

+
updated
string <date-time>

Date/time when the associated entity was last observed with this status

+
created
string <date-time>

Date/time when the Tenant Account was created

+
updated
string <date-time>

Date/time when the Tenant Account was last updated

+

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "infrastructureProviderId": "e94bcfda-f6cb-42e4-80ec-516811e5abbf",
  • "infrastructureProviderOrg": "xskkpgqpeakn",
  • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
  • "tenantOrg": "rf43bbtnb9c5",
  • "tenantContact": {
    },
  • "allocationCount": 0,
  • "status": "Ready",
  • "statusHistory": [
    ],
  • "created": "2019-08-24T14:15:22Z",
  • "updated": "2019-08-24T14:15:22Z"
}

Delete Tenant Account

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 PROVIDER_ADMIN role.

+

Org must have an Infrastructure Provider entity, and the specified Tenant Account must have been created by that Provider. Requesting user must have PROVIDER_ADMIN role.

Tenant cannot delete a Tenant Account.

Authorizations:
JWTBearerToken
path Parameters
org
required
string

Name of the Org

@@ -953,9 +1207,9 @@

Typical API Call Flow for Tenant

  • isRackLevelAdministrationEnabled query parameter was deprecated in favor of isFlowEnabled and was removed on May 13th, 2026 0:00 UTC. Please use isFlowEnabled instead.
  • Retrieve all Sites

    Retrieve all Sites for org.

    -

    User must have authorization role with PROVIDER_ADMIN or TENANT_ADMIN suffix. infrastructureProviderId or tenantId query param may be required for older API versions.

    +

    User must have authorization role with PROVIDER_ADMIN or TENANT_ADMIN suffix. infrastructureProviderId or tenantId query parameter may be required for older API versions.

    Authorizations:
    JWTBearerToken
    path Parameters
    org
    required
    string

    Name of the Org

    query Parameters
    infrastructureProviderId
    string <uuid>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Filter Sites by NVLink partitioning enabled flag. Requires Provider Admin role.

    isFlowEnabled
    boolean

    Filter Sites by NICo Flow enabled flag. Requires Provider Admin role.

    -
    includeMachineStats
    boolean

    Include a breakdown of Machine counts by life-cycle status and health. Requires Provider Admin role.

    +
    includeMachineStats
    boolean

    Include a breakdown of Machine counts by lifecycle status and health. Requires Provider Admin role.

    query
    string

    Search for matches across all Sites. Input will be matched against name, description, location, contact, and status fields

    includeRelation
    string
    Value: "InfrastructureProvider"
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    OK

    Response Headers
    X-Pagination
    string
    Example: "{\"pageNumber\":1,\"pageSize\":20,\"total\":30,\"orderBy\": \"CREATED_DESC\"}"

    Pagination result in JSON format

    -
    Response Schema: application/json
    Array
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    Response Schema: application/json
    Array
    id
    string <uuid>

    Unique UUID v4 identifier for the Site in NICo Cloud

    +
    name
    string [ 2 .. 256 ] characters

    Name of the Site

    description
    string or null

    Optional description for the Site

    -
    org
    string
    infrastructureProviderId
    string <uuid>
    siteControllerVersion
    string or null
    org
    string

    NGC organization ID of the Infrastructure Provider that owns the Site

    +
    infrastructureProviderId
    string <uuid>

    ID of the Infrastructure Provider that owns the Site

    +
    siteControllerVersion
    string or null

    Version of the Site Controller software

    siteAgentVersion
    string or null

    Version of the Site Agent software

    @@ -1000,7 +1260,9 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Token that can be used to register a Site. Value only exposed to Provider

    registrationTokenExpiration
    string or null <date-time>

    Date/time when registration token expires. Value only exposed to Provider

    -
    serialConsoleHostname
    string or null <hostname>
    isSerialConsoleEnabled
    boolean
    serialConsoleHostname
    string or null <hostname>

    Serial console hostname of the site controller

    +
    isSerialConsoleEnabled
    boolean

    Indicates if Serial Console is enabled for the Site by the Provider

    serialConsoleIdleTimeout
    integer or null

    Maximum idle time in seconds before Serial Console is disconnected

    @@ -1010,32 +1272,58 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Only visible to Tenant retrieving the Site. Indicates if Serial Console access using SSH Keys is enabled by Tenant

    isOnline
    boolean

    Indicates if the Site is currently reachable from Cloud

    -
    status
    string (SiteStatus)
    Enum: "Pending" "Registered" "Error"

    Status values for Site objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    updated
    string <date-time>
    object (SiteLocation)

    Location of the Site

    +
    status
    string (SiteStatus)
    Enum: "Pending" "Registered" "Error"

    Status of the Site

    +
    Array of objects (StatusDetail)

    Chronological status history for the Site

    +
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the Site was created

    +
    updated
    string <date-time>

    Date/time when the Site was last updated

    +
    object (SiteLocation)

    Site location information

    city
    string

    City where the site is located

    state
    string

    State where the site is located

    country
    string

    Country where the site is located

    -
    object (SiteContact)

    Contact for the Site

    +
    object (SiteContact)

    Site contact information

    email
    string

    Email address of the Site contact

    -
    object (SiteCapabilities)

    Boolean flags to indicate features supported by a Site

    -
    nativeNetworking
    boolean
    networkSecurityGroup
    boolean
    nvLinkPartition
    boolean
    flow
    boolean
    imageBasedOperatingSystem
    boolean
    object (SiteMachineStats)

    Machine stats for a Site

    -
    total
    integer
    object (SiteMachineStatsByStatus)

    Machine stats for a Site by status

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByStatusAndHealth)

    Machine stats for a Site by status and health

    -
    object (SiteMachineStatsByAllocation)

    Machine stats for a Site by allocation

    +
    object (SiteCapabilities)

    Site capabilities used for feature availability and configuration

    +
    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

    +
    object (SiteMachineStats)

    Machine counts by status for the Site

    +
    total
    integer

    Total number of Machines at the Site

    +
    object (SiteMachineStatsByStatus)

    Machine counts grouped by Machine status

    +
    object (SiteMachineStatsByHealth)

    Machine counts grouped by health state

    +
    object (SiteMachineStatsByStatusAndHealth)

    Machine health counts grouped by Machine status

    +
    object (SiteMachineStatsByAllocation)

    Machine counts grouped by allocation and usage state

    serialConsoleHostname
    string or null <hostname>

    Hostname to reach Serial Console for the Site

    -
    object (SiteLocation)

    Location of the Site

    +
    object (SiteLocation)

    Site location information

    city
    string

    City where the site is located

    state
    string

    State where the site is located

    country
    string

    Country where the site is located

    -
    object (SiteContact)

    Contact for the Site

    +
    object (SiteContact)

    Site contact information

    email
    string

    Email address of the Site contact

    Responses

    Response Schema: application/json
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    Response Schema: application/json
    id
    string <uuid>

    Unique UUID v4 identifier for the Site in NICo Cloud

    +
    name
    string [ 2 .. 256 ] characters

    Name of the Site

    description
    string or null

    Optional description for the Site

    -
    org
    string
    infrastructureProviderId
    string <uuid>
    siteControllerVersion
    string or null
    org
    string

    NGC organization ID of the Infrastructure Provider that owns the Site

    +
    infrastructureProviderId
    string <uuid>

    ID of the Infrastructure Provider that owns the Site

    +
    siteControllerVersion
    string or null

    Version of the Site Controller software

    siteAgentVersion
    string or null

    Version of the Site Agent software

    @@ -1080,7 +1374,9 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Token that can be used to register a Site. Value only exposed to Provider

    registrationTokenExpiration
    string or null <date-time>

    Date/time when registration token expires. Value only exposed to Provider

    -
    serialConsoleHostname
    string or null <hostname>
    isSerialConsoleEnabled
    boolean
    serialConsoleHostname
    string or null <hostname>

    Serial console hostname of the site controller

    +
    isSerialConsoleEnabled
    boolean

    Indicates if Serial Console is enabled for the Site by the Provider

    serialConsoleIdleTimeout
    integer or null

    Maximum idle time in seconds before Serial Console is disconnected

    @@ -1090,49 +1386,101 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Only visible to Tenant retrieving the Site. Indicates if Serial Console access using SSH Keys is enabled by Tenant

    isOnline
    boolean

    Indicates if the Site is currently reachable from Cloud

    -
    status
    string (SiteStatus)
    Enum: "Pending" "Registered" "Error"

    Status values for Site objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    updated
    string <date-time>
    object (SiteLocation)

    Location of the Site

    +
    status
    string (SiteStatus)
    Enum: "Pending" "Registered" "Error"

    Status of the Site

    +
    Array of objects (StatusDetail)

    Chronological status history for the Site

    +
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the Site was created

    +
    updated
    string <date-time>

    Date/time when the Site was last updated

    +
    object (SiteLocation)

    Site location information

    city
    string

    City where the site is located

    state
    string

    State where the site is located

    country
    string

    Country where the site is located

    -
    object (SiteContact)

    Contact for the Site

    +
    object (SiteContact)

    Site contact information

    email
    string

    Email address of the Site contact

    -
    object (SiteCapabilities)

    Boolean flags to indicate features supported by a Site

    -
    nativeNetworking
    boolean
    networkSecurityGroup
    boolean
    nvLinkPartition
    boolean
    flow
    boolean
    imageBasedOperatingSystem
    boolean
    object (SiteMachineStats)

    Machine stats for a Site

    -
    total
    integer
    object (SiteMachineStatsByStatus)

    Machine stats for a Site by status

    -
    Decommissioned
    integer
    Error
    integer
    Initializing
    integer
    InUse
    integer
    Maintenance
    integer
    Ready
    integer
    Reset
    integer
    Unknown
    integer
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    healthy
    integer
    unhealthy
    integer
    object (SiteMachineStatsByStatusAndHealth)

    Machine stats for a Site by status and health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByAllocation)

    Machine stats for a Site by allocation

    -
    allocatedInUse
    integer
    allocatedNotInUse
    integer
    unallocated
    integer
    object (SiteCapabilities)

    Site capabilities used for feature availability and configuration

    +
    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

    +
    object (SiteMachineStats)

    Machine counts by status for the Site

    +
    total
    integer

    Total number of Machines at the Site

    +
    object (SiteMachineStatsByStatus)

    Machine counts grouped by Machine status

    +
    Decommissioned
    integer

    Number of Machines in Decommissioned status

    +
    Error
    integer

    Number of Machines in Error status

    +
    Initializing
    integer

    Number of Machines in Initializing status

    +
    InUse
    integer

    Number of Machines in InUse status

    +
    Maintenance
    integer

    Number of Machines in Maintenance status

    +
    Ready
    integer

    Number of Machines in Ready status

    +
    Reset
    integer

    Number of Machines in Reset status

    +
    Unknown
    integer

    Number of Machines in Unknown status

    +
    object (SiteMachineStatsByHealth)

    Machine counts grouped by health state

    +
    healthy
    integer

    Number of healthy Machines

    +
    unhealthy
    integer

    Number of unhealthy Machines

    +
    object (SiteMachineStatsByStatusAndHealth)

    Machine health counts grouped by Machine status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Decommissioned status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Error status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Initializing status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in InUse status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Maintenance status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Ready status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Reset status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Unknown status

    +
    object (SiteMachineStatsByAllocation)

    Machine counts grouped by allocation and usage state

    +
    allocatedInUse
    integer

    Number of allocated Machines currently in use

    +
    allocatedNotInUse
    integer

    Number of allocated Machines not currently in use

    +
    unallocated
    integer

    Number of Machines not currently allocated

    +

    Responses

    Response Schema: application/json
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    Response Schema: application/json
    id
    string <uuid>

    Unique UUID v4 identifier for the Site in NICo Cloud

    +
    name
    string [ 2 .. 256 ] characters

    Name of the Site

    description
    string or null

    Optional description for the Site

    -
    org
    string
    infrastructureProviderId
    string <uuid>
    siteControllerVersion
    string or null
    org
    string

    NGC organization ID of the Infrastructure Provider that owns the Site

    +
    infrastructureProviderId
    string <uuid>

    ID of the Infrastructure Provider that owns the Site

    +
    siteControllerVersion
    string or null

    Version of the Site Controller software

    siteAgentVersion
    string or null

    Version of the Site Agent software

    @@ -1172,7 +1526,9 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Token that can be used to register a Site. Value only exposed to Provider

    registrationTokenExpiration
    string or null <date-time>

    Date/time when registration token expires. Value only exposed to Provider

    -
    serialConsoleHostname
    string or null <hostname>
    isSerialConsoleEnabled
    boolean
    serialConsoleHostname
    string or null <hostname>

    Serial console hostname of the site controller

    +
    isSerialConsoleEnabled
    boolean

    Indicates if Serial Console is enabled for the Site by the Provider

    serialConsoleIdleTimeout
    integer or null

    Maximum idle time in seconds before Serial Console is disconnected

    @@ -1182,58 +1538,110 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Only visible to Tenant retrieving the Site. Indicates if Serial Console access using SSH Keys is enabled by Tenant

    isOnline
    boolean

    Indicates if the Site is currently reachable from Cloud

    -
    status
    string (SiteStatus)
    Enum: "Pending" "Registered" "Error"

    Status values for Site objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    updated
    string <date-time>
    object (SiteLocation)

    Location of the Site

    +
    status
    string (SiteStatus)
    Enum: "Pending" "Registered" "Error"

    Status of the Site

    +
    Array of objects (StatusDetail)

    Chronological status history for the Site

    +
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the Site was created

    +
    updated
    string <date-time>

    Date/time when the Site was last updated

    +
    object (SiteLocation)

    Site location information

    city
    string

    City where the site is located

    state
    string

    State where the site is located

    country
    string

    Country where the site is located

    -
    object (SiteContact)

    Contact for the Site

    +
    object (SiteContact)

    Site contact information

    email
    string

    Email address of the Site contact

    -
    object (SiteCapabilities)

    Boolean flags to indicate features supported by a Site

    -
    nativeNetworking
    boolean
    networkSecurityGroup
    boolean
    nvLinkPartition
    boolean
    flow
    boolean
    imageBasedOperatingSystem
    boolean
    object (SiteMachineStats)

    Machine stats for a Site

    -
    total
    integer
    object (SiteMachineStatsByStatus)

    Machine stats for a Site by status

    -
    Decommissioned
    integer
    Error
    integer
    Initializing
    integer
    InUse
    integer
    Maintenance
    integer
    Ready
    integer
    Reset
    integer
    Unknown
    integer
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    healthy
    integer
    unhealthy
    integer
    object (SiteMachineStatsByStatusAndHealth)

    Machine stats for a Site by status and health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByAllocation)

    Machine stats for a Site by allocation

    -
    allocatedInUse
    integer
    allocatedNotInUse
    integer
    unallocated
    integer
    object (SiteCapabilities)

    Site capabilities used for feature availability and configuration

    +
    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

    +
    object (SiteMachineStats)

    Machine counts by status for the Site

    +
    total
    integer

    Total number of Machines at the Site

    +
    object (SiteMachineStatsByStatus)

    Machine counts grouped by Machine status

    +
    Decommissioned
    integer

    Number of Machines in Decommissioned status

    +
    Error
    integer

    Number of Machines in Error status

    +
    Initializing
    integer

    Number of Machines in Initializing status

    +
    InUse
    integer

    Number of Machines in InUse status

    +
    Maintenance
    integer

    Number of Machines in Maintenance status

    +
    Ready
    integer

    Number of Machines in Ready status

    +
    Reset
    integer

    Number of Machines in Reset status

    +
    Unknown
    integer

    Number of Machines in Unknown status

    +
    object (SiteMachineStatsByHealth)

    Machine counts grouped by health state

    +
    healthy
    integer

    Number of healthy Machines

    +
    unhealthy
    integer

    Number of unhealthy Machines

    +
    object (SiteMachineStatsByStatusAndHealth)

    Machine health counts grouped by Machine status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Decommissioned status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Error status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Initializing status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in InUse status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Maintenance status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Ready status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Reset status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Unknown status

    +
    object (SiteMachineStatsByAllocation)

    Machine counts grouped by allocation and usage state

    +
    allocatedInUse
    integer

    Number of allocated Machines currently in use

    +
    allocatedNotInUse
    integer

    Number of allocated Machines not currently in use

    +
    unallocated
    integer

    Number of Machines not currently allocated

    +

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "name": "San Jose Central 4",
    • "description": "Datacenter serving the San Jose central region",
    • "org": "qygdmg8oqik8",
    • "infrastructureProviderId": "5f2cc306-76e9-4fca-9186-950c9ef9a74e",
    • "siteControllerVersion": "0.1",
    • "siteAgentVersion": "0.1",
    • "registrationToken": "J7KO-89RR-Y7WQ-AD90",
    • "registrationTokenExpiration": "2019-08-25T12:00:00Z",
    • "serialConsoleHostname": "sjc.nico.acme.com",
    • "isSerialConsoleEnabled": true,
    • "serialConsoleIdleTimeout": 60,
    • "serialConsoleMaxSessionLength": 3600,
    • "isSerialConsoleSSHKeysEnabled": true,
    • "machineStats": {
      },
    • "capabilities": {
      },
    • "isOnline": false,
    • "status": "Pending",
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z",
    • "location": {
      },
    • "contact": {
      }
    }

    Update Site

    Update a specific Site

    User must have authorization role with PROVIDER_ADMIN suffix.

    -

    Infrastructure Provider updating the Site must be the owner of the Site. At present, there are no other Site specific configurations modifiable by Tenant.

    +

    Infrastructure Provider updating the Site must be the owner of the Site. At present, there are no other Site-specific configurations modifiable by Tenant.

    Authorizations:
    JWTBearerToken
    path Parameters
    org
    required
    string

    Name of the Org

    siteId
    required
    string <uuid>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    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.

    isSerialConsoleSSHKeysEnabled
    boolean
    Deprecated

    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.

    -
    object (SiteLocation)

    Location of the Site

    +
    object (SiteLocation)

    Updated Site location information

    city
    string

    City where the site is located

    state
    string

    State where the site is located

    country
    string

    Country where the site is located

    -
    object (SiteContact)

    Contact for the Site

    +
    object (SiteContact)

    Updated Site contact information

    email
    string

    Email address of the Site contact

    object (SiteCapabilitiesUpdateRequest)
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Enable or disable image-based operating system support for the Site

    Responses

    Response Schema: application/json
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    Response Schema: application/json
    id
    string <uuid>

    Unique UUID v4 identifier for the Site in NICo Cloud

    +
    name
    string [ 2 .. 256 ] characters

    Name of the Site

    description
    string or null

    Optional description for the Site

    -
    org
    string
    infrastructureProviderId
    string <uuid>
    siteControllerVersion
    string or null
    org
    string

    NGC organization ID of the Infrastructure Provider that owns the Site

    +
    infrastructureProviderId
    string <uuid>

    ID of the Infrastructure Provider that owns the Site

    +
    siteControllerVersion
    string or null

    Version of the Site Controller software

    siteAgentVersion
    string or null

    Version of the Site Agent software

    @@ -1292,7 +1706,9 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Token that can be used to register a Site. Value only exposed to Provider

    registrationTokenExpiration
    string or null <date-time>

    Date/time when registration token expires. Value only exposed to Provider

    -
    serialConsoleHostname
    string or null <hostname>
    isSerialConsoleEnabled
    boolean
    serialConsoleHostname
    string or null <hostname>

    Serial console hostname of the site controller

    +
    isSerialConsoleEnabled
    boolean

    Indicates if Serial Console is enabled for the Site by the Provider

    serialConsoleIdleTimeout
    integer or null

    Maximum idle time in seconds before Serial Console is disconnected

    @@ -1302,49 +1718,101 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Only visible to Tenant retrieving the Site. Indicates if Serial Console access using SSH Keys is enabled by Tenant

    isOnline
    boolean

    Indicates if the Site is currently reachable from Cloud

    -
    status
    string (SiteStatus)
    Enum: "Pending" "Registered" "Error"

    Status values for Site objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    updated
    string <date-time>
    object (SiteLocation)

    Location of the Site

    +
    status
    string (SiteStatus)
    Enum: "Pending" "Registered" "Error"

    Status of the Site

    +
    Array of objects (StatusDetail)

    Chronological status history for the Site

    +
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the Site was created

    +
    updated
    string <date-time>

    Date/time when the Site was last updated

    +
    object (SiteLocation)

    Site location information

    city
    string

    City where the site is located

    state
    string

    State where the site is located

    country
    string

    Country where the site is located

    -
    object (SiteContact)

    Contact for the Site

    +
    object (SiteContact)

    Site contact information

    email
    string

    Email address of the Site contact

    -
    object (SiteCapabilities)

    Boolean flags to indicate features supported by a Site

    -
    nativeNetworking
    boolean
    networkSecurityGroup
    boolean
    nvLinkPartition
    boolean
    flow
    boolean
    imageBasedOperatingSystem
    boolean
    object (SiteMachineStats)

    Machine stats for a Site

    -
    total
    integer
    object (SiteMachineStatsByStatus)

    Machine stats for a Site by status

    -
    Decommissioned
    integer
    Error
    integer
    Initializing
    integer
    InUse
    integer
    Maintenance
    integer
    Ready
    integer
    Reset
    integer
    Unknown
    integer
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    healthy
    integer
    unhealthy
    integer
    object (SiteMachineStatsByStatusAndHealth)

    Machine stats for a Site by status and health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByHealth)

    Machine stats for a Site by health

    -
    object (SiteMachineStatsByAllocation)

    Machine stats for a Site by allocation

    -
    allocatedInUse
    integer
    allocatedNotInUse
    integer
    unallocated
    integer
    object (SiteCapabilities)

    Site capabilities used for feature availability and configuration

    +
    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

    +
    object (SiteMachineStats)

    Machine counts by status for the Site

    +
    total
    integer

    Total number of Machines at the Site

    +
    object (SiteMachineStatsByStatus)

    Machine counts grouped by Machine status

    +
    Decommissioned
    integer

    Number of Machines in Decommissioned status

    +
    Error
    integer

    Number of Machines in Error status

    +
    Initializing
    integer

    Number of Machines in Initializing status

    +
    InUse
    integer

    Number of Machines in InUse status

    +
    Maintenance
    integer

    Number of Machines in Maintenance status

    +
    Ready
    integer

    Number of Machines in Ready status

    +
    Reset
    integer

    Number of Machines in Reset status

    +
    Unknown
    integer

    Number of Machines in Unknown status

    +
    object (SiteMachineStatsByHealth)

    Machine counts grouped by health state

    +
    healthy
    integer

    Number of healthy Machines

    +
    unhealthy
    integer

    Number of unhealthy Machines

    +
    object (SiteMachineStatsByStatusAndHealth)

    Machine health counts grouped by Machine status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Decommissioned status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Error status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Initializing status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in InUse status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Maintenance status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Ready status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Reset status

    +
    object (SiteMachineStatsByHealth)

    Health breakdown for Machines in Unknown status

    +
    object (SiteMachineStatsByAllocation)

    Machine counts grouped by allocation and usage state

    +
    allocatedInUse
    integer

    Number of allocated Machines currently in use

    +
    allocatedNotInUse
    integer

    Number of allocated Machines not currently in use

    +
    unallocated
    integer

    Number of Machines not currently allocated

    +
    Response Headers
    X-Pagination
    string

    Pagination result in JSON format

    -
    Response Schema: application/json
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Allocation

    Allocations are the mechanism by which Provider can delegate Network and Compute resources to Tenant.

    +

    Deprecation history:

    +
      +
    • ResourceTypeID attribute on Allocation Constraint was deprecated in favor of resourceTypeId and will be removed on July 9th, 2026 0:00 UTC. Please use resourceTypeId instead.
    • +

    Retrieve all Allocations

    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Filter Allocations by Infrastructure Provider ID.

    tenantId
    string <uuid>

    Filter Allocations by Tenant ID.

    -
    siteId
    string <uuid>

    Filter Allocations by Site ID. Can be specified multiple times to filter on more than one Site ID.

    -
    id
    string

    Filter Allocations by ID. Can be specified multiple times to filter on more than one ID.

    -
    resourceType
    string
    Enum: "InstanceType" "IPBlock"

    Filter Allocations by Constraint Resource Type. Can be specified multiple times to filter on more than one Constraint Resource Type.

    -
    status
    string

    Filter Allocations by Status. Can be specified multiple times to filter on more than one Status.

    -
    resourceTypeId
    string

    Filter Allocations by Constraint Resource Type ID. Can be specified multiple times to filter on more than one Constraint Resource Type ID.

    -
    constraintType
    string
    Enum: "Reserved" "OnDemand" "Preemptible"

    Filter Allocations by Constraint Type. Can be specified multiple times to filter on more than one Constraint Type.

    -
    constraintValue
    integer

    Filter Allocations by Constraint Value. Can be specified multiple times to filter on more than one Constraint Value.

    -
    query
    string

    Search for matches across all Sites. Input will be matched against name, description and status fields

    +
    siteId
    string <uuid>

    Filter Allocations by Site ID. Can be specified multiple times to filter on more than one Site ID.

    +
    id
    string

    Filter Allocations by ID. Can be specified multiple times to filter on more than one ID.

    +
    resourceType
    string
    Enum: "InstanceType" "IPBlock"

    Filter Allocations by Constraint Resource Type. Can be specified multiple times to filter on more than one Constraint Resource Type.

    +
    status
    string

    Filter Allocations by Status. Can be specified multiple times to filter on more than one Status.

    +
    resourceTypeId
    string

    Filter Allocations by Constraint Resource Type ID. Can be specified multiple times to filter on more than one Constraint Resource Type ID.

    +
    constraintType
    string
    Enum: "Reserved" "OnDemand" "Preemptible"

    Filter Allocations by Constraint Type. Can be specified multiple times to filter on more than one Constraint Type.

    +
    constraintValue
    integer

    Filter Allocations by Constraint Value. Can be specified multiple times to filter on more than one Constraint Value.

    +
    query
    string

    Search for matches across all Allocations. Input will be matched against name, description, and status fields

    includeRelation
    string
    Enum: "InfrastructureProvider" "Tenant" "Site"

    Related entity to expand

    pageNumber
    integer >= 1
    Default: 1
    Example: pageNumber=1
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    ID of the Tenant that received the Allocation

    siteId
    string <uuid>

    ID of the Site where resources are allocated

    -
    status
    string (AllocationStatus)
    Enum: "Pending" "Registered" "Deleting" "Error"

    Status values for Allocation objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    Array of objects (AllocationConstraint)
    Array
    id
    string <uuid>
    status
    string (AllocationStatus)
    Enum: "Pending" "Registered" "Deleting" "Error"

    Status of the Allocation

    +
    Array of objects (StatusDetail)

    Chronological status history for the Allocation

    +
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    Array of objects (AllocationConstraint)

    List of Allocation Constraints for the Allocation

    +
    Array
    id
    string <uuid>

    ID of the Allocation Constraint

    allocationId
    string <uuid>

    ID of the Allocation that contains the Allocation Constraint

    resourceType
    string
    Enum: "InstanceType" "IPBlock"

    Type of the Resource that the Allocation Constraint applies to

    -
    resourceTypeId
    string <uuid>

    ID of the Resource Type that acts as the source of the Allocation. For resource type: InstanceType, this is the ID of the Instance Type whose associated Machines are allocated to the Tenant. For resource type IPBlock, this is the ID of the Site level IP Block from where a prefix is allocated to the Tenant.

    +
    resourceTypeId
    string <uuid>

    ID of the resource that acts as the source of the Allocation. For resource type InstanceType, this is the ID of the Instance Type whose associated Machines are allocated to the Tenant. For resource type IPBlock, this is the ID of the Site-level IP Block from which a prefix is allocated to the Tenant.

    constraintType
    string
    Enum: "Reserved" "OnDemand" "Preemptible"

    Type of the Allocation Constraint. Reserved is the only constraint type supported by current implementation.

    constraintValue
    integer

    Value of the Allocation Constraint. For resource type: InstanceType, this value represents number of Machines associated with the Instance Type that is allocated to the Tenant. For resource type IPBlock, this value represents the prefix length of the IP Block allocated to the Tenant.

    derivedResourceId
    string or null

    ID of the allocated Tenant IP Block when resource type is IPBlock

    -
    object (InstanceTypeSummary)

    Describes a subset of core attributes of an Instance Type

    -
    object (IpBlockSummary)

    Describes a subset of core attributes of an IP block

    +
    object (InstanceTypeSummary)

    Summary of the Instance Type

    +
    object (IpBlockSummary)

    Summary of the IP Block

    created
    string <date-time>

    Date/time when the Allocation Constraint was created

    updated
    string <date-time>
    Typical API Call Flow for Tenant
    https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/allocation

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Create Allocation

    Create an Allocation for the org.

    Org must have an Infrastructure Provider entity. User must have authorization role with PROVIDER_ADMIN suffix.

    To successfully create a compute Allocation, there must be enough unallocated Machines associated with the Instance Type to satisfy the constraint value. -For network Allocation, the source site-level IP Block must have an available prefix with length equal to constraint value.

    +For network Allocation, the source site-level IP Block must have an available prefix with length equal to the constraint value.

    Authorizations:
    JWTBearerToken
    path Parameters
    org
    required
    string

    Name of the Org

    Request Body schema: application/json
    name
    required
    string [ 2 .. 256 ] characters
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    ID of the Tenant that should receive the Allocation

    siteId
    required
    string <uuid>

    ID of the Site where resources should be allocated

    -
    Array of objects (AllocationConstraintCreateRequest)
    Array
    resourceType
    required
    string
    Enum: "InstanceType" "IPBlock"
    Array of objects (AllocationConstraintCreateRequest)

    List of Allocation Constraint objects

    +
    Array
    resourceType
    required
    string
    Enum: "InstanceType" "IPBlock"

    Type of the Resource that the Allocation Constraint applies to

    resourceTypeId
    required
    string <uuid>

    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.

    @@ -1528,26 +2026,38 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    ID of the Tenant that received the Allocation

    siteId
    string <uuid>

    ID of the Site where resources are allocated

    -
    status
    string (AllocationStatus)
    Enum: "Pending" "Registered" "Deleting" "Error"

    Status values for Allocation objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    Array of objects (AllocationConstraint)
    Array
    id
    string <uuid>
    status
    string (AllocationStatus)
    Enum: "Pending" "Registered" "Deleting" "Error"

    Status of the Allocation

    +
    Array of objects (StatusDetail)

    Chronological status history for the Allocation

    +
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    Array of objects (AllocationConstraint)

    List of Allocation Constraints for the Allocation

    +
    Array
    id
    string <uuid>

    ID of the Allocation Constraint

    allocationId
    string <uuid>

    ID of the Allocation that contains the Allocation Constraint

    resourceType
    string
    Enum: "InstanceType" "IPBlock"

    Type of the Resource that the Allocation Constraint applies to

    -
    resourceTypeId
    string <uuid>

    ID of the Resource Type that acts as the source of the Allocation. For resource type: InstanceType, this is the ID of the Instance Type whose associated Machines are allocated to the Tenant. For resource type IPBlock, this is the ID of the Site level IP Block from where a prefix is allocated to the Tenant.

    +
    resourceTypeId
    string <uuid>

    ID of the resource that acts as the source of the Allocation. For resource type InstanceType, this is the ID of the Instance Type whose associated Machines are allocated to the Tenant. For resource type IPBlock, this is the ID of the Site-level IP Block from which a prefix is allocated to the Tenant.

    constraintType
    string
    Enum: "Reserved" "OnDemand" "Preemptible"

    Type of the Allocation Constraint. Reserved is the only constraint type supported by current implementation.

    constraintValue
    integer

    Value of the Allocation Constraint. For resource type: InstanceType, this value represents number of Machines associated with the Instance Type that is allocated to the Tenant. For resource type IPBlock, this value represents the prefix length of the IP Block allocated to the Tenant.

    derivedResourceId
    string or null

    ID of the allocated Tenant IP Block when resource type is IPBlock

    -
    object (InstanceTypeSummary)

    Describes a subset of core attributes of an Instance Type

    -
    object (IpBlockSummary)

    Describes a subset of core attributes of an IP block

    +
    object (InstanceTypeSummary)

    Summary of the Instance Type

    +
    object (IpBlockSummary)

    Summary of the IP Block

    created
    string <date-time>

    Date/time when the Allocation Constraint was created

    updated
    string <date-time>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    ID of the Tenant that received the Allocation

    siteId
    string <uuid>

    ID of the Site where resources are allocated

    -
    status
    string (AllocationStatus)
    Enum: "Pending" "Registered" "Deleting" "Error"

    Status values for Allocation objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    Array of objects (AllocationConstraint)
    Array
    id
    string <uuid>
    status
    string (AllocationStatus)
    Enum: "Pending" "Registered" "Deleting" "Error"

    Status of the Allocation

    +
    Array of objects (StatusDetail)

    Chronological status history for the Allocation

    +
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    Array of objects (AllocationConstraint)

    List of Allocation Constraints for the Allocation

    +
    Array
    id
    string <uuid>

    ID of the Allocation Constraint

    allocationId
    string <uuid>

    ID of the Allocation that contains the Allocation Constraint

    resourceType
    string
    Enum: "InstanceType" "IPBlock"

    Type of the Resource that the Allocation Constraint applies to

    -
    resourceTypeId
    string <uuid>

    ID of the Resource Type that acts as the source of the Allocation. For resource type: InstanceType, this is the ID of the Instance Type whose associated Machines are allocated to the Tenant. For resource type IPBlock, this is the ID of the Site level IP Block from where a prefix is allocated to the Tenant.

    +
    resourceTypeId
    string <uuid>

    ID of the resource that acts as the source of the Allocation. For resource type InstanceType, this is the ID of the Instance Type whose associated Machines are allocated to the Tenant. For resource type IPBlock, this is the ID of the Site-level IP Block from which a prefix is allocated to the Tenant.

    constraintType
    string
    Enum: "Reserved" "OnDemand" "Preemptible"

    Type of the Allocation Constraint. Reserved is the only constraint type supported by current implementation.

    constraintValue
    integer

    Value of the Allocation Constraint. For resource type: InstanceType, this value represents number of Machines associated with the Instance Type that is allocated to the Tenant. For resource type IPBlock, this value represents the prefix length of the IP Block allocated to the Tenant.

    derivedResourceId
    string or null

    ID of the allocated Tenant IP Block when resource type is IPBlock

    -
    object (InstanceTypeSummary)

    Describes a subset of core attributes of an Instance Type

    -
    object (IpBlockSummary)

    Describes a subset of core attributes of an IP block

    +
    object (InstanceTypeSummary)

    Summary of the Instance Type

    +
    object (IpBlockSummary)

    Summary of the IP Block

    created
    string <date-time>

    Date/time when the Allocation Constraint was created

    updated
    string <date-time>
    Typical API Call Flow for Tenant

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "name": "Echo Studios",
    • "description": "Echo Studios resource allocation in SJC4",
    • "infrastructureProviderId": "e94bcfda-f6cb-42e4-80ec-516811e5abbf",
    • "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",
    • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
    • "status": "Pending",
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z",
    • "allocationConstraints": [
      ]
    }

    Delete Allocation

    Delete an Allocation by ID.

    -

    Org must have an Infrastructure Provider entity, specified Allocation must be created by said Provider. Requesting user must have PROVIDER_ADMIN role.

    +

    Org must have an Infrastructure Provider entity, and the specified Allocation must have been created by that Provider. Requesting user must have PROVIDER_ADMIN role.

    Tenant management of Allocation is not supported in MVP.

    Authorizations:
    JWTBearerToken
    path Parameters
    org
    required
    string

    Name of the Org

    @@ -1668,26 +2190,38 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    ID of the Tenant that received the Allocation

    siteId
    string <uuid>

    ID of the Site where resources are allocated

    -
    status
    string (AllocationStatus)
    Enum: "Pending" "Registered" "Deleting" "Error"

    Status values for Allocation objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    Array of objects (AllocationConstraint)
    Array
    id
    string <uuid>
    status
    string (AllocationStatus)
    Enum: "Pending" "Registered" "Deleting" "Error"

    Status of the Allocation

    +
    Array of objects (StatusDetail)

    Chronological status history for the Allocation

    +
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    Array of objects (AllocationConstraint)

    List of Allocation Constraints for the Allocation

    +
    Array
    id
    string <uuid>

    ID of the Allocation Constraint

    allocationId
    string <uuid>

    ID of the Allocation that contains the Allocation Constraint

    resourceType
    string
    Enum: "InstanceType" "IPBlock"

    Type of the Resource that the Allocation Constraint applies to

    -
    resourceTypeId
    string <uuid>

    ID of the Resource Type that acts as the source of the Allocation. For resource type: InstanceType, this is the ID of the Instance Type whose associated Machines are allocated to the Tenant. For resource type IPBlock, this is the ID of the Site level IP Block from where a prefix is allocated to the Tenant.

    +
    resourceTypeId
    string <uuid>

    ID of the resource that acts as the source of the Allocation. For resource type InstanceType, this is the ID of the Instance Type whose associated Machines are allocated to the Tenant. For resource type IPBlock, this is the ID of the Site-level IP Block from which a prefix is allocated to the Tenant.

    constraintType
    string
    Enum: "Reserved" "OnDemand" "Preemptible"

    Type of the Allocation Constraint. Reserved is the only constraint type supported by current implementation.

    constraintValue
    integer

    Value of the Allocation Constraint. For resource type: InstanceType, this value represents number of Machines associated with the Instance Type that is allocated to the Tenant. For resource type IPBlock, this value represents the prefix length of the IP Block allocated to the Tenant.

    derivedResourceId
    string or null

    ID of the allocated Tenant IP Block when resource type is IPBlock

    -
    object (InstanceTypeSummary)

    Describes a subset of core attributes of an Instance Type

    -
    object (IpBlockSummary)

    Describes a subset of core attributes of an IP block

    +
    object (InstanceTypeSummary)

    Summary of the Instance Type

    +
    object (IpBlockSummary)

    Summary of the IP Block

    created
    string <date-time>

    Date/time when the Allocation Constraint was created

    updated
    string <date-time>
    Typical API Call Flow for Tenant
    https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/allocation/{allocationId}

    Request samples

    Content type
    application/json
    {
    • "name": "Echo Studios Compute",
    • "description": "Echo Studios compute resource allocation in SJC4"
    }

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "name": "Echo Studios Compute",
    • "description": "Echo Studios compute resource allocation in SJC4",
    • "infrastructureProviderId": "e94bcfda-f6cb-42e4-80ec-516811e5abbf",
    • "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",
    • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
    • "status": "Pending",
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z",
    • "allocationConstraints": [
      ]
    }

    Update Allocation Constraint

    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 PROVIDER_ADMIN role.

    Modifying allocations may not be possible if Tenant has started utilizing resources from this allocation.

    -

    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.

    +

    For an InstanceType resource, constraintValue can be incremented at any time, but not decremented if doing so requires decommissioning Tenant resources.

    +

    For an IPBlock resource, constraintValue cannot be modified if Tenant resources, e.g., Subnets or VPC Prefixes, reference the block.

    Authorizations:
    JWTBearerToken
    path Parameters
    org
    required
    string

    Name of the Org

    allocationId
    required
    string
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    ID of the Allocation that contains the Allocation Constraint

    resourceType
    string
    Enum: "InstanceType" "IPBlock"

    Type of the Resource that the Allocation Constraint applies to

    -
    resourceTypeId
    string <uuid>

    ID of the Resource Type that acts as the source of the Allocation. For resource type: InstanceType, this is the ID of the Instance Type whose associated Machines are allocated to the Tenant. For resource type IPBlock, this is the ID of the Site level IP Block from where a prefix is allocated to the Tenant.

    +
    resourceTypeId
    string <uuid>

    ID of the resource that acts as the source of the Allocation. For resource type InstanceType, this is the ID of the Instance Type whose associated Machines are allocated to the Tenant. For resource type IPBlock, this is the ID of the Site-level IP Block from which a prefix is allocated to the Tenant.

    constraintType
    string
    Enum: "Reserved" "OnDemand" "Preemptible"

    Type of the Allocation Constraint. Reserved is the only constraint type supported by current implementation.

    constraintValue
    integer

    Value of the Allocation Constraint. For resource type: InstanceType, this value represents number of Machines associated with the Instance Type that is allocated to the Tenant. For resource type IPBlock, this value represents the prefix length of the IP Block allocated to the Tenant.

    derivedResourceId
    string or null

    ID of the allocated Tenant IP Block when resource type is IPBlock

    -
    object (InstanceTypeSummary)

    Describes a subset of core attributes of an Instance Type

    -
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    infrastructureProviderId
    string <uuid>
    siteId
    string <uuid>
    status
    string (InstanceTypeStatus)
    Enum: "Pending" "Registering" "Ready" "Deleting" "Error"

    Status values for Instance Type objects

    -
    object (IpBlockSummary)

    Describes a subset of core attributes of an IP block

    -
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    routingType
    string
    Enum: "Public" "DatacenterOnly"
    prefix
    string
    object (InstanceTypeSummary)

    Summary of the Instance Type

    +
    id
    string <uuid>

    ID of the Instance Type

    +
    name
    string [ 2 .. 256 ] characters

    Name of the Instance Type, only lowercase characters, digits, hyphens and cannot begin/end with hyphen

    +
    infrastructureProviderId
    string <uuid>

    ID of the Infrastructure Provider that owns the Instance Type

    +
    siteId
    string <uuid>

    ID of the Site that owns the Instance Type

    +
    status
    string (InstanceTypeStatus)
    Enum: "Pending" "Registering" "Ready" "Deleting" "Error"

    Status of the Instance Type

    +
    object (IpBlockSummary)

    Summary of the IP Block

    +
    id
    string <uuid>

    ID of the IP Block

    +
    name
    string [ 2 .. 256 ] characters

    Name of the IP Block, only lowercase characters, digits, hyphens and cannot begin/end with hyphen

    +
    routingType
    string
    Enum: "Public" "DatacenterOnly"

    RoutingType of the IP Block

    +
    prefix
    string

    Either IPv4 or IPv6 address

    prefixLength
    integer

    Min: 1, Max: 32 for ipv4, 128 for ipv6

    -
    status
    string (IpBlockStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status values for IP Block objects

    +
    status
    string (IpBlockStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status of the IP Block

    created
    string <date-time>

    Date/time when the Allocation Constraint was created

    updated
    string <date-time>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Filter VPCs by Network Security Group ID. Can be specified multiple times to filter on more than one Network Security Group.

    nvLinkLogicalPartitionId
    string <uuid>

    Filter VPCs by NVLink Logical Partition ID. Can be specified multiple times to filter on more than one NVLink Logical Partition.

    -
    query
    string

    Search for matches across all VPCs. Input will be matched against name, description, labels and status fields

    +
    query
    string

    Search for matches across all VPCs. Input will be matched against name, description, labels, and status fields

    includeRelation
    string
    Enum: "InfrastructureProvider" "Tenant" "Site" "NetworkSecurityGroup"

    Related entity to expand

    pageNumber
    integer >= 1
    Default: 1
    Example: pageNumber=1
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    ID of the Network Security Group attached to the VPC

    object (NetworkSecurityGroupPropagationDetails)

    Propagation details for the attached Network Security Group

    -
    id
    string <uuid>

    The VPC or Instance ID

    -
    detailedStatus
    string
    Enum: "None" "Partial" "Full" "Unknown" "Error"
    status
    string (NetworkSecurityGroupPropagationStatus)
    Enum: "Synchronizing" "Synchronized" "Error"

    Status values for Network Security Group propagation

    -
    details
    string or null
    unpropagatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]
    relatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]
    nvLinkLogicalPartitionId
    string or null <uuid>
    objectId
    string <uuid>

    The ID of the object (VPC/Instance etc.)

    +
    detailedStatus
    string
    Enum: "None" "Partial" "Full" "Unknown" "Error"

    The detailed propagation status that was actually returned from NICo

    +
    status
    string (NetworkSecurityGroupPropagationStatus)
    Enum: "Synchronizing" "Synchronized" "Error"

    The simplified propagation status that reduces the actual status to just a few values

    +
    details
    string or null

    Additional details for the status

    +
    unpropagatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]

    IDs of Instances associated with the object that have not yet updated their Network Security Group rules

    +
    relatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]

    IDs of the instances involved in determining the propagation status

    +
    Array of objects (Deprecation)

    Deprecation notices for fields returned by this propagation detail

    +
    nvLinkLogicalPartitionId
    string or null <uuid>

    ID of the default NVLink Logical Partition that GPUs for all Instances in the VPC will attach to

    -
    object (Labels) <= 10 properties

    String key value pairs describing VPC labels

    +
    object (Labels) <= 10 properties

    String key-value pairs describing VPC labels

    property name*
    additional property
    string
    status
    string (VpcStatus)
    Enum: "Pending" "Provisioning" "Ready" "Configuring" "Deleting" "Error"

    Status of the VPC

    Array of objects (StatusDetail)

    History of status changes for the VPC

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when VPC was created

    updated
    string <date-time>

    Date/time when VPC was last updated

    @@ -1834,7 +2400,7 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    Error response when user is not authorized to call an endpoint or retrieve/modify objects

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Create VPC

    https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/vpc

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Create VPC

    Create a VPC for the org.

    Org must have a Tenant entity. User must have authorization role with TENANT_ADMIN suffix

    @@ -1858,8 +2424,8 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Explicitly requested VNI for the VPC

    nvLinkLogicalPartitionId
    string or null <uuid>

    ID of the default NVLink Logical Partition that GPUs for all Instances in the VPC will attach to

    -
    object (Labels) <= 10 properties

    String key value pairs describing VPC labels. Up to 10 key value pairs can be specified

    +
    object (Labels) <= 10 properties

    String key-value pairs describing VPC labels. Up to 10 key-value pairs can be specified

    property name*
    additional property
    string

    Responses

    Response Schema: application/json
    id
    string <uuid>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    ID of the Network Security Group attached to the VPC

    object (NetworkSecurityGroupPropagationDetails)

    Propagation details for the attached Network Security Group

    -
    id
    string <uuid>

    The VPC or Instance ID

    -
    detailedStatus
    string
    Enum: "None" "Partial" "Full" "Unknown" "Error"
    status
    string (NetworkSecurityGroupPropagationStatus)
    Enum: "Synchronizing" "Synchronized" "Error"

    Status values for Network Security Group propagation

    -
    details
    string or null
    unpropagatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]
    relatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]
    nvLinkLogicalPartitionId
    string or null <uuid>
    objectId
    string <uuid>

    The ID of the object (VPC/Instance etc.)

    +
    detailedStatus
    string
    Enum: "None" "Partial" "Full" "Unknown" "Error"

    The detailed propagation status that was actually returned from NICo

    +
    status
    string (NetworkSecurityGroupPropagationStatus)
    Enum: "Synchronizing" "Synchronized" "Error"

    The simplified propagation status that reduces the actual status to just a few values

    +
    details
    string or null

    Additional details for the status

    +
    unpropagatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]

    IDs of Instances associated with the object that have not yet updated their Network Security Group rules

    +
    relatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]

    IDs of the instances involved in determining the propagation status

    +
    Array of objects (Deprecation)

    Deprecation notices for fields returned by this propagation detail

    +
    Array
    attribute
    string or null

    Name of the attribute that is deprecated. Omitted if queryParam or endpoint is being deprecated.

    +
    queryParam
    string or null

    Query parameter that is deprecated. Omitted if attribute or endpoint is being deprecated.

    +
    endpoint
    string or null

    API endpoint that is deprecated. Omitted if attribute or queryParam is being deprecated.

    +
    replacedBy
    string or null

    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

    +
    nvLinkLogicalPartitionId
    string or null <uuid>

    ID of the default NVLink Logical Partition that GPUs for all Instances in the VPC will attach to

    -
    object (Labels) <= 10 properties

    String key value pairs describing VPC labels

    +
    object (Labels) <= 10 properties

    String key-value pairs describing VPC labels

    property name*
    additional property
    string
    status
    string (VpcStatus)
    Enum: "Pending" "Provisioning" "Ready" "Configuring" "Deleting" "Error"

    Status of the VPC

    Array of objects (StatusDetail)

    History of status changes for the VPC

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when VPC was created

    updated
    string <date-time>

    Date/time when VPC was last updated

    @@ -1948,19 +2544,49 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    ID of the Network Security Group attached to the VPC

    object (NetworkSecurityGroupPropagationDetails)

    Propagation details for the attached Network Security Group

    -
    id
    string <uuid>

    The VPC or Instance ID

    -
    detailedStatus
    string
    Enum: "None" "Partial" "Full" "Unknown" "Error"
    status
    string (NetworkSecurityGroupPropagationStatus)
    Enum: "Synchronizing" "Synchronized" "Error"

    Status values for Network Security Group propagation

    -
    details
    string or null
    unpropagatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]
    relatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]
    nvLinkLogicalPartitionId
    string or null <uuid>
    objectId
    string <uuid>

    The ID of the object (VPC/Instance etc.)

    +
    detailedStatus
    string
    Enum: "None" "Partial" "Full" "Unknown" "Error"

    The detailed propagation status that was actually returned from NICo

    +
    status
    string (NetworkSecurityGroupPropagationStatus)
    Enum: "Synchronizing" "Synchronized" "Error"

    The simplified propagation status that reduces the actual status to just a few values

    +
    details
    string or null

    Additional details for the status

    +
    unpropagatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]

    IDs of Instances associated with the object that have not yet updated their Network Security Group rules

    +
    relatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]

    IDs of the instances involved in determining the propagation status

    +
    Array of objects (Deprecation)

    Deprecation notices for fields returned by this propagation detail

    +
    Array
    attribute
    string or null

    Name of the attribute that is deprecated. Omitted if queryParam or endpoint is being deprecated.

    +
    queryParam
    string or null

    Query parameter that is deprecated. Omitted if attribute or endpoint is being deprecated.

    +
    endpoint
    string or null

    API endpoint that is deprecated. Omitted if attribute or queryParam is being deprecated.

    +
    replacedBy
    string or null

    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

    +
    nvLinkLogicalPartitionId
    string or null <uuid>

    ID of the default NVLink Logical Partition that GPUs for all Instances in the VPC will attach to

    -
    object (Labels) <= 10 properties

    String key value pairs describing VPC labels

    +
    object (Labels) <= 10 properties

    String key-value pairs describing VPC labels

    property name*
    additional property
    string
    status
    string (VpcStatus)
    Enum: "Pending" "Provisioning" "Ready" "Configuring" "Deleting" "Error"

    Status of the VPC

    Array of objects (StatusDetail)

    History of status changes for the VPC

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when VPC was created

    updated
    string <date-time>

    Date/time when VPC was last updated

    @@ -1968,7 +2594,7 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    Error response when user is not authorized to call an endpoint or retrieve/modify objects

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "name": "spark-vpc",
    • "description": "Virtual network for machines executing Spark jobs",
    • "org": "xskkpgqpeakn",
    • "tenantId": "34f5c98e-f430-457b-a812-92637d0c6fd0",
    • "siteId": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
    • "controllerVpcId": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "networkVirtualizationType": "ETHERNET_VIRTUALIZER",
    • "requestedVni": 12001,
    • "vni": 12001,
    • "nvLinkLogicalPartitionId": "dd887330-dbd3-45ce-b400-c42fc8e47315",
    • "labels": {
      },
    • "status": "Ready",
    • "networkSecurityGroupId": "c602eb90-3039-11f0-997a-b38d4fc8389e,",
    • "networkSecurityGroupPropagationDetails": {
      },
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z"
    }

    Delete a VPC

    https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/vpc/{vpcId}

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "name": "spark-vpc",
    • "description": "Virtual network for machines executing Spark jobs",
    • "org": "xskkpgqpeakn",
    • "tenantId": "34f5c98e-f430-457b-a812-92637d0c6fd0",
    • "siteId": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
    • "controllerVpcId": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "networkVirtualizationType": "ETHERNET_VIRTUALIZER",
    • "requestedVni": 12001,
    • "vni": 12001,
    • "nvLinkLogicalPartitionId": "dd887330-dbd3-45ce-b400-c42fc8e47315",
    • "labels": {
      },
    • "status": "Ready",
    • "networkSecurityGroupId": "c602eb90-3039-11f0-997a-b38d4fc8389e,",
    • "networkSecurityGroupPropagationDetails": {
      },
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z"
    }

    Delete a VPC

    Delete a specific VPC by ID.

    Org must have a Tenant entity. User must have authorization role with TENANT_ADMIN suffix.

    @@ -1998,8 +2624,8 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    ID of the Network Security Group to attach to the VPC

    nvLinkLogicalPartitionId
    string or null <uuid>

    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

    -
    object (Labels) <= 10 properties

    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.

    +
    object (Labels) <= 10 properties

    Update labels of the VPC. Up to 10 key-value pairs can be specified. The labels will be replaced with the labels sent in the request. Any labels not included in the request will be removed. To retain existing labels, fetch them first and include them in this request.

    property name*
    additional property
    string

    Responses

    Response Schema: application/json
    id
    string <uuid>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    ID of the Network Security Group attached to the VPC

    object (NetworkSecurityGroupPropagationDetails)

    Propagation details for the attached Network Security Group

    -
    id
    string <uuid>

    The VPC or Instance ID

    -
    detailedStatus
    string
    Enum: "None" "Partial" "Full" "Unknown" "Error"
    status
    string (NetworkSecurityGroupPropagationStatus)
    Enum: "Synchronizing" "Synchronized" "Error"

    Status values for Network Security Group propagation

    -
    details
    string or null
    unpropagatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]
    relatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]
    nvLinkLogicalPartitionId
    string or null <uuid>
    objectId
    string <uuid>

    The ID of the object (VPC/Instance etc.)

    +
    detailedStatus
    string
    Enum: "None" "Partial" "Full" "Unknown" "Error"

    The detailed propagation status that was actually returned from NICo

    +
    status
    string (NetworkSecurityGroupPropagationStatus)
    Enum: "Synchronizing" "Synchronized" "Error"

    The simplified propagation status that reduces the actual status to just a few values

    +
    details
    string or null

    Additional details for the status

    +
    unpropagatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]

    IDs of Instances associated with the object that have not yet updated their Network Security Group rules

    +
    relatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]

    IDs of the instances involved in determining the propagation status

    +
    Array of objects (Deprecation)

    Deprecation notices for fields returned by this propagation detail

    +
    Array
    attribute
    string or null

    Name of the attribute that is deprecated. Omitted if queryParam or endpoint is being deprecated.

    +
    queryParam
    string or null

    Query parameter that is deprecated. Omitted if attribute or endpoint is being deprecated.

    +
    endpoint
    string or null

    API endpoint that is deprecated. Omitted if attribute or queryParam is being deprecated.

    +
    replacedBy
    string or null

    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

    +
    nvLinkLogicalPartitionId
    string or null <uuid>

    ID of the default NVLink Logical Partition that GPUs for all Instances in the VPC will attach to

    -
    object (Labels) <= 10 properties

    String key value pairs describing VPC labels

    +
    object (Labels) <= 10 properties

    String key-value pairs describing VPC labels

    property name*
    additional property
    string
    status
    string (VpcStatus)
    Enum: "Pending" "Provisioning" "Ready" "Configuring" "Deleting" "Error"

    Status of the VPC

    Array of objects (StatusDetail)

    History of status changes for the VPC

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when VPC was created

    updated
    string <date-time>

    Date/time when VPC was last updated

    @@ -2053,11 +2709,11 @@

    Typical API Call Flow for Tenant

    https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/vpc/{vpcId}

    Request samples

    Content type
    application/json
    {
    • "name": "spark-vpc-v1",
    • "description": "Virtual network for machines executing Spark jobs v1",
    • "labels": {
      }
    }

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "name": "spark-vpc-v1",
    • "description": "Virtual network for machines executing Spark jobs v1",
    • "org": "xskkpgqpeakn",
    • "tenantId": "34f5c98e-f430-457b-a812-92637d0c6fd0",
    • "siteId": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
    • "controllerVpcId": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "networkVirtualizationType": "ETHERNET_VIRTUALIZER",
    • "requestedVni": 12001,
    • "vni": 12001,
    • "nvLinkLogicalPartitionId": "dd887330-dbd3-45ce-b400-c42fc8e47315",
    • "labels": {
      },
    • "status": "Pending",
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z"
    }

    Update VPC Virtualization

    Update network virtualization type for a VPC

    Org must have a Tenant entity. User must have authorization role with TENANT_ADMIN suffix

    Tenant must own the VPC -Request is rejected if the VPC already has Subnets or Instances

    +Request is rejected if the VPC already has Subnets or Instances.

    Authorizations:
    JWTBearerToken
    path Parameters
    org
    required
    string

    Name of the Org

    vpcId
    required
    string <uuid>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    ID of the Network Security Group attached to the VPC

    object (NetworkSecurityGroupPropagationDetails)

    Propagation details for the attached Network Security Group

    -
    id
    string <uuid>

    The VPC or Instance ID

    -
    detailedStatus
    string
    Enum: "None" "Partial" "Full" "Unknown" "Error"
    status
    string (NetworkSecurityGroupPropagationStatus)
    Enum: "Synchronizing" "Synchronized" "Error"

    Status values for Network Security Group propagation

    -
    details
    string or null
    unpropagatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]
    relatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]
    nvLinkLogicalPartitionId
    string or null <uuid>
    objectId
    string <uuid>

    The ID of the object (VPC/Instance etc.)

    +
    detailedStatus
    string
    Enum: "None" "Partial" "Full" "Unknown" "Error"

    The detailed propagation status that was actually returned from NICo

    +
    status
    string (NetworkSecurityGroupPropagationStatus)
    Enum: "Synchronizing" "Synchronized" "Error"

    The simplified propagation status that reduces the actual status to just a few values

    +
    details
    string or null

    Additional details for the status

    +
    unpropagatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]

    IDs of Instances associated with the object that have not yet updated their Network Security Group rules

    +
    relatedInstanceIds
    Array of strings <uuid> [ items <uuid > ]

    IDs of the instances involved in determining the propagation status

    +
    Array of objects (Deprecation)

    Deprecation notices for fields returned by this propagation detail

    +
    Array
    attribute
    string or null

    Name of the attribute that is deprecated. Omitted if queryParam or endpoint is being deprecated.

    +
    queryParam
    string or null

    Query parameter that is deprecated. Omitted if attribute or endpoint is being deprecated.

    +
    endpoint
    string or null

    API endpoint that is deprecated. Omitted if attribute or queryParam is being deprecated.

    +
    replacedBy
    string or null

    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

    +
    nvLinkLogicalPartitionId
    string or null <uuid>

    ID of the default NVLink Logical Partition that GPUs for all Instances in the VPC will attach to

    -
    object (Labels) <= 10 properties

    String key value pairs describing VPC labels

    +
    object (Labels) <= 10 properties

    String key-value pairs describing VPC labels

    property name*
    additional property
    string
    status
    string (VpcStatus)
    Enum: "Pending" "Provisioning" "Ready" "Configuring" "Deleting" "Error"

    Status of the VPC

    Array of objects (StatusDetail)

    History of status changes for the VPC

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when VPC was created

    updated
    string <date-time>

    Date/time when VPC was last updated

    @@ -2278,18 +2964,18 @@

    Typical API Call Flow for Tenant

    Org must have a Tenant entity. User must have authorization role with TENANT_ADMIN suffix.

    Authorizations:
    JWTBearerToken
    path Parameters
    org
    required
    string

    Name of the Org

    -
    query Parameters
    siteId
    string <uuid>

    Filter VPC Prefixes by Site, required if vpcId query param is not specified

    +
    query Parameters
    siteId
    string <uuid>

    Filter VPC Prefixes by Site, required if the vpcId query parameter is not specified

    vpcId
    string <uuid>

    Filter VPC Prefixes by VPC

    status
    string

    Filter VPC Prefixes by Status

    -
    query
    string

    Search for matches across all Sites. Input will be matched against name and status fields

    +
    query
    string

    Search for matches across all VPC Prefixes. Input will be matched against name and status fields

    includeRelation
    string
    Enum: "VPC" "Tenant" "IPBlock"

    Related entity to expand

    -
    includeUsageStats
    boolean

    When true, each VPC Prefix object includes usage statistic using the same structure as IP Block usage. Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a VPC Prefix consumes a /31 prefix.

    +
    includeUsageStats
    boolean

    When true, each VPC Prefix object includes usage statistics using the same structure as IP Block usage. Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a VPC Prefix consumes a /31 prefix.

    pageNumber
    integer >= 1
    Default: 1
    Example: pageNumber=1

    Page number for pagination query

    pageSize
    integer [ 1 .. 100 ]
    Example: pageSize=20
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    OK

    Response Headers
    X-Pagination
    string
    Example: "{\"pageNumber\":1,\"pageSize\":20,\"total\":30,\"orderBy\": \"CREATED_DESC\"}"

    Pagination result in JSON format

    -
    Response Schema: application/json
    Array
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    Response Schema: application/json
    Array
    id
    string <uuid>

    Unique UUID v4 identifier for the VPCPrefix

    +
    name
    string [ 2 .. 256 ] characters

    Name of the VPC Prefix

    siteId
    string <uuid>

    ID of the Site the VPC Prefix belongs to

    vpcId
    string <uuid>

    ID of the VPC the VPC Prefix belongs to

    -
    tenantId
    string <uuid>

    ID of the Tenant the VPC Prefix belongs to

    ipBlockId
    string or null <uuid>

    ID of the IP Block that contains the prefix of the VPC Prefix

    prefix
    string or null
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Length of the prefix. Valid range is 8 to 31, and max usable value depends on prefix length of parent IP Block.

    status
    string (VpcPrefixStatus)
    Enum: "Ready" "Deleting" "Error"

    Status of the VPC Prefix

    -
    object (IpBlockUsageStats)

    Present when query param includeUsageStats=true. Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a VPC Prefix consumes a /31 prefix.

    +
    object (IpBlockUsageStats)

    Present when query parameter includeUsageStats=true. Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a VPC Prefix consumes a /31 prefix.

    availableIPs
    integer <int64>

    Total number of IP addresses in the block (acquired and unused)

    acquiredIPs
    integer <int64>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Total number of prefixes (of any size) acquired from this block

    Array of objects (StatusDetail)

    Details of 20 most recent status changes

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date and time when the VPC Prefix was created

    updated
    string <date-time>

    Date and time when the VPC Prefix was updated

    @@ -2338,7 +3032,7 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    Error response when user is not authorized to call an endpoint or retrieve/modify objects

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Create VPC Prefix

    https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/vpc-prefix

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Create VPC Prefix

    Create a VPC Prefix for the org.

    Org must have a Tenant entity. User must have authorization role with TENANT_ADMIN suffix.

    @@ -2354,14 +3048,14 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Prefix length for the VPC Prefix. Valid range is 8 to 31, and max usable value depends on prefix length of parent IP Block.

    Responses

    Response Schema: application/json
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    Response Schema: application/json
    id
    string <uuid>

    Unique UUID v4 identifier for the VPCPrefix

    +
    name
    string [ 2 .. 256 ] characters

    Name of the VPC Prefix

    siteId
    string <uuid>

    ID of the Site the VPC Prefix belongs to

    vpcId
    string <uuid>

    ID of the VPC the VPC Prefix belongs to

    -
    tenantId
    string <uuid>

    ID of the Tenant the VPC Prefix belongs to

    ipBlockId
    string or null <uuid>

    ID of the IP Block that contains the prefix of the VPC Prefix

    prefix
    string or null
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Length of the prefix. Valid range is 8 to 31, and max usable value depends on prefix length of parent IP Block.

    status
    string (VpcPrefixStatus)
    Enum: "Ready" "Deleting" "Error"

    Status of the VPC Prefix

    -
    object (IpBlockUsageStats)

    Present when query param includeUsageStats=true. Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a VPC Prefix consumes a /31 prefix.

    +
    object (IpBlockUsageStats)

    Present when query parameter includeUsageStats=true. Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a VPC Prefix consumes a /31 prefix.

    availableIPs
    integer <int64>

    Total number of IP addresses in the block (acquired and unused)

    acquiredIPs
    integer <int64>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Total number of prefixes (of any size) acquired from this block

    Array of objects (StatusDetail)

    Details of 20 most recent status changes

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date and time when the VPC Prefix was created

    updated
    string <date-time>

    Date and time when the VPC Prefix was updated

    @@ -2394,7 +3096,7 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    Error response when user is not authorized to call an endpoint or retrieve/modify objects

    Request samples

    Content type
    application/json
    {
    • "name": "east-vpc-traffic-net",
    • "vpcId": "5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3",
    • "ipBlockId": "8c1d1a06-90a2-4863-8ee1-6029265b9f0a",
    • "prefixLength": 20
    }

    Response samples

    Content type
    application/json
    {
    • "id": "0c03ba01-d86b-4a57-a41e-cc359b380a6f",
    • "name": "east-vpc-traffic-net",
    • "siteId": "ea144def-d68f-44c3-9485-4b103fa2686f",
    • "vpcId": "5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3",
    • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
    • "prefix": "192.168.1.0/24",
    • "ipBlockId": "8c1d1a06-90a2-4863-8ee1-6029265b9f0a",
    • "prefixLength": 24,
    • "status": "Ready",
    • "usageStats": {
      },
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z"
    }

    Retrieve VPC Prefix

    https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/vpc-prefix

    Request samples

    Content type
    application/json
    {
    • "name": "east-vpc-traffic-net",
    • "vpcId": "5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3",
    • "ipBlockId": "8c1d1a06-90a2-4863-8ee1-6029265b9f0a",
    • "prefixLength": 20
    }

    Response samples

    Content type
    application/json
    {
    • "id": "0c03ba01-d86b-4a57-a41e-cc359b380a6f",
    • "name": "east-vpc-traffic-net",
    • "siteId": "ea144def-d68f-44c3-9485-4b103fa2686f",
    • "vpcId": "5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3",
    • "prefix": "192.168.1.0/24",
    • "ipBlockId": "8c1d1a06-90a2-4863-8ee1-6029265b9f0a",
    • "prefixLength": 24,
    • "status": "Ready",
    • "usageStats": {
      },
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z"
    }

    Retrieve VPC Prefix

    Retrieve a specific VPC Prefix

    Org must have a Tenant entity. User must have authorization role with TENANT_ADMIN suffix.

    @@ -2404,20 +3106,20 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    ID of the VPC Prefix

    query Parameters
    includeRelation
    string
    Enum: "VPC" "Tenant" "IPBlock"

    Related entity to expand

    -
    includeUsageStats
    boolean
    includeUsageStats
    boolean

    When true, each VPC Prefix object includes usage statistic using the same structure as IP Block usage. +" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    When true, each VPC Prefix object includes usage statistics using the same structure as IP Block usage. Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a VPC Prefix consumes a /31 prefix.

    Responses

    Response Schema: application/json
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    Response Schema: application/json
    id
    string <uuid>

    Unique UUID v4 identifier for the VPCPrefix

    +
    name
    string [ 2 .. 256 ] characters

    Name of the VPC Prefix

    siteId
    string <uuid>

    ID of the Site the VPC Prefix belongs to

    vpcId
    string <uuid>

    ID of the VPC the VPC Prefix belongs to

    -
    tenantId
    string <uuid>

    ID of the Tenant the VPC Prefix belongs to

    ipBlockId
    string or null <uuid>

    ID of the IP Block that contains the prefix of the VPC Prefix

    prefix
    string or null
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Length of the prefix. Valid range is 8 to 31, and max usable value depends on prefix length of parent IP Block.

    status
    string (VpcPrefixStatus)
    Enum: "Ready" "Deleting" "Error"

    Status of the VPC Prefix

    -
    object (IpBlockUsageStats)

    Present when query param includeUsageStats=true. Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a VPC Prefix consumes a /31 prefix.

    +
    object (IpBlockUsageStats)

    Present when query parameter includeUsageStats=true. Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a VPC Prefix consumes a /31 prefix.

    availableIPs
    integer <int64>

    Total number of IP addresses in the block (acquired and unused)

    acquiredIPs
    integer <int64>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Total number of prefixes (of any size) acquired from this block

    Array of objects (StatusDetail)

    Details of 20 most recent status changes

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date and time when the VPC Prefix was created

    updated
    string <date-time>

    Date and time when the VPC Prefix was updated

    @@ -2448,7 +3158,7 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    Error response when user is not authorized to call an endpoint or retrieve/modify objects

    Response samples

    Content type
    application/json
    {
    • "id": "0c03ba01-d86b-4a57-a41e-cc359b380a6f",
    • "name": "east-vpc-traffic-net",
    • "siteId": "ea144def-d68f-44c3-9485-4b103fa2686f",
    • "vpcId": "5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3",
    • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
    • "prefix": "192.168.1.0/24",
    • "ipBlockId": "8c1d1a06-90a2-4863-8ee1-6029265b9f0a",
    • "prefixLength": 24,
    • "status": "Ready",
    • "usageStats": {
      },
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z"
    }

    Delete VPC Prefix

    https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/vpc-prefix/{vpcPrefixId}

    Response samples

    Content type
    application/json
    {
    • "id": "0c03ba01-d86b-4a57-a41e-cc359b380a6f",
    • "name": "east-vpc-traffic-net",
    • "siteId": "ea144def-d68f-44c3-9485-4b103fa2686f",
    • "vpcId": "5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3",
    • "prefix": "192.168.1.0/24",
    • "ipBlockId": "8c1d1a06-90a2-4863-8ee1-6029265b9f0a",
    • "prefixLength": 24,
    • "status": "Ready",
    • "usageStats": {
      },
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z"
    }

    Delete VPC Prefix

    Delete a specific VPC Prefix by ID.

    Org must have a Tenant entity. User must have authorization role with TENANT_ADMIN suffix.

    @@ -2470,16 +3180,18 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Name of the Org

    vpcPrefixId
    required
    string <uuid>

    ID of the VPC Prefix

    -
    Request Body schema: application/json
    name
    required
    string [ 2 .. 256 ] characters

    Responses

    Response Schema: application/json
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    Response Schema: application/json
    id
    string <uuid>

    Unique UUID v4 identifier for the VPCPrefix

    +
    name
    string [ 2 .. 256 ] characters

    Name of the VPC Prefix

    siteId
    string <uuid>

    ID of the Site the VPC Prefix belongs to

    vpcId
    string <uuid>

    ID of the VPC the VPC Prefix belongs to

    -
    tenantId
    string <uuid>

    ID of the Tenant the VPC Prefix belongs to

    ipBlockId
    string or null <uuid>

    ID of the IP Block that contains the prefix of the VPC Prefix

    prefix
    string or null
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Length of the prefix. Valid range is 8 to 31, and max usable value depends on prefix length of parent IP Block.

    status
    string (VpcPrefixStatus)
    Enum: "Ready" "Deleting" "Error"

    Status of the VPC Prefix

    -
    object (IpBlockUsageStats)

    Present when query param includeUsageStats=true. Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a VPC Prefix consumes a /31 prefix.

    +
    object (IpBlockUsageStats)

    Present when query parameter includeUsageStats=true. Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a VPC Prefix consumes a /31 prefix.

    availableIPs
    integer <int64>

    Total number of IP addresses in the block (acquired and unused)

    acquiredIPs
    integer <int64>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Total number of prefixes (of any size) acquired from this block

    Array of objects (StatusDetail)

    Details of 20 most recent status changes

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date and time when the VPC Prefix was created

    updated
    string <date-time>

    Date and time when the VPC Prefix was updated

    @@ -2512,7 +3232,7 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    Error response when user is not authorized to call an endpoint or retrieve/modify objects

    Request samples

    Content type
    application/json
    {
    • "name": "east-vpc-traffic-net"
    }

    Response samples

    Content type
    application/json
    {
    • "id": "0c03ba01-d86b-4a57-a41e-cc359b380a6f",
    • "name": "east-vpc-traffic-net",
    • "siteId": "ea144def-d68f-44c3-9485-4b103fa2686f",
    • "vpcId": "5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3",
    • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
    • "prefix": "192.168.1.0/24",
    • "ipBlockId": "8c1d1a06-90a2-4863-8ee1-6029265b9f0a",
    • "prefixLength": 24,
    • "status": "Ready",
    • "usageStats": {
      },
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z"
    }

    Subnet

    https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/vpc-prefix/{vpcPrefixId}

    Request samples

    Content type
    application/json
    {
    • "name": "east-vpc-traffic-net"
    }

    Response samples

    Content type
    application/json
    {
    • "id": "0c03ba01-d86b-4a57-a41e-cc359b380a6f",
    • "name": "east-vpc-traffic-net",
    • "siteId": "ea144def-d68f-44c3-9485-4b103fa2686f",
    • "vpcId": "5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3",
    • "prefix": "192.168.1.0/24",
    • "ipBlockId": "8c1d1a06-90a2-4863-8ee1-6029265b9f0a",
    • "prefixLength": 24,
    • "status": "Ready",
    • "usageStats": {
      },
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z"
    }

    Subnet

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

    @@ -2522,20 +3242,20 @@

    Typical API Call Flow for Tenant

    Org must have a Tenant entity. User must have authorization role with TENANT_ADMIN suffix.

    Authorizations:
    JWTBearerToken
    path Parameters
    org
    required
    string

    Name of the Org

    -
    query Parameters
    siteId
    string <uuid>

    Filter subnets by Site, required if vpcId query param is not specified

    +
    query Parameters
    siteId
    string <uuid>

    Filter subnets by Site, required if the vpcId query parameter is not specified

    vpcId
    string <uuid>

    Filter subnets by VPC

    status
    string

    Filter Subnets by Status

    -
    query
    string

    Search for matches across all Sites. Input will be matched against name, description and status fields

    +
    query
    string

    Search for matches across all Subnets. Input will be matched against name, description, and status fields

    includeRelation
    string
    Enum: "VPC" "Tenant" "IPv4Block" "IPv6Block"

    Related entity to expand

    -
    includeUsageStats
    boolean

    When true, each Subnet object includes usage statistic using the same structure as IP Block usage. -Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a Subnets consumes a single IP. In addition, 1 gateway and 1 broadcast IP address is reserved per Subnet.

    +
    includeUsageStats
    boolean

    When true, each Subnet object includes usage statistics using the same structure as IP Block usage. +Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a Subnet consumes a single IP. In addition, one gateway and one broadcast IP address are reserved per Subnet.

    pageNumber
    integer >= 1
    Default: 1
    Example: pageNumber=1

    Page number for pagination query

    pageSize
    integer [ 1 .. 100 ]
    Example: pageSize=20
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    OK

    Response Headers
    X-Pagination
    string
    Example: "{\"pageNumber\":1,\"pageSize\":20,\"total\":30,\"orderBy\": \"CREATED_DESC\"}"

    Pagination result in JSON format

    -
    Response Schema: application/json
    Array
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    description
    string or null
    siteId
    string <uuid>
    vpcId
    string <uuid>
    tenantId
    string <uuid>
    controllerNetworkSegmentId
    string or null <uuid>
    ipv4Prefix
    string or null <ipv4>
    Response Schema: application/json
    Array
    id
    string <uuid>

    Unique UUID v4 identifier for the Subnet

    +
    name
    string [ 2 .. 256 ] characters

    Name of the Subnet

    +
    description
    string or null

    Description of the Subnet

    +
    siteId
    string <uuid>

    ID of the Site containing the Subnet

    +
    vpcId
    string <uuid>

    ID of the VPC containing the Subnet

    +
    controllerNetworkSegmentId
    string or null <uuid>

    ID of the Site Controller network segment corresponding to the Subnet

    +
    ipv4Prefix
    string or null <ipv4>

    The prefix that gets assigned to the subnet if ipv4 block is chosen

    -
    ipv4BlockId
    string or null <uuid>
    ipv4Gateway
    string or null <ipv4>
    ipv6Prefix
    string or null <ipv6>
    ipv6BlockId
    string or null <uuid>
    ipv6Gateway
    string or null <ipv6>
    mtu
    integer
    ipv4BlockId
    string or null <uuid>

    ID of the derived Tenant IPv4 Block from an Allocation

    +
    ipv4Gateway
    string or null <ipv4>

    Address of the IPv4 gateway in the Subnet

    +
    ipv6Prefix
    string or null <ipv6>

    Prefix of the network in CIDR notation

    +
    ipv6BlockId
    string or null <uuid>

    ID of the derived Tenant IPv6 Block from an Allocation

    +
    ipv6Gateway
    string or null <ipv6>

    Address of the IPv6 gateway in the Subnet

    +
    mtu
    integer

    Maximum Transmission Unit size in bytes. This property is system-determined and read-only.

    prefixLength
    integer

    Max value depends on prefix length of parent IP Block

    -
    routingType
    string or null
    Enum: "Public" "DatacenterOnly"
    status
    string (SubnetStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status values for Subnet objects

    -
    object (IpBlockUsageStats)

    Present when query param includeUsageStats=true. Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a Subnet consumes a single IP. In addition, 1 gateway and 1 broadcast IP address is reserved per Subnet.

    +
    routingType
    string or null
    Enum: "Public" "DatacenterOnly"

    Routing type of the Subnet

    +
    status
    string (SubnetStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status of the Subnet

    +
    object (IpBlockUsageStats)

    Present when query parameter includeUsageStats=true. Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a Subnet consumes a single IP. In addition, one gateway and one broadcast IP address are reserved per Subnet.

    availableIPs
    integer <int64>

    Total number of IP addresses in the block (acquired and unused)

    acquiredIPs
    integer <int64>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Total number of /30 prefixes that can still be acquired from this block (only reduced if prefixes are acquired, not reduced by acquired IPs)

    acquiredPrefixes
    integer <int64>

    Total number of prefixes (of any size) acquired from this block

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    updated
    string <date-time>
    Array of objects (Deprecation)
    Array
    attribute
    string or null

    Name of the attribute that is deprecated. Omitted if queryParam or endpoint is being deprecated.

    -
    queryParam
    string or null

    Query parameter that is deprecated. Omitted if attribute or endpoint is being deprecated.

    -
    endpoint
    string or null

    API endpoint that is deprecated. Omitted if attribute or queryParam is being deprecated.

    -
    replacedBy
    string or null

    Name of the attribute, query parameter, or endpoint that replaces the deprecated item. Omitted if no replacement is available.

    -
    takeActionBy
    string <date-time>

    ISO datetime string for when the deprecated field will no longer be accepted or available in the API

    -
    notice
    string

    Message describing the deprecation

    -
    Array of objects (StatusDetail)

    Chronological status history for the Subnet

    +
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the Subnet was created

    +
    updated
    string <date-time>

    Date/time when the Subnet was last updated

    +

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Create Subnet

    https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/subnet

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]

    Create Subnet

    Create a Subnet for the org.

    Org must have a Tenant entity. User must have authorization role with TENANT_ADMIN suffix.

    -

    At least 1 IPv4 IP block or 1 IPv6 IP block must be specified.

    +

    At least one IPv4 IP block or one IPv6 IP block must be specified.

    Authorizations:
    JWTBearerToken
    path Parameters
    org
    required
    string

    Name of the Org

    -
    Request Body schema: application/json
    name
    required
    string [ 2 .. 256 ] characters
    description
    string or null
    vpcId
    required
    string <uuid>
    ipv4BlockId
    string or null <uuid>
    ipv6BlockId
    string or null <uuid>
    prefixLength
    required
    integer

    Responses

    Response Schema: application/json
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    description
    string or null
    siteId
    string <uuid>
    vpcId
    string <uuid>
    tenantId
    string <uuid>
    controllerNetworkSegmentId
    string or null <uuid>
    ipv4Prefix
    string or null <ipv4>
    Response Schema: application/json
    id
    string <uuid>

    Unique UUID v4 identifier for the Subnet

    +
    name
    string [ 2 .. 256 ] characters

    Name of the Subnet

    +
    description
    string or null

    Description of the Subnet

    +
    siteId
    string <uuid>

    ID of the Site containing the Subnet

    +
    vpcId
    string <uuid>

    ID of the VPC containing the Subnet

    +
    controllerNetworkSegmentId
    string or null <uuid>

    ID of the Site Controller network segment corresponding to the Subnet

    +
    ipv4Prefix
    string or null <ipv4>

    The prefix that gets assigned to the subnet if ipv4 block is chosen

    -
    ipv4BlockId
    string or null <uuid>
    ipv4Gateway
    string or null <ipv4>
    ipv6Prefix
    string or null <ipv6>
    ipv6BlockId
    string or null <uuid>
    ipv6Gateway
    string or null <ipv6>
    mtu
    integer
    ipv4BlockId
    string or null <uuid>

    ID of the derived Tenant IPv4 Block from an Allocation

    +
    ipv4Gateway
    string or null <ipv4>

    Address of the IPv4 gateway in the Subnet

    +
    ipv6Prefix
    string or null <ipv6>

    Prefix of the network in CIDR notation

    +
    ipv6BlockId
    string or null <uuid>

    ID of the derived Tenant IPv6 Block from an Allocation

    +
    ipv6Gateway
    string or null <ipv6>

    Address of the IPv6 gateway in the Subnet

    +
    mtu
    integer

    Maximum Transmission Unit size in bytes. This property is system-determined and read-only.

    prefixLength
    integer

    Max value depends on prefix length of parent IP Block

    -
    routingType
    string or null
    Enum: "Public" "DatacenterOnly"
    status
    string (SubnetStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status values for Subnet objects

    -
    object (IpBlockUsageStats)

    Present when query param includeUsageStats=true. Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a Subnet consumes a single IP. In addition, 1 gateway and 1 broadcast IP address is reserved per Subnet.

    +
    routingType
    string or null
    Enum: "Public" "DatacenterOnly"

    Routing type of the Subnet

    +
    status
    string (SubnetStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status of the Subnet

    +
    object (IpBlockUsageStats)

    Present when query parameter includeUsageStats=true. Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a Subnet consumes a single IP. In addition, one gateway and one broadcast IP address are reserved per Subnet.

    availableIPs
    integer <int64>

    Total number of IP addresses in the block (acquired and unused)

    acquiredIPs
    integer <int64>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Total number of /30 prefixes that can still be acquired from this block (only reduced if prefixes are acquired, not reduced by acquired IPs)

    acquiredPrefixes
    integer <int64>

    Total number of prefixes (of any size) acquired from this block

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    updated
    string <date-time>
    Array of objects (Deprecation)
    Array
    attribute
    string or null

    Name of the attribute that is deprecated. Omitted if queryParam or endpoint is being deprecated.

    -
    queryParam
    string or null

    Query parameter that is deprecated. Omitted if attribute or endpoint is being deprecated.

    -
    endpoint
    string or null

    API endpoint that is deprecated. Omitted if attribute or queryParam is being deprecated.

    -
    replacedBy
    string or null

    Name of the attribute, query parameter, or endpoint that replaces the deprecated item. Omitted if no replacement is available.

    -
    takeActionBy
    string <date-time>

    ISO datetime string for when the deprecated field will no longer be accepted or available in the API

    -
    notice
    string

    Message describing the deprecation

    -
    Array of objects (StatusDetail)

    Chronological status history for the Subnet

    +
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the Subnet was created

    +
    updated
    string <date-time>

    Date/time when the Subnet was last updated

    +

    Request samples

    Content type
    application/json
    {
    • "name": "spark-gpu-net",
    • "vpcId": "5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3",
    • "ipv4BlockId": "8c1d1a06-90a2-4863-8ee1-6029265b9f0a",
    • "prefixLength": 20
    }

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "name": "spark-gpu-net",
    • "siteId": "ea144def-d68f-44c3-9485-4b103fa2686f",
    • "vpcId": "5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3",
    • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
    • "controllerNetworkSegmentId": null,
    • "ipv4Prefix": "202.168.16.0",
    • "ipv4BlockId": "8c1d1a06-90a2-4863-8ee1-6029265b9f0a",
    • "ipv4Gateway": "202.168.0.1",
    • "ipv6Prefix": null,
    • "ipv6BlockId": null,
    • "ipv6Gateway": null,
    • "prefixLength": 20,
    • "routingType": "Public",
    • "status": "Pending",
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z"
    }

    Retrieve Subnet

    https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/subnet

    Request samples

    Content type
    application/json
    {
    • "name": "spark-gpu-net",
    • "vpcId": "5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3",
    • "ipv4BlockId": "8c1d1a06-90a2-4863-8ee1-6029265b9f0a",
    • "prefixLength": 20
    }

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "name": "spark-gpu-net",
    • "siteId": "ea144def-d68f-44c3-9485-4b103fa2686f",
    • "vpcId": "5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3",
    • "controllerNetworkSegmentId": null,
    • "ipv4Prefix": "202.168.16.0",
    • "ipv4BlockId": "8c1d1a06-90a2-4863-8ee1-6029265b9f0a",
    • "ipv4Gateway": "202.168.0.1",
    • "ipv6Prefix": null,
    • "ipv6BlockId": null,
    • "ipv6Gateway": null,
    • "prefixLength": 20,
    • "routingType": "Public",
    • "status": "Pending",
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z"
    }

    Retrieve Subnet

    Retrieve a specific Subnet

    Org must have a Tenant entity. User must have authorization role with TENANT_ADMIN suffix.

    @@ -2640,22 +3424,46 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    ID of the Subnet

    query Parameters
    includeRelation
    string
    Enum: "VPC" "Tenant" "IPv4Block" "IPv6Block"

    Related entity to expand

    -
    includeUsageStats
    boolean

    When true, each Subnet object includes usage statistic using the same structure as IP Block usage. -Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a Subnets consumes a single IP. In addition, 1 gateway and 1 broadcast IP address is reserved per Subnet.

    +
    includeUsageStats
    boolean

    When true, each Subnet object includes usage statistics using the same structure as IP Block usage. +Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a Subnet consumes a single IP. In addition, one gateway and one broadcast IP address are reserved per Subnet.

    Responses

    Response Schema: application/json
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    description
    string or null
    siteId
    string <uuid>
    vpcId
    string <uuid>
    tenantId
    string <uuid>
    controllerNetworkSegmentId
    string or null <uuid>
    ipv4Prefix
    string or null <ipv4>
    Response Schema: application/json
    id
    string <uuid>

    Unique UUID v4 identifier for the Subnet

    +
    name
    string [ 2 .. 256 ] characters

    Name of the Subnet

    +
    description
    string or null

    Description of the Subnet

    +
    siteId
    string <uuid>

    ID of the Site containing the Subnet

    +
    vpcId
    string <uuid>

    ID of the VPC containing the Subnet

    +
    controllerNetworkSegmentId
    string or null <uuid>

    ID of the Site Controller network segment corresponding to the Subnet

    +
    ipv4Prefix
    string or null <ipv4>

    The prefix that gets assigned to the subnet if ipv4 block is chosen

    -
    ipv4BlockId
    string or null <uuid>
    ipv4Gateway
    string or null <ipv4>
    ipv6Prefix
    string or null <ipv6>
    ipv6BlockId
    string or null <uuid>
    ipv6Gateway
    string or null <ipv6>
    mtu
    integer
    ipv4BlockId
    string or null <uuid>

    ID of the derived Tenant IPv4 Block from an Allocation

    +
    ipv4Gateway
    string or null <ipv4>

    Address of the IPv4 gateway in the Subnet

    +
    ipv6Prefix
    string or null <ipv6>

    Prefix of the network in CIDR notation

    +
    ipv6BlockId
    string or null <uuid>

    ID of the derived Tenant IPv6 Block from an Allocation

    +
    ipv6Gateway
    string or null <ipv6>

    Address of the IPv6 gateway in the Subnet

    +
    mtu
    integer

    Maximum Transmission Unit size in bytes. This property is system-determined and read-only.

    prefixLength
    integer

    Max value depends on prefix length of parent IP Block

    -
    routingType
    string or null
    Enum: "Public" "DatacenterOnly"
    status
    string (SubnetStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status values for Subnet objects

    -
    object (IpBlockUsageStats)

    Present when query param includeUsageStats=true. Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a Subnet consumes a single IP. In addition, 1 gateway and 1 broadcast IP address is reserved per Subnet.

    +
    routingType
    string or null
    Enum: "Public" "DatacenterOnly"

    Routing type of the Subnet

    +
    status
    string (SubnetStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status of the Subnet

    +
    object (IpBlockUsageStats)

    Present when query parameter includeUsageStats=true. Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a Subnet consumes a single IP. In addition, one gateway and one broadcast IP address are reserved per Subnet.

    availableIPs
    integer <int64>

    Total number of IP addresses in the block (acquired and unused)

    acquiredIPs
    integer <int64>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Total number of /30 prefixes that can still be acquired from this block (only reduced if prefixes are acquired, not reduced by acquired IPs)

    acquiredPrefixes
    integer <int64>

    Total number of prefixes (of any size) acquired from this block

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    updated
    string <date-time>
    Array of objects (Deprecation)
    Array
    attribute
    string or null

    Name of the attribute that is deprecated. Omitted if queryParam or endpoint is being deprecated.

    -
    queryParam
    string or null

    Query parameter that is deprecated. Omitted if attribute or endpoint is being deprecated.

    -
    endpoint
    string or null

    API endpoint that is deprecated. Omitted if attribute or queryParam is being deprecated.

    -
    replacedBy
    string or null

    Name of the attribute, query parameter, or endpoint that replaces the deprecated item. Omitted if no replacement is available.

    -
    takeActionBy
    string <date-time>

    ISO datetime string for when the deprecated field will no longer be accepted or available in the API

    -
    notice
    string

    Message describing the deprecation

    -
    Array of objects (StatusDetail)

    Chronological status history for the Subnet

    +
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the Subnet was created

    +
    updated
    string <date-time>

    Date/time when the Subnet was last updated

    +

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "name": "spark-gpu-net",
    • "siteId": "ea144def-d68f-44c3-9485-4b103fa2686f",
    • "vpcId": "5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3",
    • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
    • "controllerNetworkSegmentId": "abe7b0e8-67db-4e89-903e-fc4f2bd7f034",
    • "ipv4Prefix": "202.168.16.0",
    • "ipv4BlockId": "8c1d1a06-90a2-4863-8ee1-6029265b9f0a",
    • "ipv4Gateway": "202.168.0.1",
    • "ipv6Prefix": null,
    • "ipv6BlockId": null,
    • "ipv6Gateway": null,
    • "prefixLength": 20,
    • "routingType": "Public",
    • "status": "Ready",
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z"
    }

    Delete Subnet

    https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/subnet/{subnetId}

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "name": "spark-gpu-net",
    • "siteId": "ea144def-d68f-44c3-9485-4b103fa2686f",
    • "vpcId": "5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3",
    • "controllerNetworkSegmentId": "abe7b0e8-67db-4e89-903e-fc4f2bd7f034",
    • "ipv4Prefix": "202.168.16.0",
    • "ipv4BlockId": "8c1d1a06-90a2-4863-8ee1-6029265b9f0a",
    • "ipv4Gateway": "202.168.0.1",
    • "ipv6Prefix": null,
    • "ipv6BlockId": null,
    • "ipv6Gateway": null,
    • "prefixLength": 20,
    • "routingType": "Public",
    • "status": "Ready",
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z"
    }

    Delete Subnet

    Delete a specific Subnet by ID.

    Org must have a Tenant entity. User must have authorization role with TENANT_ADMIN suffix.

    @@ -2704,18 +3514,46 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Name of the Org

    subnetId
    required
    string <uuid>

    ID of the Subnet

    -
    Request Body schema: application/json
    name
    required
    string [ 2 .. 256 ] characters
    description
    string or null

    Responses

    Response Schema: application/json
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    description
    string or null
    siteId
    string <uuid>
    vpcId
    string <uuid>
    tenantId
    string <uuid>
    controllerNetworkSegmentId
    string or null <uuid>
    ipv4Prefix
    string or null <ipv4>
    Response Schema: application/json
    id
    string <uuid>

    Unique UUID v4 identifier for the Subnet

    +
    name
    string [ 2 .. 256 ] characters

    Name of the Subnet

    +
    description
    string or null

    Description of the Subnet

    +
    siteId
    string <uuid>

    ID of the Site containing the Subnet

    +
    vpcId
    string <uuid>

    ID of the VPC containing the Subnet

    +
    controllerNetworkSegmentId
    string or null <uuid>

    ID of the Site Controller network segment corresponding to the Subnet

    +
    ipv4Prefix
    string or null <ipv4>

    The prefix that gets assigned to the subnet if ipv4 block is chosen

    -
    ipv4BlockId
    string or null <uuid>
    ipv4Gateway
    string or null <ipv4>
    ipv6Prefix
    string or null <ipv6>
    ipv6BlockId
    string or null <uuid>
    ipv6Gateway
    string or null <ipv6>
    mtu
    integer
    ipv4BlockId
    string or null <uuid>

    ID of the derived Tenant IPv4 Block from an Allocation

    +
    ipv4Gateway
    string or null <ipv4>

    Address of the IPv4 gateway in the Subnet

    +
    ipv6Prefix
    string or null <ipv6>

    Prefix of the network in CIDR notation

    +
    ipv6BlockId
    string or null <uuid>

    ID of the derived Tenant IPv6 Block from an Allocation

    +
    ipv6Gateway
    string or null <ipv6>

    Address of the IPv6 gateway in the Subnet

    +
    mtu
    integer

    Maximum Transmission Unit size in bytes. This property is system-determined and read-only.

    prefixLength
    integer

    Max value depends on prefix length of parent IP Block

    -
    routingType
    string or null
    Enum: "Public" "DatacenterOnly"
    status
    string (SubnetStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status values for Subnet objects

    -
    object (IpBlockUsageStats)

    Present when query param includeUsageStats=true. Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a Subnet consumes a single IP. In addition, 1 gateway and 1 broadcast IP address is reserved per Subnet.

    +
    routingType
    string or null
    Enum: "Public" "DatacenterOnly"

    Routing type of the Subnet

    +
    status
    string (SubnetStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status of the Subnet

    +
    object (IpBlockUsageStats)

    Present when query parameter includeUsageStats=true. Prefix and IP usage data is derived by evaluating associated Ethernet interfaces. Each Interface associated with a Subnet consumes a single IP. In addition, one gateway and one broadcast IP address are reserved per Subnet.

    availableIPs
    integer <int64>

    Total number of IP addresses in the block (acquired and unused)

    acquiredIPs
    integer <int64>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Total number of /30 prefixes that can still be acquired from this block (only reduced if prefixes are acquired, not reduced by acquired IPs)

    acquiredPrefixes
    integer <int64>

    Total number of prefixes (of any size) acquired from this block

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    updated
    string <date-time>
    Array of objects (Deprecation)
    Array
    attribute
    string or null

    Name of the attribute that is deprecated. Omitted if queryParam or endpoint is being deprecated.

    -
    queryParam
    string or null

    Query parameter that is deprecated. Omitted if attribute or endpoint is being deprecated.

    -
    endpoint
    string or null

    API endpoint that is deprecated. Omitted if attribute or queryParam is being deprecated.

    -
    replacedBy
    string or null

    Name of the attribute, query parameter, or endpoint that replaces the deprecated item. Omitted if no replacement is available.

    -
    takeActionBy
    string <date-time>

    ISO datetime string for when the deprecated field will no longer be accepted or available in the API

    -
    notice
    string

    Message describing the deprecation

    -
    Array of objects (StatusDetail)

    Chronological status history for the Subnet

    +
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the Subnet was created

    +
    updated
    string <date-time>

    Date/time when the Subnet was last updated

    +

    Request samples

    Content type
    application/json
    {
    • "name": "spark-gpu-subnet",
    • "description": "Subnet for dedicated GPU nodes"
    }

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "name": "spark-gpu-subnet",
    • "description": "Subnet for dedicated GPU nodes",
    • "siteId": "ea144def-d68f-44c3-9485-4b103fa2686f",
    • "vpcId": "5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3",
    • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
    • "controllerNetworkSegmentId": null,
    • "ipv4Prefix": "212.168.0.250",
    • "ipv4BlockId": "8c1d1a06-90a2-4863-8ee1-6029265b9f0a",
    • "ipv4Gateway": "202.168.0.1",
    • "ipv6Prefix": null,
    • "ipv6BlockId": null,
    • "ipv6Gateway": null,
    • "prefixLength": 20,
    • "routingType": "Public",
    • "status": "Pending",
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z"
    }

    Expected Machine

    https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/subnet/{subnetId}

    Request samples

    Content type
    application/json
    {
    • "name": "spark-gpu-subnet",
    • "description": "Subnet for dedicated GPU nodes"
    }

    Response samples

    Content type
    application/json
    {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "name": "spark-gpu-subnet",
    • "description": "Subnet for dedicated GPU nodes",
    • "siteId": "ea144def-d68f-44c3-9485-4b103fa2686f",
    • "vpcId": "5e28ad7c-5fb7-46d6-a28a-fc0ba6fdc4a3",
    • "controllerNetworkSegmentId": null,
    • "ipv4Prefix": "212.168.0.250",
    • "ipv4BlockId": "8c1d1a06-90a2-4863-8ee1-6029265b9f0a",
    • "ipv4Gateway": "202.168.0.1",
    • "ipv6Prefix": null,
    • "ipv6BlockId": null,
    • "ipv6Gateway": null,
    • "prefixLength": 20,
    • "routingType": "Public",
    • "status": "Pending",
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z"
    }

    Expected Machine

    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.

    @@ -2858,8 +3698,8 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Product name of the Machine

    maintenanceMessage
    string or null

    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
    string (MachineStatus)
    Enum: "Initializing" "Ready" "Reset" "Maintenance" "InUse" "Error" "Decommissioned" "Unknown"

    Status values for Machine objects

    +
    status
    string (MachineStatus)
    Enum: "Initializing" "Ready" "Reset" "Maintenance" "InUse" "Error" "Decommissioned" "Unknown"

    Status represents the status of the machine

    rackId
    string or null

    Optional rack identifier for this component

    bmcIpAddress
    string or null
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Product name of the Machine

    maintenanceMessage
    string or null

    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
    string (MachineStatus)
    Enum: "Initializing" "Ready" "Reset" "Maintenance" "InUse" "Error" "Decommissioned" "Unknown"

    Status values for Machine objects

    +
    status
    string (MachineStatus)
    Enum: "Initializing" "Ready" "Reset" "Maintenance" "InUse" "Error" "Decommissioned" "Unknown"

    Status represents the status of the machine

    rackId
    string or null

    Optional rack identifier for this component

    bmcIpAddress
    string or null
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Product name of the Machine

    maintenanceMessage
    string or null

    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
    string (MachineStatus)
    Enum: "Initializing" "Ready" "Reset" "Maintenance" "InUse" "Error" "Decommissioned" "Unknown"

    Status values for Machine objects

    +
    status
    string (MachineStatus)
    Enum: "Initializing" "Ready" "Reset" "Maintenance" "InUse" "Error" "Decommissioned" "Unknown"

    Status represents the status of the machine

    rackId
    string or null

    Optional rack identifier for this component

    bmcIpAddress
    string or null
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Product name of the Machine

    maintenanceMessage
    string or null

    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
    string (MachineStatus)
    Enum: "Initializing" "Ready" "Reset" "Maintenance" "InUse" "Error" "Decommissioned" "Unknown"

    Status values for Machine objects

    +
    status
    string (MachineStatus)
    Enum: "Initializing" "Ready" "Reset" "Maintenance" "InUse" "Error" "Decommissioned" "Unknown"

    Status represents the status of the machine

    rackId
    string or null

    Optional rack identifier for this component

    bmcIpAddress
    string or null
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Name of the Org

    expectedMachineId
    required
    string

    ID of the Expected Machine

    -

    Responses

    Responses

    maintenanceMessage
    string or null

    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
    string (MachineStatus)
    Enum: "Initializing" "Ready" "Reset" "Maintenance" "InUse" "Error" "Decommissioned" "Unknown"

    Status values for Machine objects

    +
    status
    string (MachineStatus)
    Enum: "Initializing" "Ready" "Reset" "Maintenance" "InUse" "Error" "Decommissioned" "Unknown"

    Status represents the status of the machine

    rackId
    string or null

    Optional rack identifier for this component

    bmcIpAddress
    string or null
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Product name of the Machine

    maintenanceMessage
    string or null

    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
    string (MachineStatus)
    Enum: "Initializing" "Ready" "Reset" "Maintenance" "InUse" "Error" "Decommissioned" "Unknown"

    Status values for Machine objects

    +
    status
    string (MachineStatus)
    Enum: "Initializing" "Ready" "Reset" "Maintenance" "InUse" "Error" "Decommissioned" "Unknown"

    Status represents the status of the machine

    rackId
    string or null

    Optional rack identifier for this component

    bmcIpAddress
    string or null
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    Error response when requested object is not found

    Response samples

    Content type
    application/json
    {
    • "source": "nico",
    • "message": "Error validating request data",
    • "data": {
      }
    }

    Expected Switch

    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.

    +
    https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/expected-rack/{id}

    Response samples

    Content type
    application/json
    {
    • "source": "nico",
    • "message": "Error validating request data",
    • "data": {
      }
    }

    Expected Switch

    Expected Switch identifies an NVLink 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 NVLink Switch discovery and ingestion.

    Create Expected Switch

    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    TPM components

    Array
    vendor
    string

    Vendor of the TPM

    -
    model
    string

    Model of the TPM

    -
    count
    integer <uint32>

    Number of TPMs present

    +
    version
    string

    Version of the TPM

    created
    string <date-time>

    ISO 8601 datetime when the SKU was created

    updated
    string <date-time>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Filter Partitions by Site

    status
    string

    Filter Partitions by Status

    -
    query
    string

    Search for matches across all Sites. Input will be matched against name, description and status fields

    +
    query
    string

    Search for matches across all InfiniBand Partitions. Input will be matched against name, description, and status fields

    includeRelation
    string
    Enum: "Site" "VPC" "Tenant"

    Related entity to expand

    pageNumber
    integer >= 1
    Default: 1
    Example: pageNumber=1
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    OK

    Response Headers
    X-Pagination
    string
    Example: "{\"pageNumber\":1,\"pageSize\":20,\"total\":30,\"orderBy\": \"CREATED_DESC\"}"

    Pagination result in JSON format

    -
    Response Schema: application/json
    Array
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    description
    string or null
    siteId
    string <uuid>
    tenantId
    string <uuid>
    controllerIBPartitionId
    string or null <uuid>
    partitionKey
    string or null
    partitionName
    string or null
    serviceLevel
    integer or null [ 0 .. 15 ]
    rateLimit
    number or null
    Enum: 2 5 10 14 20 25 30 40 56 60 80 100 112 120 168 200 300
    mtu
    integer or null
    Enum: 4000 8000
    enableSharp
    boolean
    object (Labels) <= 10 properties

    String key value pairs describing InfiniBand Partition labels. Up to 10 key value pairs can be specified

    -
    property name*
    additional property
    string
    status
    string (InfiniBandPartitionStatus)
    Enum: "Pending" "Provisioning" "Ready" "Configuring" "Deleting" "Error"

    Status values for InfiniBand Partition objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    updated
    string <date-time>
    siteId
    required
    string <uuid>

    ID of the Site the Partition should belong to

    -
    object (Labels) <= 10 properties

    String key value pairs describing Partition labels. Up to 10 key value pairs can be specified

    +
    object (Labels) <= 10 properties

    String key-value pairs describing Partition labels. Up to 10 key-value pairs can be specified

    property name*
    additional property
    string

    Responses

    Response Schema: application/json
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    description
    string or null
    siteId
    string <uuid>
    tenantId
    string <uuid>
    controllerIBPartitionId
    string or null <uuid>
    partitionKey
    string or null
    partitionName
    string or null
    serviceLevel
    integer or null [ 0 .. 15 ]
    rateLimit
    number or null
    Enum: 2 5 10 14 20 25 30 40 56 60 80 100 112 120 168 200 300
    mtu
    integer or null
    Enum: 4000 8000
    enableSharp
    boolean
    object (Labels) <= 10 properties

    String key value pairs describing InfiniBand Partition labels. Up to 10 key value pairs can be specified

    -
    property name*
    additional property
    string
    status
    string (InfiniBandPartitionStatus)
    Enum: "Pending" "Provisioning" "Ready" "Configuring" "Deleting" "Error"

    Status values for InfiniBand Partition objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    updated
    string <date-time>

    Responses

    Response Schema: application/json
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    description
    string or null
    siteId
    string <uuid>
    tenantId
    string <uuid>
    controllerIBPartitionId
    string or null <uuid>
    partitionKey
    string or null
    partitionName
    string or null
    serviceLevel
    integer or null [ 0 .. 15 ]
    rateLimit
    number or null
    Enum: 2 5 10 14 20 25 30 40 56 60 80 100 112 120 168 200 300
    mtu
    integer or null
    Enum: 4000 8000
    enableSharp
    boolean
    object (Labels) <= 10 properties

    String key value pairs describing InfiniBand Partition labels. Up to 10 key value pairs can be specified

    -
    property name*
    additional property
    string
    status
    string (InfiniBandPartitionStatus)
    Enum: "Pending" "Provisioning" "Ready" "Configuring" "Deleting" "Error"

    Status values for InfiniBand Partition objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    updated
    string <date-time>
    infiniBandPartitionId
    required
    string

    ID of the InfiniBand Partition

    -
    Request Body schema: application/json
    name
    required
    string [ 2 .. 256 ] characters
    description
    string or null
    object (Labels) <= 10 properties

    String key value pairs describing Partition labels. Up to 10 key value pairs can be specified

    +
    Request Body schema: application/json
    name
    required
    string [ 2 .. 256 ] characters

    Name of the InfiniBand Partition

    +
    description
    string or null

    Description of the InfiniBand Partition

    +
    object (Labels) <= 10 properties

    String key-value pairs describing Partition labels. Up to 10 key-value pairs can be specified

    property name*
    additional property
    string

    Responses

    Response Schema: application/json
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    description
    string or null
    siteId
    string <uuid>
    tenantId
    string <uuid>
    controllerIBPartitionId
    string or null <uuid>
    partitionKey
    string or null
    partitionName
    string or null
    serviceLevel
    integer or null [ 0 .. 15 ]
    rateLimit
    number or null
    Enum: 2 5 10 14 20 25 30 40 56 60 80 100 112 120 168 200 300
    mtu
    integer or null
    Enum: 4000 8000
    enableSharp
    boolean
    object (Labels) <= 10 properties

    String key value pairs describing InfiniBand Partition labels. Up to 10 key value pairs can be specified

    -
    property name*
    additional property
    string
    status
    string (InfiniBandPartitionStatus)
    Enum: "Pending" "Provisioning" "Ready" "Configuring" "Deleting" "Error"

    Status values for InfiniBand Partition objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    updated
    string <date-time>
    Response Headers
    X-Pagination
    string
    Example: "{\"pageNumber\":1,\"pageSize\":20,\"total\":30,\"orderBy\": \"CREATED_DESC\"}"

    Pagination result in JSON format

    -
    Response Schema: application/json
    Array
    id
    string <uuid> non-empty
    instanceId
    string <uuid>
    partitionId
    string <uuid>
    Response Schema: application/json
    Array
    id
    string <uuid> non-empty

    Unique UUID v4 identifier for the InfiniBandInterface

    +
    instanceId
    string <uuid>

    ID of the associated Instance

    +
    partitionId
    string <uuid>

    ID of the InfiniBand Partition associated with this interface

    device
    string

    Name of the InfiniBand device associated with this interface

    -
    deviceInstance
    integer
    isPhysical
    boolean
    vendor
    string or null

    Name of the InfiniBand device vendor associated with this interface

    +
    deviceInstance
    integer

    Index of the device where partition attach to

    +
    isPhysical
    boolean

    Indicates whether this is a physical interface

    -
    virtualFunctionId
    integer or null
    guid
    string or null
    status
    string (InfiniBandInterfaceStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status values for InfiniBand Interface objects

    -
    created
    string <date-time>
    updated
    string <date-time>
    virtualFunctionId
    integer or null

    Must be specified if isPhysical is false

    +
    guid
    string or null

    Must be specified if isPhysical is false

    +
    status
    string (InfiniBandInterfaceStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status of the InfiniBandInterface

    +
    created
    string <date-time>

    Date/time when the InfiniBandInterface was created

    +
    updated
    string <date-time>

    Date/time when the InfiniBandInterface was last updated

    +

    Response samples

    Content type
    application/json
    [
    • {
      }
    ]
    status
    string

    Filter NVLink Logical Partitions by Status

    -
    query
    string

    Search for matches across all Sites. Input will be matched against name, description and status fields

    +
    query
    string

    Search for matches across all NVLink Logical Partitions. Input will be matched against name, description, and status fields

    includeInterfaces
    boolean

    Include NVLink Interfaces in response.

    includeStats
    boolean
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Status of the NVLink Logical Partition

    Array of objects (StatusDetail)

    Details of status changes for the NVLink Logical Partition over time

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    object (NVLinkLogicalPartitionStats)

    GPU and Instance usage counts for the NVLink Logical Partition. Returned if the includeStats query parameter is set to true in retrieval endpoints

    +
    totalGpus
    integer

    Total number of GPUs associated with the NVLink Logical Partition

    +
    totalDistinctInstances
    integer

    Total number of distinct Instances associated with the NVLink Logical Partition

    +
    created
    string <date-time>

    Date and time the NVLink Logical Partition was created

    updated
    string <date-time>

    Date and time the NVLink Logical Partition was last updated

    @@ -4906,7 +5938,21 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Status of the NVLink Logical Partition

    Array of objects (StatusDetail)

    Details of status changes for the NVLink Logical Partition over time

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    object (NVLinkLogicalPartitionStats)

    GPU and Instance usage counts for the NVLink Logical Partition. Returned if the includeStats query parameter is set to true in retrieval endpoints

    +
    totalGpus
    integer

    Total number of GPUs associated with the NVLink Logical Partition

    +
    totalDistinctInstances
    integer

    Total number of distinct Instances associated with the NVLink Logical Partition

    +
    created
    string <date-time>

    Date and time the NVLink Logical Partition was created

    updated
    string <date-time>

    Date and time the NVLink Logical Partition was last updated

    @@ -4948,7 +5994,21 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Status of the NVLink Logical Partition

    Array of objects (StatusDetail)

    Details of status changes for the NVLink Logical Partition over time

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    object (NVLinkLogicalPartitionStats)

    GPU and Instance usage counts for the NVLink Logical Partition. Returned if the includeStats query parameter is set to true in retrieval endpoints

    +
    totalGpus
    integer

    Total number of GPUs associated with the NVLink Logical Partition

    +
    totalDistinctInstances
    integer

    Total number of distinct Instances associated with the NVLink Logical Partition

    +
    created
    string <date-time>

    Date and time the NVLink Logical Partition was created

    updated
    string <date-time>

    Date and time the NVLink Logical Partition was last updated

    @@ -4984,7 +6044,21 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Status of the NVLink Logical Partition

    Array of objects (StatusDetail)

    Details of status changes for the NVLink Logical Partition over time

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    object (NVLinkLogicalPartitionStats)

    GPU and Instance usage counts for the NVLink Logical Partition. Returned if the includeStats query parameter is set to true in retrieval endpoints

    +
    totalGpus
    integer

    Total number of GPUs associated with the NVLink Logical Partition

    +
    totalDistinctInstances
    integer

    Total number of distinct Instances associated with the NVLink Logical Partition

    +
    created
    string <date-time>

    Date and time the NVLink Logical Partition was created

    updated
    string <date-time>

    Date and time the NVLink Logical Partition was last updated

    @@ -5036,7 +6110,11 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    OK

    Response Headers
    X-Pagination
    string
    Example: "{\"pageNumber\":1,\"pageSize\":20,\"total\":30,\"orderBy\": \"CREATED_DESC\"}"

    Pagination result in JSON format

    -
    Response Schema: application/json
    Array
    id
    string <uuid> non-empty
    instanceId
    string <uuid>
    nvLinkLogicalPartitionId
    string <uuid>
    Response Schema: application/json
    Array
    id
    string <uuid> non-empty

    Unique UUID v4 identifier for the NVLinkInterface

    +
    instanceId
    string <uuid>

    ID of the associated Instance

    +
    nvLinkLogicalPartitionId
    string <uuid>

    ID of the NVLink Logical Partition associated with this interface

    nvLinkDomainId
    string or null <uuid>

    ID of the NVLink Domain associated with this Interface

    @@ -5044,9 +6122,27 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Index of the device, used to identify the GPU associated with this Interface

    gpuGuid
    string or null

    Unique ID of the GPU

    -
    status
    string (NVLinkInterfaceStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status values for NVLink Interface objects

    -
    created
    string <date-time>
    updated
    string <date-time>
    status
    string (NVLinkInterfaceStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status of the NVLinkInterface

    +
    created
    string <date-time>

    Date/time when the NVLinkInterface was created

    +
    updated
    string <date-time>

    Date/time when the NVLinkInterface was last updated

    +
    Array of objects (Deprecation)

    List of deprecations for NVLinkInterface API object

    +
    Array
    attribute
    string or null

    Name of the attribute that is deprecated. Omitted if queryParam or endpoint is being deprecated.

    +
    queryParam
    string or null

    Query parameter that is deprecated. Omitted if attribute or endpoint is being deprecated.

    +
    endpoint
    string or null

    API endpoint that is deprecated. Omitted if attribute or queryParam is being deprecated.

    +
    replacedBy
    string or null

    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

    +
    type
    string or null
    Enum: "iPXE" "Image"

    Type of the Operating System

    -
    imageUrl
    string or null <uri>

    Original URL from where the Operating System image can be retrieved

    -
    imageSha
    string or null

    SHA hash of the image file, only present for image based OS

    -
    imageAuthType
    string or null

    Authentication type for image URL e.g. 'Basic' or 'Bearer'

    +
    imageUrl
    string or null <uri>

    Original URL from which the Operating System image can be retrieved

    +
    imageSha
    string or null

    SHA hash of the image file, only present for image-based OS

    +
    imageAuthType
    string or null

    Authentication type for image URL, e.g., 'Basic' or 'Bearer'

    imageAuthToken
    string or null

    Auth token to retrieve the image from image URL

    -
    imageDisk
    string or null

    Disk path where the image should be monuted

    -
    rootFsId
    string or null

    Root filesystem UUID, only applicable for image based Operating System

    -
    rootFsLabel
    string or null

    Root filesystem label, only applicable for image based Operating System

    -
    ipxeScript
    string or null

    iPXE script or URL, only applicable for iPXE based Operating System

    +
    imageDisk
    string or null

    Disk path where the image should be mounted

    +
    rootFsId
    string or null

    Root filesystem UUID, only applicable for image-based Operating System

    +
    rootFsLabel
    string or null

    Root filesystem label, only applicable for image-based Operating System

    +
    ipxeScript
    string or null

    iPXE script or URL, only applicable for iPXE-based Operating System

    userData
    string or null

    User data for the Operating System

    -
    isCloudInit
    boolean

    Specified when the Operating System is Cloud Init based

    +
    isCloudInit
    boolean

    Specified when the Operating System is cloud-init based

    phoneHomeEnabled
    boolean

    Indicates whether the Phone Home service should be enabled or disabled for Operating System

    isActive
    boolean
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Indicates if the user data can be overridden at Instance creation time

    Array of objects (OperatingSystemSiteAssociation)

    Sites the Operating System is synced to

    -
    Array
    object (SiteSummary)

    SiteSummary contains a subset of data for Site object, used when nesting in other objects

    -
    status
    string (SshKeyGroupStatus)
    Enum: "Syncing" "Synced" "Error" "Deleting"

    Status values for SSH Key Group objects

    +
    Array
    object (SiteSummary)

    Summary of the Site

    +
    status
    string (SshKeyGroupStatus)
    Enum: "Syncing" "Synced" "Error" "Deleting"

    Status of the Operating SystemSiteAssociation

    version
    string or null

    Version of the Key Group on Site

    -
    created
    string <date-time>
    updated
    string <date-time>
    status
    string (OperatingSystemStatus)
    Enum: "Pending" "Provisioning" "Syncing" "Ready" "Deleting" "Error" "Deactivated"
    created
    string <date-time>

    Date/time when the Site was created

    +
    updated
    string <date-time>

    Date/time when the Site was last updated

    +
    status
    string (OperatingSystemStatus)
    Enum: "Pending" "Provisioning" "Syncing" "Ready" "Deleting" "Error" "Deactivated"

    Status of the Operating System

    Array of objects (StatusDetail)

    History of status changes over time

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the Operating System was created

    updated
    string <date-time>

    Date/time when the Operating System was updated

    @@ -5142,13 +6250,13 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Kubernetes Cluster

    https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/operating-system

    Response samples

    Content type
    application/json
    Example
    [
    • {
      }
    ]

    Create Operating System

    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 authorization role with PROVIDER_ADMIN suffix.

    -

    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 authorization role with TENANT_ADMIN suffix.

    +

    If infrastructureProviderId is provided in request data, then org must have an Infrastructure Provider entity and its ID should match the query parameter value. User must have authorization role with PROVIDER_ADMIN suffix.

    +

    If tenantId is provided in request data, then org must have a Tenant entity and its ID should match the query parameter value. User must have authorization role with TENANT_ADMIN suffix.

    Only Tenants are allowed to create Operating System for MVP.

    Authorizations:
    JWTBearerToken
    path Parameters
    org
    required
    string

    Name of the Org

    @@ -5160,30 +6268,30 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Deprecated: Infrastructure Provider is now inferred from org membership.

    tenantId
    string or null <uuid>
    Deprecated

    Deprecated: Tenant is now inferred from org membership.

    -
    siteIds
    Array of strings <uuid> [ items <uuid > ]

    Specified only one Site if an Operating System is Image based, more than one Site is not supported"

    -
    ipxeScript
    string or null

    iPXE script or URL, only applicable for iPXE based OS. Cannot be specified if imageUrl is specified

    -
    imageUrl
    string or null <uri>

    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
    string or null

    SHA hash of the image file, required for image based OS

    -
    imageAuthType
    string or null

    Authentication type for image URL if needed e.g. basic/bearer/token, required is imageAuthToken is specified

    +
    siteIds
    Array of strings <uuid> [ items <uuid > ]

    Specify only one Site if an Operating System is image-based; more than one Site is not supported.

    +
    ipxeScript
    string or null

    iPXE script or URL, only applicable for iPXE-based OS. Cannot be specified if imageUrl is specified

    +
    imageUrl
    string or null <uri>

    Original URL from which the Operating System image can be retrieved; required for image-based OS. Cannot be specified if ipxeScript is specified

    +
    imageSha
    string or null

    SHA hash of the image file, required for image-based OS

    +
    imageAuthType
    string or null

    Authentication type for image URL, if needed, e.g., basic/bearer/token; required if imageAuthToken is specified

    imageAuthToken
    string or null

    Auth token to retrieve the image from image URL, required if imageAuthType is specified

    imageDisk
    string or null

    Disk path where the image should be mounted, optional

    -
    rootFsId
    string or null

    Root filesystem UUID, this or rootFsLabel required for image based OS

    -
    rootFsLabel
    string or null

    Root filesystem label, this or rootFsId required for image based OS

    +
    rootFsId
    string or null

    Root filesystem UUID; this or rootFsLabel is required for image-based OS

    +
    rootFsLabel
    string or null

    Root filesystem label; this or rootFsId is required for image-based OS

    phoneHomeEnabled
    boolean or null

    Indicates whether the Phone Home service should be enabled or disabled for Operating System

    userData
    string or null

    User data for the Operating System

    -
    isCloudInit
    boolean

    Specified when the Operating System is Cloud Init based

    +
    isCloudInit
    boolean

    Specified when the Operating System is cloud-init based

    allowOverride
    boolean

    Indicates if the user data can be overridden at Instance creation time

    Responses

    type
    string or null
    Enum: "iPXE" "Image"

    Type of the Operating System

    -
    imageUrl
    string or null <uri>

    Original URL from where the Operating System image can be retrieved

    -
    imageSha
    string or null

    SHA hash of the image file, only present for image based OS

    -
    imageAuthType
    string or null

    Authentication type for image URL e.g. 'Basic' or 'Bearer'

    +
    imageUrl
    string or null <uri>

    Original URL from which the Operating System image can be retrieved

    +
    imageSha
    string or null

    SHA hash of the image file, only present for image-based OS

    +
    imageAuthType
    string or null

    Authentication type for image URL, e.g., 'Basic' or 'Bearer'

    imageAuthToken
    string or null

    Auth token to retrieve the image from image URL

    -
    imageDisk
    string or null

    Disk path where the image should be monuted

    -
    rootFsId
    string or null

    Root filesystem UUID, only applicable for image based Operating System

    -
    rootFsLabel
    string or null

    Root filesystem label, only applicable for image based Operating System

    -
    ipxeScript
    string or null

    iPXE script or URL, only applicable for iPXE based Operating System

    +
    imageDisk
    string or null

    Disk path where the image should be mounted

    +
    rootFsId
    string or null

    Root filesystem UUID, only applicable for image-based Operating System

    +
    rootFsLabel
    string or null

    Root filesystem label, only applicable for image-based Operating System

    +
    ipxeScript
    string or null

    iPXE script or URL, only applicable for iPXE-based Operating System

    userData
    string or null

    User data for the Operating System

    -
    isCloudInit
    boolean

    Specified when the Operating System is Cloud Init based

    +
    isCloudInit
    boolean

    Specified when the Operating System is cloud-init based

    phoneHomeEnabled
    boolean

    Indicates whether the Phone Home service should be enabled or disabled for Operating System

    isActive
    boolean
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Indicates if the user data can be overridden at Instance creation time

    Array of objects (OperatingSystemSiteAssociation)

    Sites the Operating System is synced to

    -
    Array
    object (SiteSummary)

    SiteSummary contains a subset of data for Site object, used when nesting in other objects

    -
    status
    string (SshKeyGroupStatus)
    Enum: "Syncing" "Synced" "Error" "Deleting"

    Status values for SSH Key Group objects

    +
    Array
    object (SiteSummary)

    Summary of the Site

    +
    status
    string (SshKeyGroupStatus)
    Enum: "Syncing" "Synced" "Error" "Deleting"

    Status of the Operating SystemSiteAssociation

    version
    string or null

    Version of the Key Group on Site

    -
    created
    string <date-time>
    updated
    string <date-time>
    status
    string (OperatingSystemStatus)
    Enum: "Pending" "Provisioning" "Syncing" "Ready" "Deleting" "Error" "Deactivated"
    created
    string <date-time>

    Date/time when the Site was created

    +
    updated
    string <date-time>

    Date/time when the Site was last updated

    +
    status
    string (OperatingSystemStatus)
    Enum: "Pending" "Provisioning" "Syncing" "Ready" "Deleting" "Error" "Deactivated"

    Status of the Operating System

    Array of objects (StatusDetail)

    History of status changes over time

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the Operating System was created

    updated
    string <date-time>

    Date/time when the Operating System was updated

    @@ -5276,26 +6396,26 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Specified if a Tenant owns the Operating System

    type
    string or null
    Enum: "iPXE" "Image"

    Type of the Operating System

    -
    imageUrl
    string or null <uri>

    Original URL from where the Operating System image can be retrieved

    -
    imageSha
    string or null

    SHA hash of the image file, only present for image based OS

    -
    imageAuthType
    string or null

    Authentication type for image URL e.g. 'Basic' or 'Bearer'

    +
    imageUrl
    string or null <uri>

    Original URL from which the Operating System image can be retrieved

    +
    imageSha
    string or null

    SHA hash of the image file, only present for image-based OS

    +
    imageAuthType
    string or null

    Authentication type for image URL, e.g., 'Basic' or 'Bearer'

    imageAuthToken
    string or null

    Auth token to retrieve the image from image URL

    -
    imageDisk
    string or null

    Disk path where the image should be monuted

    -
    rootFsId
    string or null

    Root filesystem UUID, only applicable for image based Operating System

    -
    rootFsLabel
    string or null

    Root filesystem label, only applicable for image based Operating System

    -
    ipxeScript
    string or null

    iPXE script or URL, only applicable for iPXE based Operating System

    +
    imageDisk
    string or null

    Disk path where the image should be mounted

    +
    rootFsId
    string or null

    Root filesystem UUID, only applicable for image-based Operating System

    +
    rootFsLabel
    string or null

    Root filesystem label, only applicable for image-based Operating System

    +
    ipxeScript
    string or null

    iPXE script or URL, only applicable for iPXE-based Operating System

    userData
    string or null

    User data for the Operating System

    -
    isCloudInit
    boolean

    Specified when the Operating System is Cloud Init based

    +
    isCloudInit
    boolean

    Specified when the Operating System is cloud-init based

    phoneHomeEnabled
    boolean

    Indicates whether the Phone Home service should be enabled or disabled for Operating System

    isActive
    boolean
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Indicates if the user data can be overridden at Instance creation time

    Array of objects (OperatingSystemSiteAssociation)

    Sites the Operating System is synced to

    -
    Array
    object (SiteSummary)

    SiteSummary contains a subset of data for Site object, used when nesting in other objects

    -
    status
    string (SshKeyGroupStatus)
    Enum: "Syncing" "Synced" "Error" "Deleting"

    Status values for SSH Key Group objects

    +
    Array
    object (SiteSummary)

    Summary of the Site

    +
    status
    string (SshKeyGroupStatus)
    Enum: "Syncing" "Synced" "Error" "Deleting"

    Status of the Operating SystemSiteAssociation

    version
    string or null

    Version of the Key Group on Site

    -
    created
    string <date-time>
    updated
    string <date-time>
    status
    string (OperatingSystemStatus)
    Enum: "Pending" "Provisioning" "Syncing" "Ready" "Deleting" "Error" "Deactivated"
    created
    string <date-time>

    Date/time when the Site was created

    +
    updated
    string <date-time>

    Date/time when the Site was last updated

    +
    status
    string (OperatingSystemStatus)
    Enum: "Pending" "Provisioning" "Syncing" "Ready" "Deleting" "Error" "Deactivated"

    Status of the Operating System

    Array of objects (StatusDetail)

    History of status changes over time

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the Operating System was created

    updated
    string <date-time>

    Date/time when the Operating System was updated

    @@ -5324,7 +6456,7 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    Error response when user is not authorized to call an endpoint or retrieve/modify objects

    Response samples

    Content type
    application/json
    Example
    {
    • "id": "42b0f982-5c61-4d2f-a018-41ece61f4641",
    • "name": "debian-12-amd64",
    • "description": "Official Debian 12 for AMD/Intel",
    • "infrastructureProviderId": null,
    • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
    • "type": "Image",
    • "imageSha": "2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae",
    • "imageAuthType": "Bearer",
    • "imageAuthToken": "acbd18db4cc2f85cedef654fccc4a4d8",
    • "imageDisk": "/dev/sda",
    • "rootFsId": "6c2ac315-3040-4728-94eb-b66d320206c1",
    • "rootFsLabel": null,
    • "ipxeScript": null,
    • "userData": null,
    • "isCloudInit": true,
    • "phoneHomeEnabled": false,
    • "allowOverride": false,
    • "siteAssociations": [
      ],
    • "isActive": true,
    • "deactivationNote": null,
    • "status": "Syncing",
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z"
    }

    Delete Operating System

    https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/operating-system/{operatingSystemId}

    Response samples

    Content type
    application/json
    Example
    {
    • "id": "42b0f982-5c61-4d2f-a018-41ece61f4641",
    • "name": "debian-12-amd64",
    • "description": "Official Debian 12 for AMD/Intel",
    • "infrastructureProviderId": null,
    • "tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
    • "type": "Image",
    • "imageSha": "2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae",
    • "imageAuthType": "Bearer",
    • "imageAuthToken": "acbd18db4cc2f85cedef654fccc4a4d8",
    • "imageDisk": "/dev/sda",
    • "rootFsId": "6c2ac315-3040-4728-94eb-b66d320206c1",
    • "rootFsLabel": null,
    • "ipxeScript": null,
    • "userData": null,
    • "isCloudInit": true,
    • "phoneHomeEnabled": false,
    • "allowOverride": false,
    • "siteAssociations": [
      ],
    • "isActive": true,
    • "deactivationNote": null,
    • "status": "Syncing",
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z"
    }

    Delete Operating System

    Delete an Operating System by ID

    @@ -5354,28 +6486,28 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Name of the Operating System

    description
    string or null

    Optional description of the Operating System

    -
    ipxeScript
    string or null

    iPXE script or URL, only applicable for iPXE based OS. Cannot be specified if imageUrl is specified

    -
    imageUrl
    string or null <uri>

    Original URL from where the Operating System image can be retreived from, required for image based OS

    -
    imageSha
    string or null

    SHA hash of the image file, required for image based OS

    -
    imageAuthType
    string or null

    Authentication type for image URL if needed e.g. basic/bearer/token, required is imageAuthToken is specified

    +
    ipxeScript
    string or null

    iPXE script or URL, only applicable for iPXE-based OS. Cannot be specified if imageUrl is specified

    +
    imageUrl
    string or null <uri>

    Original URL from which the Operating System image can be retrieved; required for image-based OS

    +
    imageSha
    string or null

    SHA hash of the image file, required for image-based OS

    +
    imageAuthType
    string or null

    Authentication type for image URL, if needed, e.g., basic/bearer/token; required if imageAuthToken is specified

    imageAuthToken
    string or null

    Auth token to retrieve the image from image URL, required if imageAuthType is specified

    imageDisk
    string or null

    Disk path where the image should be mounted, optional

    -
    rootFsId
    string or null

    Root filesystem UUID, this or rootFsLabel required for image based OS

    -
    rootFsLabel
    string or null

    Root filesystem label, this or rootFsId required for image based OS

    +
    rootFsId
    string or null

    Root filesystem UUID; this or rootFsLabel is required for image-based OS

    +
    rootFsLabel
    string or null

    Root filesystem label; this or rootFsId is required for image-based OS

    phoneHomeEnabled
    boolean or null

    Indicates whether the Phone Home service should be enabled or disabled for Operating System

    userData
    string or null

    User data for the Operating System

    -
    isCloudInit
    boolean or null

    Specified when the Operating System is Cloud Init based

    +
    isCloudInit
    boolean or null

    Specified when the Operating System is cloud-init based

    allowOverride
    boolean or null

    Indicates if the user data can be overridden at Instance creation time

    isActive
    boolean or null
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Specified if a Tenant owns the Operating System

    type
    string or null
    Enum: "iPXE" "Image"

    Type of the Operating System

    -
    imageUrl
    string or null <uri>

    Original URL from where the Operating System image can be retrieved

    -
    imageSha
    string or null

    SHA hash of the image file, only present for image based OS

    -
    imageAuthType
    string or null

    Authentication type for image URL e.g. 'Basic' or 'Bearer'

    +
    imageUrl
    string or null <uri>

    Original URL from which the Operating System image can be retrieved

    +
    imageSha
    string or null

    SHA hash of the image file, only present for image-based OS

    +
    imageAuthType
    string or null

    Authentication type for image URL, e.g., 'Basic' or 'Bearer'

    imageAuthToken
    string or null

    Auth token to retrieve the image from image URL

    -
    imageDisk
    string or null

    Disk path where the image should be monuted

    -
    rootFsId
    string or null

    Root filesystem UUID, only applicable for image based Operating System

    -
    rootFsLabel
    string or null

    Root filesystem label, only applicable for image based Operating System

    -
    ipxeScript
    string or null

    iPXE script or URL, only applicable for iPXE based Operating System

    +
    imageDisk
    string or null

    Disk path where the image should be mounted

    +
    rootFsId
    string or null

    Root filesystem UUID, only applicable for image-based Operating System

    +
    rootFsLabel
    string or null

    Root filesystem label, only applicable for image-based Operating System

    +
    ipxeScript
    string or null

    iPXE script or URL, only applicable for iPXE-based Operating System

    userData
    string or null

    User data for the Operating System

    -
    isCloudInit
    boolean

    Specified when the Operating System is Cloud Init based

    +
    isCloudInit
    boolean

    Specified when the Operating System is cloud-init based

    phoneHomeEnabled
    boolean

    Indicates whether the Phone Home service should be enabled or disabled for Operating System

    isActive
    boolean
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Indicates if the user data can be overridden at Instance creation time

    Array of objects (OperatingSystemSiteAssociation)

    Sites the Operating System is synced to

    -
    Array
    object (SiteSummary)

    SiteSummary contains a subset of data for Site object, used when nesting in other objects

    -
    status
    string (SshKeyGroupStatus)
    Enum: "Syncing" "Synced" "Error" "Deleting"

    Status values for SSH Key Group objects

    +
    Array
    object (SiteSummary)

    Summary of the Site

    +
    status
    string (SshKeyGroupStatus)
    Enum: "Syncing" "Synced" "Error" "Deleting"

    Status of the Operating SystemSiteAssociation

    version
    string or null

    Version of the Key Group on Site

    -
    created
    string <date-time>
    updated
    string <date-time>
    status
    string (OperatingSystemStatus)
    Enum: "Pending" "Provisioning" "Syncing" "Ready" "Deleting" "Error" "Deactivated"
    created
    string <date-time>

    Date/time when the Site was created

    +
    updated
    string <date-time>

    Date/time when the Site was last updated

    +
    status
    string (OperatingSystemStatus)
    Enum: "Pending" "Provisioning" "Syncing" "Ready" "Deleting" "Error" "Deactivated"

    Status of the Operating System

    Array of objects (StatusDetail)

    History of status changes over time

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the Operating System was created

    updated
    string <date-time>

    Date/time when the Operating System was updated

    @@ -5464,16 +6608,16 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Filter Instance Types by Tenant ID.

    status
    string

    Filter Instance Types by Status

    -
    query
    string

    Search for matches across all Sites. Input will be matched against name, display name, description, labels and status fields

    +
    query
    string

    Search for matches across all Instance Types. Input will be matched against name, display name, description, labels, and status fields

    includeRelation
    string
    Enum: "InfrastructureProvider" "Site"

    Related entity to expand

    includeMachineAssignment
    boolean

    Include Machine assignments for each Instance Type. Can only be requested by Provider.

    includeAllocationStats
    boolean

    Include Allocation stats.

    -
    excludeUnallocated
    boolean

    Excludes InstanceType records that have no allocations from being returned in the result set. Currently can only be requested by Tenant.

    +
    excludeUnallocated
    boolean

    Excludes Instance Type records that have no allocations from being returned in the result set. Currently can only be requested by Tenant.

    pageNumber
    integer >= 1
    Default: 1
    Example: pageNumber=1

    Page number for pagination query

    pageSize
    integer [ 1 .. 100 ]
    Example: pageSize=20
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    OK

    Response Headers
    X-Pagination
    string
    Example: "{\"pageNumber\":1,\"pageSize\":20,\"total\":30,\"orderBy\": \"CREATED_DESC\"}"

    Pagination result in JSON format

    -
    Response Schema: application/json
    Array
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    description
    string or null
    controllerMachineType
    string or null
    infrastructureProviderId
    string <uuid>
    siteId
    string <uuid>
    object (Labels) <= 10 properties
    property name*
    additional property
    string
    Array of objects (MachineCapability)
    Array
    type
    string
    Enum: "CPU" "Memory" "Storage" "Network" "GPU" "InfiniBand" "DPU"
    Response Schema: application/json
    Array
    id
    string <uuid>

    Unique UUID v4 identifier for the Instance Type

    +
    name
    string [ 2 .. 256 ] characters

    Name of the Instance Type

    +
    description
    string or null

    Description of the Instance Type

    +
    controllerMachineType
    string or null

    Machine type assigned by Site Controller

    +
    infrastructureProviderId
    string <uuid>

    ID of the Infrastructure Provider that owns the Instance Type

    +
    siteId
    string <uuid>

    ID of the Site that owns the Instance Type

    +
    object (Labels) <= 10 properties

    User-defined key-value labels for the Instance Type

    +
    property name*
    additional property
    string
    Array of objects (MachineCapability)

    List of capabilities that are supported by the Machine's of this Instance Type

    +
    Array
    type
    string
    Enum: "CPU" "Memory" "Storage" "Network" "GPU" "InfiniBand" "DPU"

    Type of the Capability

    name
    string

    Name of the Capability component

    @@ -5498,6 +6658,8 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Capacity of the Capability component, if applicable

    vendor
    string or null

    Vendor of the Capability component, if available

    +
    hardwareRevision
    string or null

    Hardware revision of the Capability component, if available

    inactiveDevices
    Array of integers

    A list of inactive devices

    count
    integer or null
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Available only for Providers

    Array
    id
    string <uuid>
    Deprecated

    Deprecated: Use machineId when identifying a Machine/Instance Type association. This field will be removed on July 9th, 2026 0:00 UTC.

    -
    machineId
    string
    instanceTypeId
    string <uuid>
    Array of objects (Deprecation)
    created
    string <date-time>
    updated
    string <date-time>
    object (InstanceTypeAllocationStats)
    machineId
    string

    ID of the associated Machine

    +
    instanceTypeId
    string <uuid>

    ID of the associated Instance Type

    +
    Array of objects (Deprecation)

    Deprecation notices for fields returned by this resource

    +
    created
    string <date-time>

    Date and time the Machine Instance Type was created

    +
    updated
    string <date-time>

    Date and time the Machine Instance Type was last updated

    +
    object (InstanceTypeAllocationStats)

    summary of machine counts by allocation status

    assigned
    integer

    Total number of Machines assigned to this Instance Type

    @@ -5522,9 +6694,21 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    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
    integer

    Maximum number of Machines of this Instance Type that can be allocated to a Tenant

    -
    status
    string (InstanceTypeStatus)
    Enum: "Pending" "Registering" "Ready" "Deleting" "Error"

    Status values for Instance Type objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    Array of objects (Deprecation)
    Array
    attribute
    string or null
    status
    string (InstanceTypeStatus)
    Enum: "Pending" "Registering" "Ready" "Deleting" "Error"

    Status of the Instance Type

    +
    Array of objects (StatusDetail)

    Chronological status history for the Instance Type

    +
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    Array of objects (Deprecation)

    Deprecation notices for fields returned by this resource

    +
    Array
    attribute
    string or null

    Name of the attribute that is deprecated. Omitted if queryParam or endpoint is being deprecated.

    queryParam
    string or null

    Query parameter that is deprecated. Omitted if attribute or endpoint is being deprecated.

    @@ -5532,11 +6716,15 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    API endpoint that is deprecated. Omitted if attribute or queryParam is being deprecated.

    replacedBy
    string or null

    Name of the attribute, query parameter, or endpoint that replaces the deprecated item. Omitted if no replacement is available.

    -
    takeActionBy
    string <date-time>

    ISO datetime string for when the deprecated field will no longer be accepted or available in the API

    +
    takeActionBy
    string <date-time>

    Date/time by which clients should migrate away from the deprecated API surface

    notice
    string

    Message describing the deprecation

    -
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>

    Date/time when the InstanceType was created

    +
    updated
    string <date-time>

    Date/time when the InstanceType was last updated

    +
    Request Body schema: application/json
    required
    siteId
    required
    string <uuid>

    ID of the Site

    -
    object (RackFilter)

    Filter criteria for selecting racks in batch operations. If omitted or empty, all racks in the site are targeted.

    +
    object (RackFilter)

    Filter that selects Racks whose power state should be updated

    names
    Array of strings

    Filter racks by name

    state
    required
    string
    Enum: "on" "off" "cycle" "forceoff" "forcecycle"
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Name of the Org

    Request Body schema: application/json
    required
    siteId
    required
    string <uuid>

    ID of the Site

    -
    object (RackFilter)

    Filter criteria for selecting racks in batch operations. If omitted or empty, all racks in the site are targeted.

    +
    object (RackFilter)

    Filter that selects Racks targeted for firmware update

    names
    Array of strings

    Filter racks by name

    version
    string or null
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Name of the Org

    Request Body schema: application/json
    required
    siteId
    required
    string <uuid>

    ID of the Site

    -
    object (RackFilter)

    Filter criteria for selecting racks in batch operations. If omitted or empty, all racks in the site are targeted.

    +
    object (RackFilter)

    Filter that selects Racks targeted for bring-up

    names
    Array of strings

    Filter racks by name

    description
    string
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Firmware version of the tray

    powerState
    string

    Current power state of the tray

    -
    object (TrayPosition)

    Position of a tray within a rack

    +
    object (TrayPosition)

    Position of the Tray within the Rack

    slotId
    integer

    Slot number of the tray in the rack

    trayIdx
    integer
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Firmware version of the tray

    powerState
    string

    Current power state of the tray

    -
    object (TrayPosition)

    Position of a tray within a rack

    +
    object (TrayPosition)

    Position of the Tray within the Rack

    slotId
    integer

    Slot number of the tray in the rack

    trayIdx
    integer
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Flow internal component UUID

    componentId
    string

    Component ID assigned by the component manager service

    -
    object (RackComponent)

    A component within a Rack (e.g. compute node, switch, PDU)

    -
    object (RackComponent)

    A component within a Rack (e.g. compute node, switch, PDU)

    +
    object (RackComponent)

    Expected component value

    +
    object (RackComponent)

    Actual component value reported by the system

    Array of objects (FieldDiff)

    List of field differences (populated when type is Mismatch)

    totalDiffs
    integer
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Flow internal component UUID

    componentId
    string

    Component ID assigned by the component manager service

    -
    object (RackComponent)

    A component within a Rack (e.g. compute node, switch, PDU)

    -
    object (RackComponent)

    A component within a Rack (e.g. compute node, switch, PDU)

    +
    object (RackComponent)

    Expected component value

    +
    object (RackComponent)

    Actual component value reported by the system

    Array of objects (FieldDiff)

    List of field differences (populated when type is Mismatch)

    totalDiffs
    integer
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Name of the Org

    Request Body schema: application/json
    required
    siteId
    required
    string <uuid>

    ID of the Site

    -
    object (TrayFilter)

    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. slotId requires rackId or rackName, must be >= 0, and composes with the rest of the filter via AND.

    +
    object (TrayFilter)

    Filter that selects Trays whose power state should be updated

    rackId
    string <uuid>

    Filter by Rack ID

    rackName
    string
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Name of the Org

    Request Body schema: application/json
    required
    siteId
    required
    string <uuid>

    ID of the Site

    -
    object (TrayFilter)

    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. slotId requires rackId or rackName, must be >= 0, and composes with the rest of the filter via AND.

    +
    object (TrayFilter)

    Filter that selects Trays targeted for firmware update

    rackId
    string <uuid>

    Filter by Rack ID

    rackName
    string
    Typical API Call Flow for Tenant

    Response samples

    Content type
    application/json
    {
    • "source": "nico",
    • "message": "Error validating request data",
    • "data": {
      }
    }

    Network Security Group

    Network Security Group is a security policy that controls the traffic flowing between Instances.

    +

    Deprecation history:

    +
      +
    • object_id attribute on Network Security Group propagation details was deprecated in favor of objectId and will be removed on July 9th, 2026 0:00 UTC. Please use objectId instead.
    • +

    Retrieve all Network Security Groups

    Get all Network Security Groups for Tenant

    @@ -9164,8 +11480,8 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Filter By Site ID

    status
    string

    Filter Network Security Groups by Status

    -
    query
    string

    Search for matches across all Sites. Input will be matched against name, description and status fields

    +
    query
    string

    Search for matches across all Network Security Groups. Input will be matched against name, description, and status fields

    includeRelation
    string
    Enum: "Tenant" "Site"

    Related entity to expand

    pageNumber
    integer >= 1
    Default: 1
    Example: pageNumber=1
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    OK

    Response Headers
    X-Pagination
    string
    Example: "{\"pageNumber\":1,\"pageSize\":20,\"total\":30,\"orderBy\": \"CREATED_DESC\"}"

    Pagination result in JSON format

    -
    Response Schema: application/json
    Array
    id
    string
    name
    string [ 2 .. 256 ] characters
    description
    string or null
    siteId
    string <uuid>
    tenantId
    string <uuid>
    status
    string (NetworkSecurityGroupStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status values for Network Security Group objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    statefulEgress
    boolean
    Array of objects (NetworkSecurityGroupRule)
    Array
    name
    string or null
    direction
    required
    string
    Enum: "INGRESS" "EGRESS"
    sourcePortRange
    string or null
    destinationPortRange
    string or null
    protocol
    required
    string
    Enum: "TCP" "UDP" "ICMP" "ANY"
    action
    required
    string
    Enum: "PERMIT" "DENY"
    priority
    integer
    sourcePrefix
    required
    string
    destinationPrefix
    required
    string
    object (Labels) <= 10 properties
    property name*
    additional property
    string
    created
    string <date-time>
    updated
    string <date-time>
    Authorizations:
    JWTBearerToken
    path Parameters
    org
    required
    string

    Name of the Org

    -
    Request Body schema: application/json
    name
    required
    string [ 2 .. 256 ] characters
    description
    string or null
    siteId
    required
    string <uuid>
    statefulEgress
    boolean
    Request Body schema: application/json
    name
    required
    string [ 2 .. 256 ] characters

    Name of the Network Security Group

    +
    description
    string or null

    Description of the Network Security Group

    +
    siteId
    required
    string <uuid>

    ID of the Site

    +
    statefulEgress
    boolean

    Egress rules with protocol and destination ports defined but without source ports defined should automatically be made stateful.

    -
    Array of objects (NetworkSecurityGroupRule)
    Array
    name
    string or null
    direction
    required
    string
    Enum: "INGRESS" "EGRESS"
    sourcePortRange
    string or null
    destinationPortRange
    string or null
    protocol
    required
    string
    Enum: "TCP" "UDP" "ICMP" "ANY"
    action
    required
    string
    Enum: "PERMIT" "DENY"
    priority
    integer
    sourcePrefix
    required
    string
    destinationPrefix
    required
    string
    object (Labels) <= 10 properties
    property name*
    additional property
    string

    Responses

    Array of objects (NetworkSecurityGroupRule)

    Rules that belong to the Network Security Group

    +
    Array
    name
    string or null

    Name of the Network Security Group rule

    +
    direction
    required
    string
    Enum: "INGRESS" "EGRESS"

    Traffic direction the rule applies to

    +
    sourcePortRange
    string or null

    Source port or port range matched by the rule

    +
    destinationPortRange
    string or null

    Destination port or port range matched by the rule

    +
    protocol
    required
    string
    Enum: "TCP" "UDP" "ICMP" "ICMP6" "ANY"

    Network protocol matched by the rule

    +
    action
    required
    string
    Enum: "PERMIT" "DENY"

    Action applied when traffic matches the rule

    +
    priority
    integer

    Rule priority used to order evaluation

    +
    sourcePrefix
    required
    string

    Source CIDR prefix matched by the rule

    +
    destinationPrefix
    required
    string

    Destination CIDR prefix matched by the rule

    +
    object (Labels) <= 10 properties

    User-defined key-value labels for the Network Security Group

    +
    property name*
    additional property
    string

    Responses

    Response Schema: application/json
    id
    string
    name
    string [ 2 .. 256 ] characters
    description
    string or null
    siteId
    string <uuid>
    tenantId
    string <uuid>
    status
    string (NetworkSecurityGroupStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status values for Network Security Group objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    statefulEgress
    boolean
    Array of objects (NetworkSecurityGroupRule)
    Array
    name
    string or null
    direction
    required
    string
    Enum: "INGRESS" "EGRESS"
    sourcePortRange
    string or null
    destinationPortRange
    string or null
    protocol
    required
    string
    Enum: "TCP" "UDP" "ICMP" "ANY"
    action
    required
    string
    Enum: "PERMIT" "DENY"
    priority
    integer
    sourcePrefix
    required
    string
    destinationPrefix
    required
    string
    object (Labels) <= 10 properties
    property name*
    additional property
    string
    created
    string <date-time>
    updated
    string <date-time>

    Responses

    Response Schema: application/json
    id
    string
    name
    string [ 2 .. 256 ] characters
    description
    string or null
    siteId
    string <uuid>
    tenantId
    string <uuid>
    status
    string (NetworkSecurityGroupStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status values for Network Security Group objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    statefulEgress
    boolean
    Array of objects (NetworkSecurityGroupRule)
    Array
    name
    string or null
    direction
    required
    string
    Enum: "INGRESS" "EGRESS"
    sourcePortRange
    string or null
    destinationPortRange
    string or null
    protocol
    required
    string
    Enum: "TCP" "UDP" "ICMP" "ANY"
    action
    required
    string
    Enum: "PERMIT" "DENY"
    priority
    integer
    sourcePrefix
    required
    string
    destinationPrefix
    required
    string
    object (Labels) <= 10 properties
    property name*
    additional property
    string
    created
    string <date-time>
    updated
    string <date-time>
    networkSecurityGroupId
    required
    string

    ID of the Network Security Group

    -
    Request Body schema: application/json
    name
    string or null [ 2 .. 256 ] characters
    description
    string or null
    statefulEgress
    boolean
    Request Body schema: application/json
    name
    string or null [ 2 .. 256 ] characters

    Name of the Network Security Group

    +
    description
    string or null

    Description of the Network Security Group

    +
    statefulEgress
    boolean

    Egress rules with protocol and destination ports defined but without source ports defined should automatically be made stateful.

    -
    Array of objects (NetworkSecurityGroupRule)

    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.

    -
    Array
    name
    string or null
    direction
    required
    string
    Enum: "INGRESS" "EGRESS"
    sourcePortRange
    string or null
    destinationPortRange
    string or null
    protocol
    required
    string
    Enum: "TCP" "UDP" "ICMP" "ANY"
    action
    required
    string
    Enum: "PERMIT" "DENY"
    priority
    integer
    sourcePrefix
    required
    string
    destinationPrefix
    required
    string
    object (Labels) <= 10 properties
    property name*
    additional property
    string

    Responses

    Array of objects (NetworkSecurityGroupRule)

    Update rules of the Network Security Group. The rules will be replaced with the rules sent in the request. Any rules not included in the request will be removed. To retain existing rules, fetch them first and include them.

    +
    Array
    name
    string or null

    Name of the Network Security Group rule

    +
    direction
    required
    string
    Enum: "INGRESS" "EGRESS"

    Traffic direction the rule applies to

    +
    sourcePortRange
    string or null

    Source port or port range matched by the rule

    +
    destinationPortRange
    string or null

    Destination port or port range matched by the rule

    +
    protocol
    required
    string
    Enum: "TCP" "UDP" "ICMP" "ICMP6" "ANY"

    Network protocol matched by the rule

    +
    action
    required
    string
    Enum: "PERMIT" "DENY"

    Action applied when traffic matches the rule

    +
    priority
    integer

    Rule priority used to order evaluation

    +
    sourcePrefix
    required
    string

    Source CIDR prefix matched by the rule

    +
    destinationPrefix
    required
    string

    Destination CIDR prefix matched by the rule

    +
    object (Labels) <= 10 properties

    User-defined key-value labels for the Network Security Group

    +
    property name*
    additional property
    string

    Responses

    Response Schema: application/json
    id
    string
    name
    string [ 2 .. 256 ] characters
    description
    string or null
    siteId
    string <uuid>
    tenantId
    string <uuid>
    status
    string (NetworkSecurityGroupStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status values for Network Security Group objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    statefulEgress
    boolean
    Array of objects (NetworkSecurityGroupRule)
    Array
    name
    string or null
    direction
    required
    string
    Enum: "INGRESS" "EGRESS"
    sourcePortRange
    string or null
    destinationPortRange
    string or null
    protocol
    required
    string
    Enum: "TCP" "UDP" "ICMP" "ANY"
    action
    required
    string
    Enum: "PERMIT" "DENY"
    priority
    integer
    sourcePrefix
    required
    string
    destinationPrefix
    required
    string
    object (Labels) <= 10 properties
    property name*
    additional property
    string
    created
    string <date-time>
    updated
    string <date-time>

    Retrieve all IP Blocks

    Retrieve all IP blocks for the org.

    -

    User must have authorization role with PROVIDER_ADMIN or TENANT_ADMIN suffix. infrastructureProviderId or tenantId query param may be required for older API versions.

    +

    User must have authorization role with PROVIDER_ADMIN or TENANT_ADMIN suffix. infrastructureProviderId or tenantId query parameter may be required for older API versions.

    Authorizations:
    JWTBearerToken
    path Parameters
    org
    required
    string

    Name of the Org

    query Parameters
    infrastructureProviderId
    string <uuid>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Filter IP Blocks by Status

    includeUsageStats
    boolean

    Include IP Block usage stats in response

    -
    query
    string

    Search for matches across all Sites. Input will be matched against name, description and status fields

    +
    query
    string

    Search for matches across all IP Blocks. Input will be matched against name, description, and status fields

    includeRelation
    string
    Enum: "InfrastructureProvider" "Tenant" "Site"

    Related entity to expand

    pageNumber
    integer >= 1
    Default: 1
    Example: pageNumber=1
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    OK

    Response Headers
    X-Pagination
    string
    Example: "{\"pageNumber\":1,\"pageSize\":20,\"total\":30,\"orderBy\": \"CREATED_DESC\"}"

    Pagination result in JSON format

    -
    Response Schema: application/json
    Array
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    description
    string or null
    siteId
    string <uuid>
    infrastructureProviderId
    string <uuid>
    tenantId
    string or null <uuid>
    routingType
    string
    Enum: "Public" "DatacenterOnly"
    prefix
    string
    Response Schema: application/json
    Array
    id
    string <uuid>

    Unique UUID v4 identifier for the IP Block

    +
    name
    string [ 2 .. 256 ] characters

    Name of the IP Block

    +
    description
    string or null

    Description of the IP Block

    +
    siteId
    string <uuid>

    ID of the Site

    +
    infrastructureProviderId
    string <uuid>

    ID of the Infrastructure Provider

    +
    tenantId
    string or null <uuid>

    ID of the Tenant

    +
    routingType
    string
    Enum: "Public" "DatacenterOnly"

    RoutingType of the IP Block

    +
    prefix
    string

    Either IPv4 or IPv6 address

    prefixLength
    integer

    Min: 1, Max: 32 for ipv4, 128 for ipv6

    -
    protocolVersion
    string
    Enum: "IPv4" "IPv6"
    object (IpBlockUsageStats)

    Usage statistics for an IP Block, VPC Prefix or Subnet

    +
    protocolVersion
    string
    Enum: "IPv4" "IPv6"

    Version of the ip network IPv4 or IPv6

    +
    object (IpBlockUsageStats)

    Usage summary from IPAM for the IP Block

    availableIPs
    integer <int64>

    Total number of IP addresses in the block (acquired and unused)

    acquiredIPs
    integer <int64>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Total number of /30 prefixes that can still be acquired from this block (only reduced if prefixes are acquired, not reduced by acquired IPs)

    acquiredPrefixes
    integer <int64>

    Total number of prefixes (of any size) acquired from this block

    -
    status
    string (IpBlockStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status values for IP Block objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    Array of objects (Deprecation)
    Array
    attribute
    string or null

    Name of the attribute that is deprecated. Omitted if queryParam or endpoint is being deprecated.

    -
    queryParam
    string or null

    Query parameter that is deprecated. Omitted if attribute or endpoint is being deprecated.

    -
    endpoint
    string or null

    API endpoint that is deprecated. Omitted if attribute or queryParam is being deprecated.

    -
    replacedBy
    string or null

    Name of the attribute, query parameter, or endpoint that replaces the deprecated item. Omitted if no replacement is available.

    -
    takeActionBy
    string <date-time>

    ISO datetime string for when the deprecated field will no longer be accepted or available in the API

    -
    notice
    string

    Message describing the deprecation

    -
    created
    string <date-time>
    updated
    string <date-time>
    status
    string (IpBlockStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status of the IP Block

    +
    Array of objects (StatusDetail)

    Chronological status history for the IP Block

    +
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the Ip Block was created

    +
    updated
    string <date-time>

    Date/time when the Ip Block was last updated

    +

    Responses

    Response Schema: application/json
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    description
    string or null
    siteId
    string <uuid>
    infrastructureProviderId
    string <uuid>
    tenantId
    string or null <uuid>
    routingType
    string
    Enum: "Public" "DatacenterOnly"
    prefix
    string
    Response Schema: application/json
    id
    string <uuid>

    Unique UUID v4 identifier for the IP Block

    +
    name
    string [ 2 .. 256 ] characters

    Name of the IP Block

    +
    description
    string or null

    Description of the IP Block

    +
    siteId
    string <uuid>

    ID of the Site

    +
    infrastructureProviderId
    string <uuid>

    ID of the Infrastructure Provider

    +
    tenantId
    string or null <uuid>

    ID of the Tenant

    +
    routingType
    string
    Enum: "Public" "DatacenterOnly"

    RoutingType of the IP Block

    +
    prefix
    string

    Either IPv4 or IPv6 address

    prefixLength
    integer

    Min: 1, Max: 32 for ipv4, 128 for ipv6

    -
    protocolVersion
    string
    Enum: "IPv4" "IPv6"
    object (IpBlockUsageStats)

    Usage statistics for an IP Block, VPC Prefix or Subnet

    +
    protocolVersion
    string
    Enum: "IPv4" "IPv6"

    Version of the ip network IPv4 or IPv6

    +
    object (IpBlockUsageStats)

    Usage summary from IPAM for the IP Block

    availableIPs
    integer <int64>

    Total number of IP addresses in the block (acquired and unused)

    acquiredIPs
    integer <int64>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Total number of /30 prefixes that can still be acquired from this block (only reduced if prefixes are acquired, not reduced by acquired IPs)

    acquiredPrefixes
    integer <int64>

    Total number of prefixes (of any size) acquired from this block

    -
    status
    string (IpBlockStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status values for IP Block objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    Array of objects (Deprecation)
    Array
    attribute
    string or null

    Name of the attribute that is deprecated. Omitted if queryParam or endpoint is being deprecated.

    -
    queryParam
    string or null

    Query parameter that is deprecated. Omitted if attribute or endpoint is being deprecated.

    -
    endpoint
    string or null

    API endpoint that is deprecated. Omitted if attribute or queryParam is being deprecated.

    -
    replacedBy
    string or null

    Name of the attribute, query parameter, or endpoint that replaces the deprecated item. Omitted if no replacement is available.

    -
    takeActionBy
    string <date-time>

    ISO datetime string for when the deprecated field will no longer be accepted or available in the API

    -
    notice
    string

    Message describing the deprecation

    -
    created
    string <date-time>
    updated
    string <date-time>
    status
    string (IpBlockStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status of the IP Block

    +
    Array of objects (StatusDetail)

    Chronological status history for the IP Block

    +
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the Ip Block was created

    +
    updated
    string <date-time>

    Date/time when the Ip Block was last updated

    +

    Response samples

    Content type
    application/json
    {
    • "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",
    • "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",
    • "infrastructureProviderId": "e94bcfda-f6cb-42e4-80ec-516811e5abbf",
    • "tenantId": null,
    • "routingType": "Public",
    • "prefix": "192.168.20.0",
    • "prefixLength": 24,
    • "protocolVersion": "IPv4",
    • "usageStats": {
      },
    • "status": "Pending",
    • "statusHistory": [
      ],
    • "created": "2019-08-24T14:15:22Z",
    • "updated": "2019-08-24T14:15:22Z"
    }

    Delete IP Block

    Delete an IP block

    -

    Org must have an Infrastructure Provider entity. User must have authorization role with PROVIDER_ADMIN suffix. 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 authorization role with PROVIDER_ADMIN suffix. Only root IP Blocks can be deleted if there are no allocations associated with them.

    Tenant IP Blocks are managed via Allocation.

    Authorizations:
    JWTBearerToken
    path Parameters
    org
    required
    string

    Name of the Org

    @@ -9500,14 +12172,34 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Name of the Org

    ipBlockId
    required
    string

    ID of the IP Block

    -
    Request Body schema: application/json
    name
    string or null [ 2 .. 256 ] characters
    description
    string or null

    Responses

    Response Schema: application/json
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    description
    string or null
    siteId
    string <uuid>
    infrastructureProviderId
    string <uuid>
    tenantId
    string or null <uuid>
    routingType
    string
    Enum: "Public" "DatacenterOnly"
    prefix
    string
    Response Schema: application/json
    id
    string <uuid>

    Unique UUID v4 identifier for the IP Block

    +
    name
    string [ 2 .. 256 ] characters

    Name of the IP Block

    +
    description
    string or null

    Description of the IP Block

    +
    siteId
    string <uuid>

    ID of the Site

    +
    infrastructureProviderId
    string <uuid>

    ID of the Infrastructure Provider

    +
    tenantId
    string or null <uuid>

    ID of the Tenant

    +
    routingType
    string
    Enum: "Public" "DatacenterOnly"

    RoutingType of the IP Block

    +
    prefix
    string

    Either IPv4 or IPv6 address

    prefixLength
    integer

    Min: 1, Max: 32 for ipv4, 128 for ipv6

    -
    protocolVersion
    string
    Enum: "IPv4" "IPv6"
    object (IpBlockUsageStats)

    Usage statistics for an IP Block, VPC Prefix or Subnet

    +
    protocolVersion
    string
    Enum: "IPv4" "IPv6"

    Version of the ip network IPv4 or IPv6

    +
    object (IpBlockUsageStats)

    Usage summary from IPAM for the IP Block

    availableIPs
    integer <int64>

    Total number of IP addresses in the block (acquired and unused)

    acquiredIPs
    integer <int64>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Total number of /30 prefixes that can still be acquired from this block (only reduced if prefixes are acquired, not reduced by acquired IPs)

    acquiredPrefixes
    integer <int64>

    Total number of prefixes (of any size) acquired from this block

    -
    status
    string (IpBlockStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status values for IP Block objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    Array of objects (Deprecation)
    Array
    attribute
    string or null

    Name of the attribute that is deprecated. Omitted if queryParam or endpoint is being deprecated.

    -
    queryParam
    string or null

    Query parameter that is deprecated. Omitted if attribute or endpoint is being deprecated.

    -
    endpoint
    string or null

    API endpoint that is deprecated. Omitted if attribute or queryParam is being deprecated.

    -
    replacedBy
    string or null

    Name of the attribute, query parameter, or endpoint that replaces the deprecated item. Omitted if no replacement is available.

    -
    takeActionBy
    string <date-time>

    ISO datetime string for when the deprecated field will no longer be accepted or available in the API

    -
    notice
    string

    Message describing the deprecation

    -
    created
    string <date-time>
    updated
    string <date-time>
    status
    string (IpBlockStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status of the IP Block

    +
    Array of objects (StatusDetail)

    Chronological status history for the IP Block

    +
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the Ip Block was created

    +
    updated
    string <date-time>

    Date/time when the Ip Block was last updated

    +
    query Parameters
    status
    string

    Filter IP Blocks by Status

    -
    query
    string

    Search for matches across all Sites. Input will be matched against name, description and status fields

    +
    query
    string

    Search for matches across all derived IP Blocks. Input will be matched against name, description, and status fields

    includeRelation
    string
    Enum: "InfrastructureProvider" "Tenant" "Site"

    Related entity to expand

    pageNumber
    integer >= 1
    Default: 1
    Example: pageNumber=1
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    OK

    Response Headers
    X-Pagination
    string
    Example: "{\"pageNumber\":1,\"pageSize\":20,\"total\":30,\"orderBy\": \"CREATED_DESC\"}"

    Pagination result in JSON format

    -
    Response Schema: application/json
    Array
    id
    string <uuid>
    name
    string [ 2 .. 256 ] characters
    description
    string or null
    siteId
    string <uuid>
    infrastructureProviderId
    string <uuid>
    tenantId
    string or null <uuid>
    routingType
    string
    Enum: "Public" "DatacenterOnly"
    prefix
    string
    Response Schema: application/json
    Array
    id
    string <uuid>

    Unique UUID v4 identifier for the IP Block

    +
    name
    string [ 2 .. 256 ] characters

    Name of the IP Block

    +
    description
    string or null

    Description of the IP Block

    +
    siteId
    string <uuid>

    ID of the Site

    +
    infrastructureProviderId
    string <uuid>

    ID of the Infrastructure Provider

    +
    tenantId
    string or null <uuid>

    ID of the Tenant

    +
    routingType
    string
    Enum: "Public" "DatacenterOnly"

    RoutingType of the IP Block

    +
    prefix
    string

    Either IPv4 or IPv6 address

    prefixLength
    integer

    Min: 1, Max: 32 for ipv4, 128 for ipv6

    -
    protocolVersion
    string
    Enum: "IPv4" "IPv6"
    object (IpBlockUsageStats)

    Usage statistics for an IP Block, VPC Prefix or Subnet

    +
    protocolVersion
    string
    Enum: "IPv4" "IPv6"

    Version of the ip network IPv4 or IPv6

    +
    object (IpBlockUsageStats)

    Usage summary from IPAM for the IP Block

    availableIPs
    integer <int64>

    Total number of IP addresses in the block (acquired and unused)

    acquiredIPs
    integer <int64>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Total number of /30 prefixes that can still be acquired from this block (only reduced if prefixes are acquired, not reduced by acquired IPs)

    acquiredPrefixes
    integer <int64>

    Total number of prefixes (of any size) acquired from this block

    -
    status
    string (IpBlockStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status values for IP Block objects

    -
    Array of objects (StatusDetail)
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    Array of objects (Deprecation)
    Array
    attribute
    string or null

    Name of the attribute that is deprecated. Omitted if queryParam or endpoint is being deprecated.

    -
    queryParam
    string or null

    Query parameter that is deprecated. Omitted if attribute or endpoint is being deprecated.

    -
    endpoint
    string or null

    API endpoint that is deprecated. Omitted if attribute or queryParam is being deprecated.

    -
    replacedBy
    string or null

    Name of the attribute, query parameter, or endpoint that replaces the deprecated item. Omitted if no replacement is available.

    -
    takeActionBy
    string <date-time>

    ISO datetime string for when the deprecated field will no longer be accepted or available in the API

    -
    notice
    string

    Message describing the deprecation

    -
    created
    string <date-time>
    updated
    string <date-time>
    status
    string (IpBlockStatus)
    Enum: "Pending" "Provisioning" "Ready" "Deleting" "Error"

    Status of the IP Block

    +
    Array of objects (StatusDetail)

    Chronological status history for the IP Block

    +
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the Ip Block was created

    +
    updated
    string <date-time>

    Date/time when the Ip Block was last updated

    +
    status
    string
    Enum: "Pending" "Ready" "Error" "Deleting"

    Status filter for the DPU Extension Services

    -
    query
    string

    Search for matches across all Sites. Input will be matched against name, description and status

    +
    query
    string

    Search for matches across all DPU Extension Services. Input will be matched against name, description, and status fields

    includeRelation
    string
    Enum: "Site" "Tenant"

    Related entity to expand

    pageNumber
    integer >= 1
    Default: 1
    Example: pageNumber=1
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Status of the DPU Extension Service

    Array of objects (StatusDetail)

    History of the DPU Extension Service statuses

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the DPU Extension Service was created

    updated
    string <date-time>

    Date/time when the DPU Extension Service was last updated

    @@ -9692,10 +12412,10 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Observability configurations to apply to the service version

    Array (<= 20 items)
    One of
    name
    string or null

    Optional name of the service or component being monitored

    -
    required
    object (DpuExtensionServiceObservabilityPrometheus)

    Prometheus scrape configuration for a DPU Extension Service version

    -
    object (DpuExtensionServiceObservabilityLogging)

    Logging configuration for a DPU Extension Service version

    +
    required
    object (DpuExtensionServiceObservabilityPrometheus)

    Prometheus scrape configuration

    +
    object (DpuExtensionServiceObservabilityLogging)

    Logging configuration

    Responses

    Response Schema: application/json
    id
    string <uuid>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Status of the DPU Extension Service

    Array of objects (StatusDetail)

    History of the DPU Extension Service statuses

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the DPU Extension Service was created

    updated
    string <date-time>

    Date/time when the DPU Extension Service was last updated

    @@ -9786,7 +12514,15 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Status of the DPU Extension Service

    Array of objects (StatusDetail)

    History of the DPU Extension Service statuses

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the DPU Extension Service was created

    updated
    string <date-time>

    Date/time when the DPU Extension Service was last updated

    @@ -9840,10 +12576,10 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Observability configurations to apply to the service version

    Array (<= 20 items)
    One of
    name
    string or null

    Optional name of the service or component being monitored

    -
    required
    object (DpuExtensionServiceObservabilityPrometheus)

    Prometheus scrape configuration for a DPU Extension Service version

    -
    object (DpuExtensionServiceObservabilityLogging)

    Logging configuration for a DPU Extension Service version

    +
    required
    object (DpuExtensionServiceObservabilityPrometheus)

    Prometheus scrape configuration

    +
    object (DpuExtensionServiceObservabilityLogging)

    Logging configuration

    Responses

    Response Schema: application/json
    id
    string <uuid>
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Status of the DPU Extension Service

    Array of objects (StatusDetail)

    History of the DPU Extension Service statuses

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the DPU Extension Service was created

    updated
    string <date-time>

    Date/time when the DPU Extension Service was last updated

    @@ -9918,10 +12662,10 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Observability configurations to apply to the service version

    Array (<= 20 items)
    One of
    name
    string or null

    Optional name of the service or component being monitored

    -
    required
    object (DpuExtensionServiceObservabilityPrometheus)

    Prometheus scrape configuration for a DPU Extension Service version

    -
    object (DpuExtensionServiceObservabilityLogging)

    Logging configuration for a DPU Extension Service version

    +
    required
    object (DpuExtensionServiceObservabilityPrometheus)

    Prometheus scrape configuration

    +
    object (DpuExtensionServiceObservabilityLogging)

    Logging configuration

    status
    string
    Enum: "Syncing" "Synced" "Error" "Deleting"

    Status filter for the SSH Key Groups

    -
    query
    string

    Search for matches across all Sites. Input will be matched against name field

    +
    query
    string

    Search for matches across all SSH Key Groups. Input will be matched against the name field

    includeRelation
    string
    Value: "Tenant"

    Related entity to expand

    pageNumber
    integer >= 1
    Default: 1
    Example: pageNumber=1
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    SSH Keys associated with this SSH Key Group

    Array
    id
    string <uuid>

    Unique identifier for the key

    -
    name
    string
    org
    string
    tenantId
    string <uuid>
    fingerprint
    string
    name
    string

    Name of the SSHKey

    +
    org
    string

    Organization the SSHKey belongs to

    +
    tenantId
    string <uuid>

    ID of the Tenant

    +
    fingerprint
    string

    SHA256 fingerprint of the public key

    created
    string <date-time>

    Date/time when the SSH key was created

    @@ -9994,17 +12744,29 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Date/time when the SSH key was last updated

    Array of objects (SshKeyGroupSiteAssociation)

    Sites the SSH Key Group is synced to

    -
    Array
    object (SiteSummary)

    SiteSummary contains a subset of data for Site object, used when nesting in other objects

    -
    status
    string (SshKeyGroupSiteAssociationStatus)
    Enum: "Syncing" "Synced" "Pending" "Error" "Deleting"

    Status values for SSH Key Group Site Association objects

    +
    Array
    object (SiteSummary)

    Summary of the Site

    +
    status
    string (SshKeyGroupSiteAssociationStatus)
    Enum: "Syncing" "Synced" "Pending" "Error" "Deleting"

    Status of the SSHKeyGroupSiteAssociation

    version
    string or null

    Version of the Key Group on Site

    -
    created
    string <date-time>
    updated
    string <date-time>
    status
    string (SshKeyGroupStatus)
    Enum: "Syncing" "Synced" "Error" "Deleting"
    created
    string <date-time>

    Date/time when the Site was created

    +
    updated
    string <date-time>

    Date/time when the Site was last updated

    +
    status
    string (SshKeyGroupStatus)
    Enum: "Syncing" "Synced" "Error" "Deleting"

    Status of the SSH Key Group

    Array of objects (StatusDetail)

    History of the SSH Key Group states

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the SSH key was created

    updated
    string <date-time>

    Date/time when the SSH key was last updated

    @@ -10018,7 +12780,15 @@

    Typical API Call Flow for Tenant

    Org must have a Tenant entity. User must have authorization role with TENANT_ADMIN suffix.

    Authorizations:
    JWTBearerToken
    path Parameters
    org
    required
    string

    Name of the Org

    -
    Request Body schema: application/json
    name
    required
    string
    description
    string or null
    siteIds
    Array of strings <uuid> [ items <uuid > ]
    sshKeyIds
    Array of strings <uuid> [ items <uuid > ]

    Responses

    Response Schema: application/json
    id
    string <uuid>

    Unique identifier for the SSH Key Group

    @@ -10036,7 +12806,13 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    SSH Keys associated with this SSH Key Group

    Array
    id
    string <uuid>

    Unique identifier for the key

    -
    name
    string
    org
    string
    tenantId
    string <uuid>
    fingerprint
    string
    name
    string

    Name of the SSHKey

    +
    org
    string

    Organization the SSHKey belongs to

    +
    tenantId
    string <uuid>

    ID of the Tenant

    +
    fingerprint
    string

    SHA256 fingerprint of the public key

    created
    string <date-time>

    Date/time when the SSH key was created

    @@ -10044,17 +12820,29 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Date/time when the SSH key was last updated

    Array of objects (SshKeyGroupSiteAssociation)

    Sites the SSH Key Group is synced to

    -
    Array
    object (SiteSummary)

    SiteSummary contains a subset of data for Site object, used when nesting in other objects

    -
    status
    string (SshKeyGroupSiteAssociationStatus)
    Enum: "Syncing" "Synced" "Pending" "Error" "Deleting"

    Status values for SSH Key Group Site Association objects

    +
    Array
    object (SiteSummary)

    Summary of the Site

    +
    status
    string (SshKeyGroupSiteAssociationStatus)
    Enum: "Syncing" "Synced" "Pending" "Error" "Deleting"

    Status of the SSHKeyGroupSiteAssociation

    version
    string or null

    Version of the Key Group on Site

    -
    created
    string <date-time>
    updated
    string <date-time>
    status
    string (SshKeyGroupStatus)
    Enum: "Syncing" "Synced" "Error" "Deleting"
    created
    string <date-time>

    Date/time when the Site was created

    +
    updated
    string <date-time>

    Date/time when the Site was last updated

    +
    status
    string (SshKeyGroupStatus)
    Enum: "Syncing" "Synced" "Error" "Deleting"

    Status of the SSH Key Group

    Array of objects (StatusDetail)

    History of the SSH Key Group states

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the SSH key was created

    updated
    string <date-time>

    Date/time when the SSH key was last updated

    @@ -10090,7 +12878,13 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    SSH Keys associated with this SSH Key Group

    Array
    id
    string <uuid>

    Unique identifier for the key

    -
    name
    string
    org
    string
    tenantId
    string <uuid>
    fingerprint
    string
    name
    string

    Name of the SSHKey

    +
    org
    string

    Organization the SSHKey belongs to

    +
    tenantId
    string <uuid>

    ID of the Tenant

    +
    fingerprint
    string

    SHA256 fingerprint of the public key

    created
    string <date-time>

    Date/time when the SSH key was created

    @@ -10098,17 +12892,29 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Date/time when the SSH key was last updated

    Array of objects (SshKeyGroupSiteAssociation)

    Sites the SSH Key Group is synced to

    -
    Array
    object (SiteSummary)

    SiteSummary contains a subset of data for Site object, used when nesting in other objects

    -
    status
    string (SshKeyGroupSiteAssociationStatus)
    Enum: "Syncing" "Synced" "Pending" "Error" "Deleting"

    Status values for SSH Key Group Site Association objects

    +
    Array
    object (SiteSummary)

    Summary of the Site

    +
    status
    string (SshKeyGroupSiteAssociationStatus)
    Enum: "Syncing" "Synced" "Pending" "Error" "Deleting"

    Status of the SSHKeyGroupSiteAssociation

    version
    string or null

    Version of the Key Group on Site

    -
    created
    string <date-time>
    updated
    string <date-time>
    status
    string (SshKeyGroupStatus)
    Enum: "Syncing" "Synced" "Error" "Deleting"
    created
    string <date-time>

    Date/time when the Site was created

    +
    updated
    string <date-time>

    Date/time when the Site was last updated

    +
    status
    string (SshKeyGroupStatus)
    Enum: "Syncing" "Synced" "Error" "Deleting"

    Status of the SSH Key Group

    Array of objects (StatusDetail)

    History of the SSH Key Group states

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the SSH key was created

    updated
    string <date-time>

    Date/time when the SSH key was last updated

    @@ -10142,7 +12948,11 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Name of the Org

    sshKeyGroupId
    required
    string

    ID of the SSH Key Group

    -
    Request Body schema: application/json
    name
    string or null
    description
    string or null
    siteIds
    Array of strings <uuid> [ items <uuid > ]
    Request Body schema: application/json
    name
    string or null

    Name of the SSHKeyGroup

    +
    description
    string or null

    Description of the SSHKeyGroup

    +
    siteIds
    Array of strings <uuid> [ items <uuid > ]

    When specified, replaces existing Site associations

    sshKeyIds
    Array of strings <uuid> [ items <uuid > ]

    When specified, replaces existing SSH Key associations

    @@ -10166,7 +12976,13 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    SSH Keys associated with this SSH Key Group

    Array
    id
    string <uuid>

    Unique identifier for the key

    -
    name
    string
    org
    string
    tenantId
    string <uuid>
    fingerprint
    string
    name
    string

    Name of the SSHKey

    +
    org
    string

    Organization the SSHKey belongs to

    +
    tenantId
    string <uuid>

    ID of the Tenant

    +
    fingerprint
    string

    SHA256 fingerprint of the public key

    created
    string <date-time>

    Date/time when the SSH key was created

    @@ -10174,17 +12990,29 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Date/time when the SSH key was last updated

    Array of objects (SshKeyGroupSiteAssociation)

    Sites the SSH Key Group is synced to

    -
    Array
    object (SiteSummary)

    SiteSummary contains a subset of data for Site object, used when nesting in other objects

    -
    status
    string (SshKeyGroupSiteAssociationStatus)
    Enum: "Syncing" "Synced" "Pending" "Error" "Deleting"

    Status values for SSH Key Group Site Association objects

    +
    Array
    object (SiteSummary)

    Summary of the Site

    +
    status
    string (SshKeyGroupSiteAssociationStatus)
    Enum: "Syncing" "Synced" "Pending" "Error" "Deleting"

    Status of the SSHKeyGroupSiteAssociation

    version
    string or null

    Version of the Key Group on Site

    -
    created
    string <date-time>
    updated
    string <date-time>
    status
    string (SshKeyGroupStatus)
    Enum: "Syncing" "Synced" "Error" "Deleting"
    created
    string <date-time>

    Date/time when the Site was created

    +
    updated
    string <date-time>

    Date/time when the Site was last updated

    +
    status
    string (SshKeyGroupStatus)
    Enum: "Syncing" "Synced" "Error" "Deleting"

    Status of the SSH Key Group

    Array of objects (StatusDetail)

    History of the SSH Key Group states

    -
    Array
    status
    string
    message
    string or null
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>
    Array
    status
    string

    State of the associated entity at a particular time

    +
    message
    string or null

    Description of the state and cause/remedy in case of error

    +
    created
    string <date-time>

    Date/time when the associated entity assumed the status

    +
    updated
    string <date-time>

    Date/time when the associated entity was last observed with this status

    +
    created
    string <date-time>

    Date/time when the SSH key was created

    updated
    string <date-time>

    Date/time when the SSH key was last updated

    @@ -10204,8 +13032,8 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Name of the Org

    query Parameters
    sshKeyGroupId
    string

    ID of the SSH Key Group

    -
    query
    string

    Search for matches across all Sites. Input will be matched against name field

    +
    query
    string

    Search for matches across all SSH Keys. Input will be matched against the name field

    includeRelation
    string
    Value: "Tenant"

    Related entity to expand

    pageNumber
    integer >= 1
    Default: 1
    Example: pageNumber=1
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Ordering for pagination query

    Responses

    Response Schema: application/json
    Array
    id
    string <uuid>

    Unique identifier for the key

    -
    name
    string
    org
    string
    tenantId
    string <uuid>
    fingerprint
    string
    name
    string

    Name of the SSHKey

    +
    org
    string

    Organization the SSHKey belongs to

    +
    tenantId
    string <uuid>

    ID of the Tenant

    +
    fingerprint
    string

    SHA256 fingerprint of the public key

    created
    string <date-time>

    Date/time when the SSH key was created

    @@ -10242,7 +13076,13 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    Created

    Response Schema: application/json
    id
    string <uuid>

    Unique identifier for the key

    -
    name
    string
    org
    string
    tenantId
    string <uuid>
    fingerprint
    string
    name
    string

    Name of the SSHKey

    +
    org
    string

    Organization the SSHKey belongs to

    +
    tenantId
    string <uuid>

    ID of the Tenant

    +
    fingerprint
    string

    SHA256 fingerprint of the public key

    created
    string <date-time>

    Date/time when the SSH key was created

    @@ -10266,7 +13106,13 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    ID of the SSH Key

    Responses

    Response Schema: application/json
    id
    string <uuid>

    Unique identifier for the key

    -
    name
    string
    org
    string
    tenantId
    string <uuid>
    fingerprint
    string
    name
    string

    Name of the SSHKey

    +
    org
    string

    Organization the SSHKey belongs to

    +
    tenantId
    string <uuid>

    ID of the Tenant

    +
    fingerprint
    string

    SHA256 fingerprint of the public key

    created
    string <date-time>

    Date/time when the SSH key was created

    @@ -10304,11 +13150,19 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Name of the Org

    sshKeyId
    required
    string

    ID of the SSH Key

    -
    Request Body schema: application/json
    name
    string or null

    Responses

    Response Schema: application/json
    id
    string <uuid>

    Unique identifier for the key

    -
    name
    string
    org
    string
    tenantId
    string <uuid>
    fingerprint
    string
    name
    string

    Name of the SSHKey

    +
    org
    string

    Organization the SSHKey belongs to

    +
    tenantId
    string <uuid>

    ID of the Tenant

    +
    fingerprint
    string

    SHA256 fingerprint of the public key

    created
    string <date-time>

    Date/time when the SSH key was created

    @@ -10330,9 +13184,17 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    User Found

    Response Schema: application/json
    id
    string <uuid>

    Unique identifier for the given user.

    -
    email
    string or null <email>
    firstName
    string or null
    lastName
    string or null
    created
    string <date-time>
    email
    string or null <email>

    Email used by the user to register with NGC

    +
    firstName
    string or null

    First name of the user

    +
    lastName
    string or null

    Surname of the user

    +
    created
    string <date-time>

    The date that the user was created.

    -
    updated
    string <date-time>
    updated
    string <date-time>

    Date/time when the user was last updated in NICo

    +
    id
    string <uuid>

    Unique identifier for the given user.

    -
    email
    string or null <email>
    firstName
    string or null
    lastName
    string or null
    created
    string <date-time>
    email
    string or null <email>

    Email used by the user to register with NGC

    +
    firstName
    string or null

    First name of the user

    +
    lastName
    string or null

    Surname of the user

    +
    created
    string <date-time>

    The date that the user was created.

    -
    updated
    string <date-time>
    orgName
    string
    updated
    string <date-time>

    Date/time when the user was last updated in NICo

    +
    orgName
    string

    Organization name

    extraData
    object

    Extra data in JSON format

    @@ -10424,9 +13294,17 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    User that executed the API call

    id
    string <uuid>

    Unique identifier for the given user.

    -
    email
    string or null <email>
    firstName
    string or null
    lastName
    string or null
    created
    string <date-time>
    email
    string or null <email>

    Email used by the user to register with NGC

    +
    firstName
    string or null

    First name of the user

    +
    lastName
    string or null

    Surname of the user

    +
    created
    string <date-time>

    The date that the user was created.

    -
    updated
    string <date-time>
    orgName
    string
    updated
    string <date-time>

    Date/time when the user was last updated in NICo

    +
    orgName
    string

    Organization name

    extraData
    object

    Extra data in JSON format

    @@ -10440,8 +13318,8 @@

    Typical API Call Flow for Tenant

    " class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp">

    Error response when user is not authorized to call an endpoint or retrieve/modify objects

    Response samples

    Content type
    application/json
    {
    • "id": "e313b3ca-c47a-4ec1-a79b-a147fad51a50",
    • "endpoint": "/v2/org/test-org-1/nico/ep",
    • "queryParams": "{\"test\":[\"1234\"]}",
    • "method": "POST",
    • "body": "{\"key1\":\"value1\"}",
    • "statusCode": 200,
    • "clientIP": "12.123.43.112",
    • "userID": "5d9fe319-14d4-40e3-8e5a-7d79e680d55b",
    • "user": {
      },
    • "orgName": "test-org-1",
    • "timestamp": "2024-12-04T21:06:33.849293-08:00",
    • "durationMs": 250,
    • "apiVersion": "0.1.91"
    }

    Metadata

    Metadata describes various system level attributes of the API service.

    +
    https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/audit/{auditEntryId}

    Response samples

    Content type
    application/json
    {
    • "id": "e313b3ca-c47a-4ec1-a79b-a147fad51a50",
    • "endpoint": "/v2/org/test-org-1/nico/ep",
    • "queryParams": "{\"test\":[\"1234\"]}",
    • "method": "POST",
    • "body": "{\"key1\":\"value1\"}",
    • "statusCode": 200,
    • "clientIP": "12.123.43.112",
    • "userID": "5d9fe319-14d4-40e3-8e5a-7d79e680d55b",
    • "user": {
      },
    • "orgName": "test-org-1",
    • "timestamp": "2024-12-04T21:06:33.849293-08:00",
    • "durationMs": 250,
    • "apiVersion": "0.1.91"
    }

    Metadata

    Metadata describes various system-level attributes of the API service.

    Retrieve metadata about the API server

    Retrieve system metadata providing information about the API server

    Authorizations:
    JWTBearerToken
    path Parameters
    org
    required
    string
    Typical API Call Flow for Tenant keypair and arm a JWKS overlap window.

    Responses

    Response Schema: application/json
    org
    string
    enabled
    boolean
    issuer
    string
    defaultAudience
    string
    allowedAudiences
    Array of strings
    Response Schema: application/json
    org
    string

    Organization that owns the Tenant identity configuration

    +
    enabled
    boolean

    Whether Tenant identity token delegation is enabled

    +
    issuer
    string

    Issuer URL for Tenant identity tokens

    +
    defaultAudience
    string

    Default audience used for Tenant identity tokens

    +
    allowedAudiences
    Array of strings
    Typical API Call Flow for Tenant PUT supplied an empty list, the Core gRPC API substituted [defaultAudience] before persisting. Issuance rejects audiences outside this list.

    -
    tokenTtlSeconds
    integer
    subjectPrefix
    string
    tokenTtlSeconds
    integer

    Lifetime of issued Tenant identity tokens, in seconds

    +
    subjectPrefix
    string
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Set on the inactive (previous) key during the JWKS overlap window; the Core gRPC API deletes the inactive slot once now >= expireAt. Null on the current signer.

    -
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>

    Date/time when the Tenant identity configuration was created

    +
    updated
    string <date-time>

    Date/time when the Tenant identity configuration was last updated

    +
    Response Schema: application/json
    org
    string
    enabled
    boolean
    issuer
    string
    defaultAudience
    string
    allowedAudiences
    Array of strings
    Response Schema: application/json
    org
    string

    Organization that owns the Tenant identity configuration

    +
    enabled
    boolean

    Whether Tenant identity token delegation is enabled

    +
    issuer
    string

    Issuer URL for Tenant identity tokens

    +
    defaultAudience
    string

    Default audience used for Tenant identity tokens

    +
    allowedAudiences
    Array of strings
    Typical API Call Flow for Tenant PUT supplied an empty list, the Core gRPC API substituted [defaultAudience] before persisting. Issuance rejects audiences outside this list.

    -
    tokenTtlSeconds
    integer
    subjectPrefix
    string
    tokenTtlSeconds
    integer

    Lifetime of issued Tenant identity tokens, in seconds

    +
    subjectPrefix
    string
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Set on the inactive (previous) key during the JWKS overlap window; the Core gRPC API deletes the inactive slot once now >= expireAt. Null on the current signer.

    -
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>

    Date/time when the Tenant identity configuration was created

    +
    updated
    string <date-time>

    Date/time when the Tenant identity configuration was last updated

    +

    Responses

    Response Schema: application/json
    org
    string
    enabled
    boolean
    issuer
    string
    defaultAudience
    string
    allowedAudiences
    Array of strings
    Response Schema: application/json
    org
    string

    Organization that owns the Tenant identity configuration

    +
    enabled
    boolean

    Whether Tenant identity token delegation is enabled

    +
    issuer
    string

    Issuer URL for Tenant identity tokens

    +
    defaultAudience
    string

    Default audience used for Tenant identity tokens

    +
    allowedAudiences
    Array of strings
    Typical API Call Flow for Tenant PUT supplied an empty list, the Core gRPC API substituted [defaultAudience] before persisting. Issuance rejects audiences outside this list.

    -
    tokenTtlSeconds
    integer
    subjectPrefix
    string
    tokenTtlSeconds
    integer

    Lifetime of issued Tenant identity tokens, in seconds

    +
    subjectPrefix
    string
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Set on the inactive (previous) key during the JWKS overlap window; the Core gRPC API deletes the inactive slot once now >= expireAt. Null on the current signer.

    -
    created
    string <date-time>
    updated
    string <date-time>
    created
    string <date-time>

    Date/time when the Tenant identity configuration was created

    +
    updated
    string <date-time>

    Date/time when the Tenant identity configuration was last updated

    +
    object (TenantIdentityBasicClientSecretRequest)

    Raw OAuth2 client_secret_basic credentials. clientSecret is accepted on input but never returned in responses.

    -
    clientId
    required
    string
    clientSecret
    required
    string
    object (TenantIdentityBasicClientSecretRequest)

    Client-secret basic authentication settings for token delegation

    +
    clientId
    required
    string

    Client identifier used for basic client-secret authentication

    +
    clientSecret
    required
    string
    Typical API Call Flow for Tenant " class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg">

    Audience value placed on the intermediate JWT-SVID posted to the exchange endpoint.

    Responses

    Response Schema: application/json
    tokenEndpoint
    string <uri>
    object (TenantIdentityBasicClientSecretResponse)

    Public half of client_secret_basic credentials. Only the SHA-256 hash of the secret is returned.

    -
    clientId
    string
    clientSecretHash
    string
    Response Schema: application/json
    tokenEndpoint
    string <uri>

    Token endpoint used to exchange delegated Tenant identity tokens

    +
    object (TenantIdentityBasicClientSecretResponse)

    Client-secret basic authentication settings for token delegation

    +
    clientId
    string

    Client identifier used for basic client-secret authentication

    +
    clientSecretHash
    string

    SHA-256 hash of the raw secret.

    -
    subjectTokenAudience
    string
    created
    string <date-time>
    updated
    string <date-time>
    subjectTokenAudience
    string

    Audience value expected on the subject token

    +
    created
    string <date-time>

    Date/time when the token delegation configuration was created

    +
    updated
    string <date-time>

    Date/time when the token delegation configuration was last updated

    +
    Response Schema: application/json
    tokenEndpoint
    string <uri>
    object (TenantIdentityBasicClientSecretResponse)

    Public half of client_secret_basic credentials. Only the SHA-256 hash of the secret is returned.

    -
    clientId
    string
    clientSecretHash
    string
    Response Schema: application/json
    tokenEndpoint
    string <uri>

    Token endpoint used to exchange delegated Tenant identity tokens

    +
    object (TenantIdentityBasicClientSecretResponse)

    Client-secret basic authentication settings for token delegation

    +
    clientId
    string

    Client identifier used for basic client-secret authentication

    +
    clientSecretHash
    string

    SHA-256 hash of the raw secret.

    -
    subjectTokenAudience
    string
    created
    string <date-time>
    updated
    string <date-time>
    subjectTokenAudience
    string

    Audience value expected on the subject token

    +
    created
    string <date-time>

    Date/time when the token delegation configuration was created

    +
    updated
    string <date-time>

    Date/time when the token delegation configuration was last updated

    +

    Responses

    Response Schema: application/json
    tokenEndpoint
    string <uri>
    object (TenantIdentityBasicClientSecretResponse)

    Public half of client_secret_basic credentials. Only the SHA-256 hash of the secret is returned.

    -
    clientId
    string
    clientSecretHash
    string
    Response Schema: application/json
    tokenEndpoint
    string <uri>

    Token endpoint used to exchange delegated Tenant identity tokens

    +
    object (TenantIdentityBasicClientSecretResponse)

    Client-secret basic authentication settings for token delegation

    +
    clientId
    string

    Client identifier used for basic client-secret authentication

    +
    clientSecretHash
    string

    SHA-256 hash of the raw secret.

    -
    subjectTokenAudience
    string
    created
    string <date-time>
    updated
    string <date-time>
    subjectTokenAudience
    string

    Audience value expected on the subject token

    +
    created
    string <date-time>

    Date/time when the token delegation configuration was created

    +
    updated
    string <date-time>

    Date/time when the token delegation configuration was last updated

    +

    Responses

    Response Schema: application/json
    issuer
    string
    jwks_uri
    string <uri>
    response_types_supported
    Array of strings
    subject_types_supported
    Array of strings
    id_token_signing_alg_values_supported
    Array of strings
    spiffe_jwks_uri
    string <uri>