2.2.4 Data Structures

The following table summarizes the set of common data structures that are consumed or produced by this protocol. Common structure definitions are included in this section, whereas those that are particular to a specific request/response body are defined within its corresponding sections.

Data structure

Section

Description

accessControlLists

In the networkInterfaces resource, the ipConfigurations resource, section 3.1.5.11.2.

In the virtualNetworks resource, the subnets resource section 3.1.5.18.2.

Contains an accessControlLists resource that defines the access control lists (ACLs) in and out of the IP Configuration.

aclRules

The aclRules resource, section 3.1.5.1.2.

Indicates the rules in an access control list, Indicates the action the ACL Rule will take.

addressPrefixes

The addressSpace resource in the virtualNetworks resource, section 3.1.5.18.

Indicates the valid list of address prefixes that can make up this virtual network.

addressSpace

The virtualNetworks resource, section 3.1.5.18.

Required. Indicates the address space of the virtual network.

backendAddressPools

The outboundNatRules resource, section 3.1.5.5.6.

The loadBalancingRules resource, section 3.1.5.5.5.

Indicates an array of references to a backendAddressPools resource. Inbound traffic is randomly load balanced across IPs in the backend pool.

Indicates a reference to the pool of IP addresses where outbound traffic originates.

backendIPConfigurations

The backendAddressPools resource, section 3.1.5.5.2.

An array of references to ipConfigurations resources. There is no restriction on having the same IP configurations in multiple backendAddressPools.

bgpPeers

In the VirtualGateways resource, in the bgpPeers resource, the bgpRouters resource, section 3.1.5.17.2.2.

A collection of Border Gateway Protocol (BGP) peers associated with the bgpRouters resource.

bgpRouters

The VirtualGateways resource, section 3.1.5.17.

An array of bgpRouters on the physical switch.

connections

The gateways resource, section 3.1.5.4.

A collection of all the connections on the gateway.

connections

The servers resource, section 3.1.5.15.

The loadBalancerMuxes resource, section 3.1.5.7.

The iDnsServers resource, section 3.1.5.25.

The virtualServers resource, section 3.1.5.21.

An array of connections that specify the information needed to connect to the specific device to manage and control it.

destinationSubnets

The rules resource in the serviceInsertions resource, section 3.1.5.16.

An array of subnets to match as the destination subnet.

details

The operations resource, section 3.1.5.12.

The operationResults resource, section 3.1.5.13.

Contains detailed information about the error.

dhcpOptions

The virtualNetworks resource, section 3.1.5.18.

Indicates the DHCP options used by servers in the virtual network.

dnsRecord

The publicIPAddresses resource, section 3.1.5.14.

Properties of a DNS record associated with this public IP address. This field is not supported.

dnsServers

The subnets resource, section 3.1.5.8.2.

In the virtualNetworks resource, the dhcpOptions resource section 3.1.5.18.

An an array of IP Addresses for the DNS servers that this resource uses to resolve DNS queries by devices or hosts.

dnsSettings

The networkInterfaces resource, section 3.1.5.11

Indicates the DNS settings of this network interface.

error

The operations resource, section 3.1.5.12.

The operationResults resource, section 3.1.5.13.

A group of elements that contain information about an error and its cause when the request was in error or could not be processed.

etag

The etag header, section 2.2.1.3.4

The Network Controller returns an etag in the response body as the etag property of the resource.

externalIPAddress

The gateways resource, section 3.1.5.4.

A collection of IP address information.

frontendIPConfigurations

The loadBalancers resource, section 3.1.5.5.

The frontendIPConfigurations resource, section 3.1.5.5.3.

Indicates the front-end IP addresses of the load balancer.

frontendIPConfigurations

The inboundNatRules resource, section 3.1.5.5.4.

The outboundNatRules, section 3.1.5.5.6.

The loadBalancingRules resource, section 3.1.5.5.5.

Indicates an array of references to frontendIPConfigurations resources.

gatewayCapacityKiloBitsPerSecond

The GatewayPools resource, section 3.1.5.3.

Indicates the total capacity of the gateway pool in kilobits per second.

GatewayPools

The VirtualGateways resource, section 3.1.5.17.

The collection of references to GatewayPools resources in which connections can be created. This information is populated at the time of subscription and can be changed only by using the Service administrator portal.

gateways

The GatewayPools resource, section 3.1.5.3.

An array that contains references to the gateways resources in the gateway pool.

gatewaySubnets

The VirtualGateways resource, section 3.1.5.17.

Indicates collection of references to IPv4/IPv6 subnet of the virtual subnet Identifier (VSID)/gateway subnet that contains the specified gateway.

greConfiguration

The networkConnections resource, section 3.1.5.17.4.

Indicates details of Generic Routing Encapsulation (GRE) configuration. GRE is defined in [RFC2784].

IcmpProtocolConfig

The Diagnostics ConnectivityCheck resource, section 3.1.5.22.1.

The Diagnostics ConnectivityCheckResults resource, section 3.1.5.22.2.

Contains the details of an Internet Control Message Protocol (ICMP) Protocol specific configuration, as specified in [RFC792].

iDnsServer

The iDnsServer resource, section 3.1.5.25.

Indicates the configuration details for the DNS server in the internal DNS service.

inboundNatRules

The loadBalancers resource, section 3.1.5.5.

The inboundNatRules resource, section 3.1.5.5.4.

Indicates an array of inbound network address translation (NAT) rules configured for the load balancer.

ipConfiguration

The networkInterfaces resource, section 3.1.5.15.2.

Indicates an array of IP configurations.

ipConfigurations

The accessControlLists resource, section 3.1.5.1.

Indicates references to the IP addresses of networkInterfaces resources that are associated with an accessControlLists resource.

ipConfigurations

The subnets resource in the virtualNetworks resource, section 3.1.5.18.2.

Indicates an array of references of networkInterfaces resources that are connected to the subnet.

ipPools

The ipPools resource, section 3.1.5.8.2.2.

The subnets resource, section 3.1.5.8.2.

Indicates the IP Pools that are contained in the logical subnet.

ipsecConfiguration

The networkConnections resource, section 3.1.5.17.4.

Details of IPsec configuration.

IPv4AddressPrefixes

The vpnConfiguration in the VirtualGateways resource, section 3.1.5.17.

Indicates collection of IPv4 address pools from which virtual private network (VPN) clients are assigned addresses.

l3Configuration

The networkConnections resource, section 3.1.5.17.4.

Indicates details of L3 configuration.

loadBalancerMuxes

The virtualServers resource, section 3.1.5.21.

Indicates the loadBalancer multiplexer (MUX) running on this virtualServer. 

loadBalancers

The loadBalancers resource, section 3.1.5.5.

Contains information about the frontend and backend configurations for load balancing.

loadBalancingRules

The loadBalancers resource, section 3.1.5.5.

Contains a list of load balancing configurations.

loadBalancingRules

The backendAddressPools resource, section 3.1.5.5.2.

The probes resource, section 3.1.5.5.7.

An array of references to loadBalancingRules resources.

localVpnTrafficSelector

The ipsecConfiguration resource in the networkConnections resource, section 3.1.5.17.4

Indicates collection of IPSec TrafficSelectors on the host side.

logicalSubnets

The networkInterfaces resource, section 3.1.5.15.2.

Indicates an array of subnets resource that the network interface is connected to.

mainMode

The ipsecConfiguration resource in the networkConnections resource, section 3.1.5.17.4.

In the networkConnections resource. Main mode IPsec configuration details, as specified in [RFC2409].

ManagementAddresses

The loadBalancerMuxes resource, section 3.1.5.7.

The management address used to connect to the server.

networkConnections

The networkConnections resource, section 3.1.5.17.4.

The VirtualGateways resource, section 3.1.5.17.

Indicates list of network connections that are configured for this VirtualGateways resource.

networkInterfaces

The gateways resource, section 3.1.5.4.

The subnets resource, section 3.1.5.8.2.

An array of references to networkInterfaces resources that are used by a gateway or a logical subnet.

networkInterfaces

In the servers resource, the networkInterfaces resource section 3.1.5.15.2.

An array of references to networkInterfaces resources that represent the physical network interface cards (NICs) of the server. These resources are automatically created.

outboundNatRules

The backendAddressPools resource, section 3.1.5.5.2.

The loadBalancers resource, section 3.1.5.5.

An array of references to the outboundNatRules resources.

output.DataGroups

The Diagnostics slbStateResults resource, section 3.1.5.22.4.

The hierarchical output of this diagnostics operation. Data group as level 1, data section as level 2 and data unit as level 3.

peerIPAddresses

The networkConnections resource, section 3.1.5.17.4.

Array of IP Addresses of the destination (S2S IP).

peerRouterConfigurations

The routerConfiguration structure in the loadBalancerMuxes resource, section 3.1.5.7.

The BGP settings that are used to establish and maintain BGP peering with one or more peers.

peerTrafficSelector

The ipsecConfiguration resource in the networkConnections resource, section 3.1.5.17.4.

Indicates collection of IPSec TrafficSelectors on the enterprise side.

policyMaps

The VirtualGateways resource, section 3.1.5.17.

A collection of policyMaps resources for the VirtualGateways resource.

probes

The probes resource, section 3.1.5.5.7.

The loadBalancers resource, section 3.1.5.5.

Indicates an array of probes configured for the load balancer.

properties

The Properties in Common JSON Elements, section 2.2.2.

An array of structured data. The structure of this data is unique to each resource except two common read-only elements: etag and provisioningState. If properties is not included this will cause the resource to be created but have no properties.

publicIPAddresses

The GatewayPools resource, section 3.1.5.3.

A collection of public IP address to which external connections connect.

portSettings

The networkInterfaces resource, section 3.1.5.11.

Contains a reference to quality of service settings to apply to virtual network interface.

redundantGatewayCount

The GatewayPools resource, section 3.1.5.4.

Indicates the number of redundant gateway VMs that will be used for each VirtualGateways instance to ensure its availability.

remoteVpnTrafficSelector

The ipsecConfiguration resource in the networkConnections resource, section 3.1.5.17.4.

Indicates collection of IPSec TrafficSelectors on the host side.

resourceMetadata

Specified in Common JSON Elements, section 2.2.2.

An array of structured data that client sends to the server.

routerConfiguration

The loadBalancerMuxes resource, section 3.1.5.7.

Provides the BGP router configuration to the MUX to ensure that it peers with the datacenter routing infrastructure and properly advertises routes.

routerIP

The bgpRouters resource in the VirtualGateways resource, section 3.1.5.17.2.

Indicates IP addresses to which BGP peering can be established.

routes

The routeTables resource, section 3.1.5.10.

The routes that are contained in a route table.

routes

The routes resource in the subnets resource, section 3.1.5.8.2.3.

The routes that are contained in the logical subnet.

routes

The networkConnections resource, section 3.1.5.17.4.

All the routes (static and those learned via BGP) on the network Interface. Traffic that matches the routes is transmitted on the network Interface.

rules

The serviceInsertions resource, section 3.1.5.16.

Indicates an array of rules that define what traffic goes through the service insertion.

configurationState

This is a common base data structure that can be present on resources. Currently the following resources contain an instance of this structure.

The gateways resource section 3.1.5.4.

The loadBalancerMuxes resource section 3.1.5.7.

The networkInterfaces resource section 3.1.5.11.

The servers resource section 3.1.5.15.

The VirtualGateways resource section 3.1.5.17.

The bgpRouters resource section 3.1.5.17.2.

The bgpPeers resource section 3.1.5.17.2.2.

The networkConnections resource section 3.1.5.17.4.

The virtualNetworks resource section 3.1.5.18.

Configuration state indicates any failures in processing goal state corresponding to the resource it is contained in. In absence of failures it can note that the configuration corresponding to the resource was successful.

Multiple failures can be noted against the same resource. The overall severity of these failures is reflected in the status field of the configurationState structure.

Information pertaining to each failure is collected in the detailedInfo field. Please see definition of detailedInfo field following.

Running state update time is noted within the running state structure. The LastUpdatedTime stores this information.

configurationState.detailedInfo

The configurationState structures can contain one or more detailedInfo fields to reflect fine-grained success or failure information in processing operations related to the resource which the configuration state field is contained in. Specific values related to each resource are listed in each section.

The detailedInfo has 3 fields:

0. Source: The source field identifies the component within the SDN stack that encountered a failure while processing this resource.
Possible values are:
ResourceGlobal, SoftwareLoadBalancerManager, VirtualNetwork,
VirtualSwitch,
Firewall.

1. Message: A friendly message that describes the encountered error.

2. Code: This field contains somewhat fine-grained classification of the error encountered while processing this resource.

Note  Some codes and Messages correspond to success cases as well.

configurationState.status

Resources where configurationState might be present.

The status MUST be one of the following values: Uninitialized, InProgress, Success, Warning, Failure.

Note configurationState.status contains Uninitialized until the initial configurationState has been calculated.

configurationState.lastUpdatedTime

Resources where configurationState might be present.

A timestamp that is used to order the sequence of events. The representation is implementation-specific.

configurationState.id

Resources where configurationState might be present.

Certain resources use the id field. It is discussed in the section where it is applicable. The id is an instance ID for a resource. See the following sections for definitions of instance IDs. See instanceId specified in Common JSON Elements, section 2.2.2.

configurationState

The loadBalancers resource section 3.1.5.5.

The frontendIPConfigurations resource section 3.1.5.5.3.

The publicIPAddresses resource section 3.1.5.14.

A LoadBalancerVipConfigurationState structure that represents the running state of a VIP endpoint. This structure extends the base configurationState and adds a LoadBalancerVipEndPointConfigurationState type array that is a list of VipEndpointStates. See frontendIPConfigurations section 3.1.5.5.3 for more details.

configurationState

The multisite resource, section 3.1.5.33.

A NetworkControllerSiteConfigurationState structure that represents the resource synchronization running state. This structure extends the base configurationState and adds the following properties:

- failedResources: Contains set of failed resources during peering.

- conflictingResources: Contains set of conflicting resources during peering.

securityTags

The networkInterfaces resource, section 3.1.5.11.

An array of securityTag resources that are associated with a networkInterfaces resource.

serviceInsertionElements

The networkInterfaces resource, section 3.1.5.11.

Indicates an array of serviceInsertions resources that contains this networkInterfaces resource.

serviceInsertionElements

The serviceInsertions resource, section 3.1.5.16.

Indicates an array of service insertion elements through which to send packets that match the rules.

sites

The multisite resource, section 3.1.5.33.

An array of references to networkControllerSite resources. Each reference contains configuration information used to peer with another site.

sourceSubnets

The rules resource in the serviceInsertions resource, section 3.1.5.16.

Indicates an array of subnets to match as source subnet. For a single source IP address match specify as a /32 subnet.

statistics

The networkConnections resource, section 3.1.5.17.4.

The bgpPeers resource in the bgpRouters resource in the VirtualGateways resource, section 3.1.5.17.2.2.

Statistics of the connection.

subnets

The accessControlLists resource, section 3.1.5.1.

An array of references to subnets resources that are associated with the access control list.

subnets

The logicalNetworks resource, section 3.1.5.8.

The virtualNetworks resource, section 3.1.5.18.

Indicates the subnets that are on the virtual network or are contained in the logical network.

subnets

The serviceInsertions resource, section 3.1.5.16.

Indicates an array of references to subnets resources this serviceInsertions resource is associated with.

subnets

The routeTables resource, section 3.1.5.10.

Indicates an array of references to subnets resources this routeTables configuration is associated with.

tags

Most resources.

Key-value pairs of arbitrary data that the client stores with the resource.

usage

The ipPools resource, section 3.1.5.8.2.2.

The macPools resource, section 3.1.5.9.

Indicates the usage statistics of the IP pool or the MAC address pool.

vipIpPools

The loadBalancerManager resource, section 3.1.5.6.

An array of references to ipPools resources to use for the frontend IP Addresses.

VirtualGateways

The gateways resource, section 3.1.5.4.

The GatewayPools resource, section 3.1.5.3.

A collection of virtual gateways for a tenant. This enumerates the tenants that are dependent on this gateway.

virtualNetworks

The logicalNetworks resource, section 3.1.5.8.

An array of virtualNetworks resources that are using the network.

virtualNetworkPeerings

The virtualNetworks resource, section 3.1.5.18, virtualNetworkPeerings section 3.1.5.18.3.

Array of virtualNetworkPeerings resources that describe peering relationships.

virtualServers

The virtualServer resource.

Indicates an array of virtual servers that are on the server and being managed by the Network Controller.

vlanIds

In the servers resource, section 3.1.5.15. under the networkInterfaces resource, section 3.1.5.15.2.

Indicates the ID of the VLANs to which the network interface of a server is connected.

vpnConfiguration

The VirtualGateways resource, section 3.1.5.17.

Indicates details of remote access for VPN client configuration.