354 строки
9.4 KiB
YAML
354 строки
9.4 KiB
YAML
|
---
|
||
|
openapi: "3.0.0"
|
||
|
info:
|
||
|
version: 0.1.0
|
||
|
title: Container Networking Service (CNS)
|
||
|
paths:
|
||
|
/network/nmagentsupportedapis:
|
||
|
post:
|
||
|
description: |
|
||
|
Returns the supported API names from NMAgent
|
||
|
requestBody:
|
||
|
required: true
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/NMAgentSupportedAPIsRequest'
|
||
|
responses:
|
||
|
'200':
|
||
|
description: The list of supported API names
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/NMAgentSupportedApisResponse'
|
||
|
|
||
|
/network/deletenetworkcontainer:
|
||
|
post:
|
||
|
summary: Removes the Network Container from CNS's purview
|
||
|
requestBody:
|
||
|
required: true
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: "#/components/schemas/DeleteContainerRequest"
|
||
|
responses:
|
||
|
'200':
|
||
|
description: >-
|
||
|
The delete request was processed. This does not indicate the request
|
||
|
was successful.
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/DeleteContainerResponse'
|
||
|
|
||
|
/network/setorchestratortype:
|
||
|
post:
|
||
|
description: >-
|
||
|
Sets the orchestrator type for a given node
|
||
|
requestBody:
|
||
|
required: true
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: "#components/schemas/SetOrchestratorTypeRequest"
|
||
|
responses:
|
||
|
'200':
|
||
|
description: The request was submitted. This does not indicate success.
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/Response'
|
||
|
|
||
|
/network/createorupdatenetworkcontainer:
|
||
|
post:
|
||
|
requestBody:
|
||
|
required: true
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: "#components/schemas/CreateNetworkContainerRequest"
|
||
|
responses:
|
||
|
'200':
|
||
|
description: >-
|
||
|
The request was submitted. This does not indicate success. You
|
||
|
must check the value of the return code in the response body.
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: "#/components/schemas/Response"
|
||
|
/network/publishnetworkcontainer:
|
||
|
post:
|
||
|
summary: Publish NetworkContainer via NMAgent
|
||
|
description: >-
|
||
|
Publishes the provided network container via the NMAgent running on the
|
||
|
node CNS is running on. CNS acts as a proxy for this request.
|
||
|
requestBody:
|
||
|
required: true
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: "#/components/schemas/PublishNetworkContainerRequest"
|
||
|
responses:
|
||
|
'200':
|
||
|
description: >-
|
||
|
The request was submitted. Check the return code for success or
|
||
|
failure information.
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: "#/components/schemas/PublishNetworkContainerResponse"
|
||
|
|
||
|
/network/unpublishnetworkcontainer:
|
||
|
post:
|
||
|
summary: Unpublish Network Container via NMAgent
|
||
|
description: >-
|
||
|
Unpublishes the network container through the NMAgent running on the CNS
|
||
|
node. CNS acts as a proxy to NMAgent.
|
||
|
requestBody:
|
||
|
required: true
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: "#/components/schemas/UnpublishNetworkContainerRequest"
|
||
|
responses:
|
||
|
'200':
|
||
|
description: >-
|
||
|
The request was submitted. Check the response code for more
|
||
|
information on success or failure.
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: "#/components/schemas/UnpublishNetworkContainerResponse"
|
||
|
|
||
|
components:
|
||
|
schemas:
|
||
|
UnpublishNetworkContainerResponse:
|
||
|
type: object
|
||
|
properties:
|
||
|
Response:
|
||
|
$ref: "#/components/schemas/Response"
|
||
|
UnpublishErrorStr:
|
||
|
type: string
|
||
|
UnpublishStatusCode:
|
||
|
type: string
|
||
|
UnpublishResponseBody:
|
||
|
type: string
|
||
|
description: >-
|
||
|
The base64 encoded response body from NMAgent
|
||
|
|
||
|
PublishNetworkContainerResponse:
|
||
|
type: object
|
||
|
properties:
|
||
|
Response:
|
||
|
$ref: "#/components/schemas/Response"
|
||
|
PublishErrStr:
|
||
|
type: string
|
||
|
PublishStatusCode:
|
||
|
type: string
|
||
|
PublishResponseBody:
|
||
|
type: string
|
||
|
description: >-
|
||
|
The base64 encoded response body from NMAgent
|
||
|
|
||
|
UnpublishNetworkContainerRequest:
|
||
|
type: object
|
||
|
properties:
|
||
|
NetworkID:
|
||
|
type: string
|
||
|
NetworkContainerID:
|
||
|
type: string
|
||
|
JoinNetworkURL:
|
||
|
type: string
|
||
|
DeleteNetworkContainerURL:
|
||
|
type: string
|
||
|
|
||
|
PublishNetworkContainerRequest:
|
||
|
type: object
|
||
|
properties:
|
||
|
NetworkID:
|
||
|
type: string
|
||
|
NetworkContainerID:
|
||
|
type: string
|
||
|
JoinNetworkURL:
|
||
|
type: string
|
||
|
CreateNetworkContainerURL:
|
||
|
type: string
|
||
|
CreateNetworkContainerRequestBody:
|
||
|
type: string
|
||
|
description: >-
|
||
|
The base64 encoded value of the create network container request
|
||
|
body
|
||
|
CreateNetworkContainerRequest:
|
||
|
type: object
|
||
|
properties:
|
||
|
Version:
|
||
|
type: string
|
||
|
NetworkContainerType:
|
||
|
type: string
|
||
|
NetworkContainerid:
|
||
|
type: string
|
||
|
PrimaryInterfaceIdentifier:
|
||
|
type: string
|
||
|
AuthorizationToken:
|
||
|
type: string
|
||
|
LocalIPConfiguration:
|
||
|
$ref: "#/components/schemas/IPConfiguration"
|
||
|
OrchestratorContext:
|
||
|
type: object
|
||
|
IPConfiguration:
|
||
|
$ref: "#/components/schemas/IPConfiguration"
|
||
|
SecondaryIPConfigs:
|
||
|
type: object
|
||
|
additionalProperties:
|
||
|
$ref: "#/components/schemas/SecondaryIPConfig"
|
||
|
MultiTenancyInfo:
|
||
|
type: object
|
||
|
properties:
|
||
|
EncapType:
|
||
|
type: string
|
||
|
description: >-
|
||
|
The encapsulation type for multitenancy.
|
||
|
ID:
|
||
|
type: integer
|
||
|
description: >-
|
||
|
The identifier associated with the encapsulation type specified.
|
||
|
For VLAN, this would be the VLAN ID. For VXLAN, the VXLAN id,
|
||
|
for GRE, the gre-key, etc.
|
||
|
CnetAddressSpace:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: "#/components/schemas/IPSubnet"
|
||
|
Routes:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: "#/components/schemas/Route"
|
||
|
AllowHostToNCCommunication:
|
||
|
type: boolean
|
||
|
AllowNCToHostCommunication:
|
||
|
type: boolean
|
||
|
EndpointPolicies:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: "#/components/schemas/NetworkContainerRequestPolicy"
|
||
|
|
||
|
NetworkContainerRequestPolicy:
|
||
|
type: object
|
||
|
description: >-
|
||
|
Specifies policies associated with a request to create a network
|
||
|
container.
|
||
|
properties:
|
||
|
Type:
|
||
|
type: string
|
||
|
EndpointType:
|
||
|
type: string
|
||
|
Settings:
|
||
|
type: object
|
||
|
|
||
|
Route:
|
||
|
type: object
|
||
|
properties:
|
||
|
IPAddress:
|
||
|
type: string
|
||
|
GatewayIPAddress:
|
||
|
type: string
|
||
|
InterfaceToUse:
|
||
|
type: string
|
||
|
|
||
|
SecondaryIPConfig:
|
||
|
type: object
|
||
|
properties:
|
||
|
IPAddress:
|
||
|
type: string
|
||
|
NCVersion:
|
||
|
type: integer
|
||
|
|
||
|
IPSubnet:
|
||
|
type: object
|
||
|
properties:
|
||
|
IPAddress:
|
||
|
type: string
|
||
|
PrefixLength:
|
||
|
type: integer
|
||
|
minimum: 0
|
||
|
maximum: 255
|
||
|
IPConfiguration:
|
||
|
type: object
|
||
|
properties:
|
||
|
IPSubnet:
|
||
|
$ref: "#/components/schemas/IPSubnet"
|
||
|
DNSServers:
|
||
|
type: array
|
||
|
items:
|
||
|
type: string
|
||
|
GatewayIPAddress:
|
||
|
type: string
|
||
|
SetOrchestratorTypeRequest:
|
||
|
type: object
|
||
|
required:
|
||
|
- OrchestratorType
|
||
|
- NodeID
|
||
|
properties:
|
||
|
OrchestratorType:
|
||
|
type: string
|
||
|
enum:
|
||
|
- "Kubernetes"
|
||
|
- "ServiceFabric"
|
||
|
- "Batch"
|
||
|
- "DBforPostgreSQL"
|
||
|
- "AzureFirstParty"
|
||
|
- "KubernetesCRD"
|
||
|
DncPartitionKey:
|
||
|
type: string
|
||
|
NodeID:
|
||
|
type: string
|
||
|
|
||
|
NMAgentSupportedAPIsRequest:
|
||
|
type: object
|
||
|
required:
|
||
|
- GetNmAgentSupportedApisURL
|
||
|
properties:
|
||
|
GetNmAgentSupportedApisURL:
|
||
|
type: string
|
||
|
|
||
|
DeleteContainerRequest:
|
||
|
type: object
|
||
|
required:
|
||
|
- NetworkContainerid
|
||
|
properties:
|
||
|
NetworkContainerid:
|
||
|
type: string
|
||
|
|
||
|
NMAgentSupportedApisResponse:
|
||
|
type: object
|
||
|
required:
|
||
|
- Response
|
||
|
- SupportedApis
|
||
|
properties:
|
||
|
Response:
|
||
|
$ref: "#/components/schemas/Response"
|
||
|
SupportedApis:
|
||
|
type: array
|
||
|
items:
|
||
|
type: string
|
||
|
|
||
|
DeleteContainerResponse:
|
||
|
type: object
|
||
|
required:
|
||
|
- Response
|
||
|
properties:
|
||
|
Response:
|
||
|
$ref: "#/components/schemas/Response"
|
||
|
|
||
|
Response:
|
||
|
type: object
|
||
|
required:
|
||
|
- ReturnCode
|
||
|
- Message
|
||
|
properties:
|
||
|
ReturnCode:
|
||
|
type: integer
|
||
|
description: The CNS Error Code
|
||
|
Message:
|
||
|
type: string
|
||
|
description: The error message
|