3.1.5 Message Processing Events and Sequencing Rules

The following resources are required to create and maintain a proper network configuration between the Network Controller (NC) and its clients. A policy or policies is a synonym for network configuration settings such as IP or MAC addresses.

Resources are processed one at a time. However, the GET method can act on all the resources at once when the resourceId is omitted. The following table lists all the resources.

Resource

Section

Description

accessControlLists

3.1.5.1

Contains a list of access control list (ACL) rules that can be assigned to subnets or individual NICs and IP addresses.

aclRules

3.1.5.1.2

Describes the network traffic that is allowed or denied for a network interface of a virtual machine.

auditingSettings

3.1.5.20

Contains configuration related to auditing network traffic on hosts.

backendAddressPools

3.1.5.5.2

This resource represents the list of IPs that can receive network traffic that comes via the front-end IPs. The Load Balancing multiplexer (MUX) handles incoming traffic via the front-end IPs and distributes them to backend IPs based on load balancing configuration.

bgpPeers

3.1.5.17.2.2

The bgpPeers resource of the bgpRouters resource of the VirtualGateways resource. Configures Border Gateway Protocol (BGP) peers of the VirtualGateways resource.

bgpRouters

3.1.5.17.2

The bgpRouters resource of the VirtualGateways resource. Contains the configuration for the BGP router in the virtual gateway.

credentials

3.1.5.2

Contains the credential information needed to connect to a southbound device, with the appropriate permissions to manage the device, or enabling the Network Controller to connect to and configure a device in the network.

diagnostics/ConnectivityCheck

3.1.5.22.1

This resource initiates a diagnostics Action to check data path connectivity between two endpoints.

diagnostics/ConnectivityCheckResults

3.1.5.22.2

This resource queries the result of a previously initiated diagnostics Action between two endpoints.

diagnostics/NetworkControllerState

3.1.5.22.5

This resource creates a dump of internal server data that can be used for troubleshooting.

diagnostics/SlbState

3.1.5.22.3

This resource initiates a diagnostics Action to collect internal state for the software load Balancer.

diagnostics/SlbStateResults

3.1.5.22.4

This resource queries the result of a previously initiated diagnostics slbState action.

discovery

3.1.5.30

This resource provides versioning information.

frontendIPConfigurations

3.1.5.5.3

This resource represents the front-end IP addresses of the load Balancer.

GatewayPools

3.1.5.3

Contains an array of gateways that provide the infrastructure for VirtualGateways resources for tenant virtual networks.

gateways

3.1.5.4

Provides gateway services to one or more virtualNetworks resources.

iDnsServer

3.1.5.25

Contains the configuration details for the DNS server in the internal DNS (iDNS) service.

inboundNatRules

3.1.5.5.4

This resource is used to configure the load balancer to apply Network Address Translation (NAT) of inbound traffic.

internalResourceInstances

3.1.5.24

This resource provides a means to map instance IDs to resource IDs or to get all the mappings.

ipConfigurations

3.1.5.11.2

This resource represents configuration information for IP addresses: allocation method, actual IP address, membership of a logical or virtual subnet, load balancing and access control information.

ipPools

3.1.5.8.2.2

The ipPools resource represents the range from which IP addresses will be allocated for nodes within a subnet. The start and end IP addresses of the pool for a virtual subnet are based on the IP prefix of the virtual subnet.

loadBalancerManager

3.1.5.6

The loadBalancerManager resource is a singleton resource that configures the load balancing service of the Network Controller.

loadBalancerMuxes

3.1.5.7

The loadBalancerMuxes resource represents a MUX VM deployed in the Network Controller's stamp.

loadBalancers

3.1.5.5

Consists of a frontend and a backend configuration. The frontend configuration exposes the IP address of the load Balancer. The backend configuration specifies the distribution of traffic across VM instances and how to determine the health of VM instances or endpoints.

loadBalancingRules

3.1.5.5.5

This resource is used to configure load balancing policies. The policies dictate the kind of traffic that is load-balanced, and port mapping between frontend IPs and backend IPs.

logicalNetworks

3.1.5.8

A collection of logical subnets or a logical partition of physical network that is dedicated for a specific purpose.

subnets

3.1.5.8.2

A subnets resource consists of a subnet/VLAN pair. The vlanId resource is required; however, it MAY contain a value of zero if the subnet is not associated with a vlan.

macPools

3.1.5.9

The macPools resource specifies one or more ranges of MAC addresses, which are used internally by the Network Controller. The MAC addresses are used for both overlay and underlay needs.

multisite

3.1.5.33

The multisite resource is a singleton resource that configures the synchronization of two Network Controller—managed sites.

multisitePrimary

3.1.5.34

The multisitePrimary resource is a singleton resource that represents a mechanism to set a Network Controller—managed site as the primary site in the context of multisite.

monitoring/NetworkControllerStatistics

3.1.5.23

This resource provides a means to get usage and health information for a few resources.

networkConnections

3.1.5.17.4

Specifies a connection from a virtual network to external networks.

networkControllerSite

3.1.5.33.2

The networkControllerSite resource represents configuration information regarding a remote Network Controller—managed site.

networkInterfaces

3.1.5.11

Specifies the configuration of either a host virtual network interface card (host vNIC) or a virtual server NIC (VMNIC).

operationResults

3.1.5.13

Provides the status of a specific asynchronous operation. The URL for a specific operations resource is returned in the Location header of that operation.

operations

3.1.5.12

Provides the status of a specific asynchronous operation. The URL for a specific operations resource is returned in the Azure-AsyncOperation header of that operation.

outboundNatRules

3.1.5.5.6

This resource is used to configure the load Balancer to apply Network Address Translation (NAT) to outbound traffic.

policyMaps

3.1.5.17.3

The policyMaps resource of the VirtualGateways resource. Contains the routing policies that enable the BGP routers in the virtual gateway to exchange information as specified with peers. A routing policy consists of match criteria and actions that are executed when the conditions specified in the match criteria are satisfied.

probes

3.1.5.5.7

Configures the mechanism of detection of connectivity issues with load balanced IPs.

publicIPAddresses

3.1.5.14

Specifies an IP Address that can be used to communicate with the virtual network from outside it. This address is publically available for use by the VirtualGateways resource and the loadBalancers resource.

routes

3.1.5.10.2

Create routes under a tenant's Route Table.

routes

3.1.5.8.2.3

Represents a provider route that the host uses to route traffic to a specific destination. If a host connects to a logical subnet as part of hosting a virtual network, then all routes in that logical subnet are applied to the host.

routeTables

3.1.5.10

Contains a list of tenant routes that can be assigned to virtual subnets to control routing within a virtual network.

securityTags

3.1.5.31

A grouping of network interfaces used to manage and apply firewall policies.

servers

3.1.5.15

Represents a physical server that is being controlled by the Network Controller.

serviceInsertions

3.1.5.16

Specifies the relationship between the service insertion and the service insertion rule.

subnets

3.1.5.18.2

Contains the Virtual Subnet IDs (VSIDs) under a tenant's Virtual Network Routing Domain ID (RDID). User can specify the addressPrefix to use for the subnets, the accessControlLists to protect the subnets, the routeTable to apply to the subnet, and optionally serviceInsertions to use within the subnet.

VirtualGateways

3.1.5.17

A logical entity that runs on multiple gateways in the GatewayPools resource, the VirtualGateways resource describes the gateway used for cross-premises connectivity from the virtual network.

virtualNetworkManager

3.1.5.19

A singleton resource that configures the virtual network service of the Network Controller. The properties in this resource are global for all virtual networks managed by the Network Controller.

virtualNetworkPeerings

3.1.5.18.3

Peers virtual networks so that network traffic can be shared without the need of a gateway resource.

virtualNetworks

3.1.5.18

Creates a Virtual Network using Hyper-V Network Virtualization (HNV) for tenant overlays.

virtualServers

3.1.5.21

A resource that corresponds to a VM. Such resources need to be created for VMs that correspond to gateways (section 3.1.5.4) and loadBalancerMuxes resources (section 3.1.5.7).

virtualSwitchManager

3.1.5.26

Configures the virtual switch properties on every server managed by the Network Controller.

The responses to all the resources can result in the following status codes.

Status Code

Description

200 (OK)

Indicates that the operation was successful. The server MUST return this status code when the operation was performed on an existing REST resource.

201 (Created)

Indicates that the operation was successful. The server MUST return this status code when a new REST resource was created on the server due to execution and completion of the operation.

202 (Accepted)

Indicates that the request has been accepted and is being processed. See Asynchronous Operations, section 1.3.2, to understand how the client handles responses with 202 (Accepted).

204 (No Content)

Indicates that the resource with the specified resourceId could not be found.

404 (Not Found)

Indicates that the resource does not exist.

409 (Conflict)

An operation cannot cancel another operation in progress on the resource, its child, sibling, or parent.

412 (Precondition Failed)

Indicates that the resource's etag doesn't match one specified in the If-Match header.

500 (Internal Server Error)

Indicates that the validation on the resource has failed. See the message body of the response for more details.