text: "use strict";
  /*
   * Code generated by Microsoft (R) AutoRest Code Generator.
   * Changes may cause incorrect behavior and will be lost if the code is
   * regenerated.
   */
  var __assign = (this && this.__assign) || Object.assign || function(t) {
      for (var s, i = 1, n = arguments.length; i < n; i++) {
          s = arguments[i];
          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
              t[p] = s[p];
      }
      return t;
  };
  Object.defineProperty(exports, "__esModule", { value: true });
  var ms_rest_azure_js_1 = require("ms-rest-azure-js");
  exports.CloudError = ms_rest_azure_js_1.CloudErrorMapper;
  exports.BaseResource = ms_rest_azure_js_1.BaseResourceMapper;
  exports.DnsNameAvailabilityResult = {
      serializedName: "DnsNameAvailabilityResult",
      type: {
          name: "Composite",
          className: "DnsNameAvailabilityResult",
          modelProperties: {
              available: {
                  serializedName: "available",
                  type: {
                      name: "Boolean"
                  }
              }
          }
      }
  };
  exports.LoadBalancerSku = {
      serializedName: "LoadBalancerSku",
      type: {
          name: "Composite",
          className: "LoadBalancerSku",
          modelProperties: {
              name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.SubResource = {
      serializedName: "SubResource",
      type: {
          name: "Composite",
          className: "SubResource",
          modelProperties: {
              id: {
                  serializedName: "id",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.Resource = {
      serializedName: "Resource",
      type: {
          name: "Composite",
          className: "Resource",
          modelProperties: {
              id: {
                  serializedName: "id",
                  type: {
                      name: "String"
                  }
              },
              name: {
                  readOnly: true,
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              },
              type: {
                  readOnly: true,
                  serializedName: "type",
                  type: {
                      name: "String"
                  }
              },
              location: {
                  serializedName: "location",
                  type: {
                      name: "String"
                  }
              },
              tags: {
                  serializedName: "tags",
                  type: {
                      name: "Dictionary",
                      value: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.ApplicationSecurityGroup = {
      serializedName: "ApplicationSecurityGroup",
      type: {
          name: "Composite",
          className: "ApplicationSecurityGroup",
          modelProperties: __assign({}, exports.Resource.type.modelProperties, { resourceGuid: {
                  readOnly: true,
                  serializedName: "properties.resourceGuid",
                  type: {
                      name: "String"
                  }
              }, provisioningState: {
                  readOnly: true,
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  readOnly: true,
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.SecurityRule = {
      serializedName: "SecurityRule",
      type: {
          name: "Composite",
          className: "SecurityRule",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { description: {
                  serializedName: "properties.description",
                  type: {
                      name: "String"
                  }
              }, protocol: {
                  required: true,
                  serializedName: "properties.protocol",
                  type: {
                      name: "String"
                  }
              }, sourcePortRange: {
                  serializedName: "properties.sourcePortRange",
                  type: {
                      name: "String"
                  }
              }, destinationPortRange: {
                  serializedName: "properties.destinationPortRange",
                  type: {
                      name: "String"
                  }
              }, sourceAddressPrefix: {
                  serializedName: "properties.sourceAddressPrefix",
                  type: {
                      name: "String"
                  }
              }, sourceAddressPrefixes: {
                  serializedName: "properties.sourceAddressPrefixes",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              }, sourceApplicationSecurityGroups: {
                  serializedName: "properties.sourceApplicationSecurityGroups",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "ApplicationSecurityGroupElementType",
                          type: {
                              name: "Composite",
                              className: "ApplicationSecurityGroup"
                          }
                      }
                  }
              }, destinationAddressPrefix: {
                  serializedName: "properties.destinationAddressPrefix",
                  type: {
                      name: "String"
                  }
              }, destinationAddressPrefixes: {
                  serializedName: "properties.destinationAddressPrefixes",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              }, destinationApplicationSecurityGroups: {
                  serializedName: "properties.destinationApplicationSecurityGroups",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "ApplicationSecurityGroupElementType",
                          type: {
                              name: "Composite",
                              className: "ApplicationSecurityGroup"
                          }
                      }
                  }
              }, sourcePortRanges: {
                  serializedName: "properties.sourcePortRanges",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              }, destinationPortRanges: {
                  serializedName: "properties.destinationPortRanges",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              }, access: {
                  required: true,
                  serializedName: "properties.access",
                  type: {
                      name: "String"
                  }
              }, priority: {
                  serializedName: "properties.priority",
                  type: {
                      name: "Number"
                  }
              }, direction: {
                  required: true,
                  serializedName: "properties.direction",
                  type: {
                      name: "String"
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.ApplicationGatewayBackendAddress = {
      serializedName: "ApplicationGatewayBackendAddress",
      type: {
          name: "Composite",
          className: "ApplicationGatewayBackendAddress",
          modelProperties: {
              fqdn: {
                  serializedName: "fqdn",
                  type: {
                      name: "String"
                  }
              },
              ipAddress: {
                  serializedName: "ipAddress",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.ApplicationGatewayBackendAddressPool = {
      serializedName: "ApplicationGatewayBackendAddressPool",
      type: {
          name: "Composite",
          className: "ApplicationGatewayBackendAddressPool",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { backendIPConfigurations: {
                  serializedName: "properties.backendIPConfigurations",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "NetworkInterfaceIPConfigurationElementType",
                          type: {
                              name: "Composite",
                              className: "NetworkInterfaceIPConfiguration"
                          }
                      }
                  }
              }, backendAddresses: {
                  serializedName: "properties.backendAddresses",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "ApplicationGatewayBackendAddressElementType",
                          type: {
                              name: "Composite",
                              className: "ApplicationGatewayBackendAddress"
                          }
                      }
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              }, type: {
                  serializedName: "type",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.BackendAddressPool = {
      serializedName: "BackendAddressPool",
      type: {
          name: "Composite",
          className: "BackendAddressPool",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { backendIPConfigurations: {
                  readOnly: true,
                  serializedName: "properties.backendIPConfigurations",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "NetworkInterfaceIPConfigurationElementType",
                          type: {
                              name: "Composite",
                              className: "NetworkInterfaceIPConfiguration"
                          }
                      }
                  }
              }, loadBalancingRules: {
                  readOnly: true,
                  serializedName: "properties.loadBalancingRules",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "SubResourceElementType",
                          type: {
                              name: "Composite",
                              className: "SubResource"
                          }
                      }
                  }
              }, outboundNatRule: {
                  readOnly: true,
                  serializedName: "properties.outboundNatRule",
                  type: {
                      name: "Composite",
                      className: "SubResource"
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.InboundNatRule = {
      serializedName: "InboundNatRule",
      type: {
          name: "Composite",
          className: "InboundNatRule",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { frontendIPConfiguration: {
                  serializedName: "properties.frontendIPConfiguration",
                  type: {
                      name: "Composite",
                      className: "SubResource"
                  }
              }, backendIPConfiguration: {
                  readOnly: true,
                  serializedName: "properties.backendIPConfiguration",
                  type: {
                      name: "Composite",
                      className: "NetworkInterfaceIPConfiguration"
                  }
              }, protocol: {
                  serializedName: "properties.protocol",
                  type: {
                      name: "String"
                  }
              }, frontendPort: {
                  serializedName: "properties.frontendPort",
                  type: {
                      name: "Number"
                  }
              }, backendPort: {
                  serializedName: "properties.backendPort",
                  type: {
                      name: "Number"
                  }
              }, idleTimeoutInMinutes: {
                  serializedName: "properties.idleTimeoutInMinutes",
                  type: {
                      name: "Number"
                  }
              }, enableFloatingIP: {
                  serializedName: "properties.enableFloatingIP",
                  type: {
                      name: "Boolean"
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.PublicIPAddressSku = {
      serializedName: "PublicIPAddressSku",
      type: {
          name: "Composite",
          className: "PublicIPAddressSku",
          modelProperties: {
              name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.IPConfiguration = {
      serializedName: "IPConfiguration",
      type: {
          name: "Composite",
          className: "IPConfiguration",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { privateIPAddress: {
                  serializedName: "properties.privateIPAddress",
                  type: {
                      name: "String"
                  }
              }, privateIPAllocationMethod: {
                  serializedName: "properties.privateIPAllocationMethod",
                  type: {
                      name: "String"
                  }
              }, subnet: {
                  serializedName: "properties.subnet",
                  type: {
                      name: "Composite",
                      className: "Subnet"
                  }
              }, publicIPAddress: {
                  serializedName: "properties.publicIPAddress",
                  type: {
                      name: "Composite",
                      className: "PublicIPAddress"
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.PublicIPAddressDnsSettings = {
      serializedName: "PublicIPAddressDnsSettings",
      type: {
          name: "Composite",
          className: "PublicIPAddressDnsSettings",
          modelProperties: {
              domainNameLabel: {
                  serializedName: "domainNameLabel",
                  type: {
                      name: "String"
                  }
              },
              fqdn: {
                  serializedName: "fqdn",
                  type: {
                      name: "String"
                  }
              },
              reverseFqdn: {
                  serializedName: "reverseFqdn",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.PublicIPAddress = {
      serializedName: "PublicIPAddress",
      type: {
          name: "Composite",
          className: "PublicIPAddress",
          modelProperties: __assign({}, exports.Resource.type.modelProperties, { sku: {
                  serializedName: "sku",
                  type: {
                      name: "Composite",
                      className: "PublicIPAddressSku"
                  }
              }, publicIPAllocationMethod: {
                  serializedName: "properties.publicIPAllocationMethod",
                  type: {
                      name: "String"
                  }
              }, publicIPAddressVersion: {
                  serializedName: "properties.publicIPAddressVersion",
                  type: {
                      name: "String"
                  }
              }, ipConfiguration: {
                  readOnly: true,
                  serializedName: "properties.ipConfiguration",
                  type: {
                      name: "Composite",
                      className: "IPConfiguration"
                  }
              }, dnsSettings: {
                  serializedName: "properties.dnsSettings",
                  type: {
                      name: "Composite",
                      className: "PublicIPAddressDnsSettings"
                  }
              }, ipAddress: {
                  serializedName: "properties.ipAddress",
                  type: {
                      name: "String"
                  }
              }, idleTimeoutInMinutes: {
                  serializedName: "properties.idleTimeoutInMinutes",
                  type: {
                      name: "Number"
                  }
              }, resourceGuid: {
                  serializedName: "properties.resourceGuid",
                  type: {
                      name: "String"
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              }, zones: {
                  serializedName: "zones",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              } })
      }
  };
  exports.NetworkInterfaceIPConfiguration = {
      serializedName: "NetworkInterfaceIPConfiguration",
      type: {
          name: "Composite",
          className: "NetworkInterfaceIPConfiguration",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { applicationGatewayBackendAddressPools: {
                  serializedName: "properties.applicationGatewayBackendAddressPools",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "ApplicationGatewayBackendAddressPoolElementType",
                          type: {
                              name: "Composite",
                              className: "ApplicationGatewayBackendAddressPool"
                          }
                      }
                  }
              }, loadBalancerBackendAddressPools: {
                  serializedName: "properties.loadBalancerBackendAddressPools",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "BackendAddressPoolElementType",
                          type: {
                              name: "Composite",
                              className: "BackendAddressPool"
                          }
                      }
                  }
              }, loadBalancerInboundNatRules: {
                  serializedName: "properties.loadBalancerInboundNatRules",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "InboundNatRuleElementType",
                          type: {
                              name: "Composite",
                              className: "InboundNatRule"
                          }
                      }
                  }
              }, privateIPAddress: {
                  serializedName: "properties.privateIPAddress",
                  type: {
                      name: "String"
                  }
              }, privateIPAllocationMethod: {
                  serializedName: "properties.privateIPAllocationMethod",
                  type: {
                      name: "String"
                  }
              }, privateIPAddressVersion: {
                  serializedName: "properties.privateIPAddressVersion",
                  type: {
                      name: "String"
                  }
              }, subnet: {
                  serializedName: "properties.subnet",
                  type: {
                      name: "Composite",
                      className: "Subnet"
                  }
              }, primary: {
                  serializedName: "properties.primary",
                  type: {
                      name: "Boolean"
                  }
              }, publicIPAddress: {
                  serializedName: "properties.publicIPAddress",
                  type: {
                      name: "Composite",
                      className: "PublicIPAddress"
                  }
              }, applicationSecurityGroups: {
                  serializedName: "properties.applicationSecurityGroups",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "ApplicationSecurityGroupElementType",
                          type: {
                              name: "Composite",
                              className: "ApplicationSecurityGroup"
                          }
                      }
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.NetworkInterfaceDnsSettings = {
      serializedName: "NetworkInterfaceDnsSettings",
      type: {
          name: "Composite",
          className: "NetworkInterfaceDnsSettings",
          modelProperties: {
              dnsServers: {
                  serializedName: "dnsServers",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              appliedDnsServers: {
                  serializedName: "appliedDnsServers",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              internalDnsNameLabel: {
                  serializedName: "internalDnsNameLabel",
                  type: {
                      name: "String"
                  }
              },
              internalFqdn: {
                  serializedName: "internalFqdn",
                  type: {
                      name: "String"
                  }
              },
              internalDomainNameSuffix: {
                  serializedName: "internalDomainNameSuffix",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.NetworkInterface = {
      serializedName: "NetworkInterface",
      type: {
          name: "Composite",
          className: "NetworkInterface",
          modelProperties: __assign({}, exports.Resource.type.modelProperties, { virtualMachine: {
                  serializedName: "properties.virtualMachine",
                  type: {
                      name: "Composite",
                      className: "SubResource"
                  }
              }, networkSecurityGroup: {
                  serializedName: "properties.networkSecurityGroup",
                  type: {
                      name: "Composite",
                      className: "NetworkSecurityGroup"
                  }
              }, ipConfigurations: {
                  serializedName: "properties.ipConfigurations",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "NetworkInterfaceIPConfigurationElementType",
                          type: {
                              name: "Composite",
                              className: "NetworkInterfaceIPConfiguration"
                          }
                      }
                  }
              }, dnsSettings: {
                  serializedName: "properties.dnsSettings",
                  type: {
                      name: "Composite",
                      className: "NetworkInterfaceDnsSettings"
                  }
              }, macAddress: {
                  serializedName: "properties.macAddress",
                  type: {
                      name: "String"
                  }
              }, primary: {
                  serializedName: "properties.primary",
                  type: {
                      name: "Boolean"
                  }
              }, enableAcceleratedNetworking: {
                  serializedName: "properties.enableAcceleratedNetworking",
                  type: {
                      name: "Boolean"
                  }
              }, enableIPForwarding: {
                  serializedName: "properties.enableIPForwarding",
                  type: {
                      name: "Boolean"
                  }
              }, resourceGuid: {
                  serializedName: "properties.resourceGuid",
                  type: {
                      name: "String"
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.NetworkSecurityGroup = {
      serializedName: "NetworkSecurityGroup",
      type: {
          name: "Composite",
          className: "NetworkSecurityGroup",
          modelProperties: __assign({}, exports.Resource.type.modelProperties, { securityRules: {
                  serializedName: "properties.securityRules",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "SecurityRuleElementType",
                          type: {
                              name: "Composite",
                              className: "SecurityRule"
                          }
                      }
                  }
              }, defaultSecurityRules: {
                  serializedName: "properties.defaultSecurityRules",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "SecurityRuleElementType",
                          type: {
                              name: "Composite",
                              className: "SecurityRule"
                          }
                      }
                  }
              }, networkInterfaces: {
                  readOnly: true,
                  serializedName: "properties.networkInterfaces",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "NetworkInterfaceElementType",
                          type: {
                              name: "Composite",
                              className: "NetworkInterface"
                          }
                      }
                  }
              }, subnets: {
                  readOnly: true,
                  serializedName: "properties.subnets",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "SubnetElementType",
                          type: {
                              name: "Composite",
                              className: "Subnet"
                          }
                      }
                  }
              }, resourceGuid: {
                  serializedName: "properties.resourceGuid",
                  type: {
                      name: "String"
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.Route = {
      serializedName: "Route",
      type: {
          name: "Composite",
          className: "Route",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { addressPrefix: {
                  serializedName: "properties.addressPrefix",
                  type: {
                      name: "String"
                  }
              }, nextHopType: {
                  required: true,
                  serializedName: "properties.nextHopType",
                  type: {
                      name: "String"
                  }
              }, nextHopIpAddress: {
                  serializedName: "properties.nextHopIpAddress",
                  type: {
                      name: "String"
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.RouteTable = {
      serializedName: "RouteTable",
      type: {
          name: "Composite",
          className: "RouteTable",
          modelProperties: __assign({}, exports.Resource.type.modelProperties, { routes: {
                  serializedName: "properties.routes",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "RouteElementType",
                          type: {
                              name: "Composite",
                              className: "Route"
                          }
                      }
                  }
              }, subnets: {
                  readOnly: true,
                  serializedName: "properties.subnets",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "SubnetElementType",
                          type: {
                              name: "Composite",
                              className: "Subnet"
                          }
                      }
                  }
              }, disableBgpRoutePropagation: {
                  serializedName: "properties.disableBgpRoutePropagation",
                  type: {
                      name: "Boolean"
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.ServiceEndpointPropertiesFormat = {
      serializedName: "ServiceEndpointPropertiesFormat",
      type: {
          name: "Composite",
          className: "ServiceEndpointPropertiesFormat",
          modelProperties: {
              service: {
                  serializedName: "service",
                  type: {
                      name: "String"
                  }
              },
              locations: {
                  serializedName: "locations",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              provisioningState: {
                  serializedName: "provisioningState",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.ResourceNavigationLink = {
      serializedName: "ResourceNavigationLink",
      type: {
          name: "Composite",
          className: "ResourceNavigationLink",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { linkedResourceType: {
                  serializedName: "properties.linkedResourceType",
                  type: {
                      name: "String"
                  }
              }, link: {
                  serializedName: "properties.link",
                  type: {
                      name: "String"
                  }
              }, provisioningState: {
                  readOnly: true,
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  readOnly: true,
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.Subnet = {
      serializedName: "Subnet",
      type: {
          name: "Composite",
          className: "Subnet",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { addressPrefix: {
                  serializedName: "properties.addressPrefix",
                  type: {
                      name: "String"
                  }
              }, networkSecurityGroup: {
                  serializedName: "properties.networkSecurityGroup",
                  type: {
                      name: "Composite",
                      className: "NetworkSecurityGroup"
                  }
              }, routeTable: {
                  serializedName: "properties.routeTable",
                  type: {
                      name: "Composite",
                      className: "RouteTable"
                  }
              }, serviceEndpoints: {
                  serializedName: "properties.serviceEndpoints",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "ServiceEndpointPropertiesFormatElementType",
                          type: {
                              name: "Composite",
                              className: "ServiceEndpointPropertiesFormat"
                          }
                      }
                  }
              }, ipConfigurations: {
                  readOnly: true,
                  serializedName: "properties.ipConfigurations",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "IPConfigurationElementType",
                          type: {
                              name: "Composite",
                              className: "IPConfiguration"
                          }
                      }
                  }
              }, resourceNavigationLinks: {
                  serializedName: "properties.resourceNavigationLinks",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "ResourceNavigationLinkElementType",
                          type: {
                              name: "Composite",
                              className: "ResourceNavigationLink"
                          }
                      }
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.FrontendIPConfiguration = {
      serializedName: "FrontendIPConfiguration",
      type: {
          name: "Composite",
          className: "FrontendIPConfiguration",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { inboundNatRules: {
                  readOnly: true,
                  serializedName: "properties.inboundNatRules",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "SubResourceElementType",
                          type: {
                              name: "Composite",
                              className: "SubResource"
                          }
                      }
                  }
              }, inboundNatPools: {
                  readOnly: true,
                  serializedName: "properties.inboundNatPools",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "SubResourceElementType",
                          type: {
                              name: "Composite",
                              className: "SubResource"
                          }
                      }
                  }
              }, outboundNatRules: {
                  readOnly: true,
                  serializedName: "properties.outboundNatRules",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "SubResourceElementType",
                          type: {
                              name: "Composite",
                              className: "SubResource"
                          }
                      }
                  }
              }, loadBalancingRules: {
                  readOnly: true,
                  serializedName: "properties.loadBalancingRules",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "SubResourceElementType",
                          type: {
                              name: "Composite",
                              className: "SubResource"
                          }
                      }
                  }
              }, privateIPAddress: {
                  serializedName: "properties.privateIPAddress",
                  type: {
                      name: "String"
                  }
              }, privateIPAllocationMethod: {
                  serializedName: "properties.privateIPAllocationMethod",
                  type: {
                      name: "String"
                  }
              }, subnet: {
                  serializedName: "properties.subnet",
                  type: {
                      name: "Composite",
                      className: "Subnet"
                  }
              }, publicIPAddress: {
                  serializedName: "properties.publicIPAddress",
                  type: {
                      name: "Composite",
                      className: "PublicIPAddress"
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              }, zones: {
                  serializedName: "zones",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              } })
      }
  };
  exports.LoadBalancingRule = {
      serializedName: "LoadBalancingRule",
      type: {
          name: "Composite",
          className: "LoadBalancingRule",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { frontendIPConfiguration: {
                  serializedName: "properties.frontendIPConfiguration",
                  type: {
                      name: "Composite",
                      className: "SubResource"
                  }
              }, backendAddressPool: {
                  serializedName: "properties.backendAddressPool",
                  type: {
                      name: "Composite",
                      className: "SubResource"
                  }
              }, probe: {
                  serializedName: "properties.probe",
                  type: {
                      name: "Composite",
                      className: "SubResource"
                  }
              }, protocol: {
                  required: true,
                  serializedName: "properties.protocol",
                  type: {
                      name: "String"
                  }
              }, loadDistribution: {
                  serializedName: "properties.loadDistribution",
                  type: {
                      name: "String"
                  }
              }, frontendPort: {
                  required: true,
                  serializedName: "properties.frontendPort",
                  type: {
                      name: "Number"
                  }
              }, backendPort: {
                  serializedName: "properties.backendPort",
                  type: {
                      name: "Number"
                  }
              }, idleTimeoutInMinutes: {
                  serializedName: "properties.idleTimeoutInMinutes",
                  type: {
                      name: "Number"
                  }
              }, enableFloatingIP: {
                  serializedName: "properties.enableFloatingIP",
                  type: {
                      name: "Boolean"
                  }
              }, disableOutboundSnat: {
                  serializedName: "properties.disableOutboundSnat",
                  type: {
                      name: "Boolean"
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.Probe = {
      serializedName: "Probe",
      type: {
          name: "Composite",
          className: "Probe",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { loadBalancingRules: {
                  readOnly: true,
                  serializedName: "properties.loadBalancingRules",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "SubResourceElementType",
                          type: {
                              name: "Composite",
                              className: "SubResource"
                          }
                      }
                  }
              }, protocol: {
                  required: true,
                  serializedName: "properties.protocol",
                  type: {
                      name: "String"
                  }
              }, port: {
                  required: true,
                  serializedName: "properties.port",
                  type: {
                      name: "Number"
                  }
              }, intervalInSeconds: {
                  serializedName: "properties.intervalInSeconds",
                  type: {
                      name: "Number"
                  }
              }, numberOfProbes: {
                  serializedName: "properties.numberOfProbes",
                  type: {
                      name: "Number"
                  }
              }, requestPath: {
                  serializedName: "properties.requestPath",
                  type: {
                      name: "String"
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.InboundNatPool = {
      serializedName: "InboundNatPool",
      type: {
          name: "Composite",
          className: "InboundNatPool",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { frontendIPConfiguration: {
                  serializedName: "properties.frontendIPConfiguration",
                  type: {
                      name: "Composite",
                      className: "SubResource"
                  }
              }, protocol: {
                  required: true,
                  serializedName: "properties.protocol",
                  type: {
                      name: "String"
                  }
              }, frontendPortRangeStart: {
                  required: true,
                  serializedName: "properties.frontendPortRangeStart",
                  type: {
                      name: "Number"
                  }
              }, frontendPortRangeEnd: {
                  required: true,
                  serializedName: "properties.frontendPortRangeEnd",
                  type: {
                      name: "Number"
                  }
              }, backendPort: {
                  required: true,
                  serializedName: "properties.backendPort",
                  type: {
                      name: "Number"
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.OutboundNatRule = {
      serializedName: "OutboundNatRule",
      type: {
          name: "Composite",
          className: "OutboundNatRule",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { allocatedOutboundPorts: {
                  serializedName: "properties.allocatedOutboundPorts",
                  type: {
                      name: "Number"
                  }
              }, frontendIPConfigurations: {
                  serializedName: "properties.frontendIPConfigurations",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "SubResourceElementType",
                          type: {
                              name: "Composite",
                              className: "SubResource"
                          }
                      }
                  }
              }, backendAddressPool: {
                  required: true,
                  serializedName: "properties.backendAddressPool",
                  type: {
                      name: "Composite",
                      className: "SubResource"
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.LoadBalancer = {
      serializedName: "LoadBalancer",
      type: {
          name: "Composite",
          className: "LoadBalancer",
          modelProperties: __assign({}, exports.Resource.type.modelProperties, { sku: {
                  serializedName: "sku",
                  type: {
                      name: "Composite",
                      className: "LoadBalancerSku"
                  }
              }, frontendIPConfigurations: {
                  serializedName: "properties.frontendIPConfigurations",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "FrontendIPConfigurationElementType",
                          type: {
                              name: "Composite",
                              className: "FrontendIPConfiguration"
                          }
                      }
                  }
              }, backendAddressPools: {
                  serializedName: "properties.backendAddressPools",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "BackendAddressPoolElementType",
                          type: {
                              name: "Composite",
                              className: "BackendAddressPool"
                          }
                      }
                  }
              }, loadBalancingRules: {
                  serializedName: "properties.loadBalancingRules",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "LoadBalancingRuleElementType",
                          type: {
                              name: "Composite",
                              className: "LoadBalancingRule"
                          }
                      }
                  }
              }, probes: {
                  serializedName: "properties.probes",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "ProbeElementType",
                          type: {
                              name: "Composite",
                              className: "Probe"
                          }
                      }
                  }
              }, inboundNatRules: {
                  serializedName: "properties.inboundNatRules",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "InboundNatRuleElementType",
                          type: {
                              name: "Composite",
                              className: "InboundNatRule"
                          }
                      }
                  }
              }, inboundNatPools: {
                  serializedName: "properties.inboundNatPools",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "InboundNatPoolElementType",
                          type: {
                              name: "Composite",
                              className: "InboundNatPool"
                          }
                      }
                  }
              }, outboundNatRules: {
                  serializedName: "properties.outboundNatRules",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "OutboundNatRuleElementType",
                          type: {
                              name: "Composite",
                              className: "OutboundNatRule"
                          }
                      }
                  }
              }, resourceGuid: {
                  serializedName: "properties.resourceGuid",
                  type: {
                      name: "String"
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.TagsObject = {
      serializedName: "TagsObject",
      type: {
          name: "Composite",
          className: "TagsObject",
          modelProperties: {
              tags: {
                  serializedName: "tags",
                  type: {
                      name: "Dictionary",
                      value: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.ErrorDetails = {
      serializedName: "ErrorDetails",
      type: {
          name: "Composite",
          className: "ErrorDetails",
          modelProperties: {
              code: {
                  serializedName: "code",
                  type: {
                      name: "String"
                  }
              },
              target: {
                  serializedName: "target",
                  type: {
                      name: "String"
                  }
              },
              message: {
                  serializedName: "message",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.ErrorModel = {
      serializedName: "Error",
      type: {
          name: "Composite",
          className: "ErrorModel",
          modelProperties: {
              code: {
                  serializedName: "code",
                  type: {
                      name: "String"
                  }
              },
              message: {
                  serializedName: "message",
                  type: {
                      name: "String"
                  }
              },
              target: {
                  serializedName: "target",
                  type: {
                      name: "String"
                  }
              },
              details: {
                  serializedName: "details",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "ErrorDetailsElementType",
                          type: {
                              name: "Composite",
                              className: "ErrorDetails"
                          }
                      }
                  }
              },
              innerError: {
                  serializedName: "innerError",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.AzureAsyncOperationResult = {
      serializedName: "AzureAsyncOperationResult",
      type: {
          name: "Composite",
          className: "AzureAsyncOperationResult",
          modelProperties: {
              status: {
                  serializedName: "status",
                  type: {
                      name: "String"
                  }
              },
              error: {
                  serializedName: "error",
                  type: {
                      name: "Composite",
                      className: "ErrorModel"
                  }
              }
          }
      }
  };
  exports.EffectiveNetworkSecurityGroupAssociation = {
      serializedName: "EffectiveNetworkSecurityGroupAssociation",
      type: {
          name: "Composite",
          className: "EffectiveNetworkSecurityGroupAssociation",
          modelProperties: {
              subnet: {
                  serializedName: "subnet",
                  type: {
                      name: "Composite",
                      className: "SubResource"
                  }
              },
              networkInterface: {
                  serializedName: "networkInterface",
                  type: {
                      name: "Composite",
                      className: "SubResource"
                  }
              }
          }
      }
  };
  exports.EffectiveNetworkSecurityRule = {
      serializedName: "EffectiveNetworkSecurityRule",
      type: {
          name: "Composite",
          className: "EffectiveNetworkSecurityRule",
          modelProperties: {
              name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              },
              protocol: {
                  serializedName: "protocol",
                  type: {
                      name: "String"
                  }
              },
              sourcePortRange: {
                  serializedName: "sourcePortRange",
                  type: {
                      name: "String"
                  }
              },
              destinationPortRange: {
                  serializedName: "destinationPortRange",
                  type: {
                      name: "String"
                  }
              },
              sourcePortRanges: {
                  serializedName: "sourcePortRanges",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              destinationPortRanges: {
                  serializedName: "destinationPortRanges",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              sourceAddressPrefix: {
                  serializedName: "sourceAddressPrefix",
                  type: {
                      name: "String"
                  }
              },
              destinationAddressPrefix: {
                  serializedName: "destinationAddressPrefix",
                  type: {
                      name: "String"
                  }
              },
              sourceAddressPrefixes: {
                  serializedName: "sourceAddressPrefixes",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              destinationAddressPrefixes: {
                  serializedName: "destinationAddressPrefixes",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              expandedSourceAddressPrefix: {
                  serializedName: "expandedSourceAddressPrefix",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              expandedDestinationAddressPrefix: {
                  serializedName: "expandedDestinationAddressPrefix",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              access: {
                  serializedName: "access",
                  type: {
                      name: "String"
                  }
              },
              priority: {
                  serializedName: "priority",
                  type: {
                      name: "Number"
                  }
              },
              direction: {
                  serializedName: "direction",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.EffectiveNetworkSecurityGroup = {
      serializedName: "EffectiveNetworkSecurityGroup",
      type: {
          name: "Composite",
          className: "EffectiveNetworkSecurityGroup",
          modelProperties: {
              networkSecurityGroup: {
                  serializedName: "networkSecurityGroup",
                  type: {
                      name: "Composite",
                      className: "SubResource"
                  }
              },
              association: {
                  serializedName: "association",
                  type: {
                      name: "Composite",
                      className: "EffectiveNetworkSecurityGroupAssociation"
                  }
              },
              effectiveSecurityRules: {
                  serializedName: "effectiveSecurityRules",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "EffectiveNetworkSecurityRuleElementType",
                          type: {
                              name: "Composite",
                              className: "EffectiveNetworkSecurityRule"
                          }
                      }
                  }
              },
              tagMap: {
                  serializedName: "tagMap",
                  type: {
                      name: "Dictionary",
                      value: {
                          serializedName: "ArrayElementType",
                          type: {
                              name: "Sequence",
                              element: {
                                  serializedName: "stringElementType",
                                  type: {
                                      name: "String"
                                  }
                              }
                          }
                      }
                  }
              }
          }
      }
  };
  exports.EffectiveNetworkSecurityGroupListResult = {
      serializedName: "EffectiveNetworkSecurityGroupListResult",
      type: {
          name: "Composite",
          className: "EffectiveNetworkSecurityGroupListResult",
          modelProperties: {
              value: {
                  serializedName: "value",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "EffectiveNetworkSecurityGroupElementType",
                          type: {
                              name: "Composite",
                              className: "EffectiveNetworkSecurityGroup"
                          }
                      }
                  }
              },
              nextLink: {
                  readOnly: true,
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.EffectiveRoute = {
      serializedName: "EffectiveRoute",
      type: {
          name: "Composite",
          className: "EffectiveRoute",
          modelProperties: {
              name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              },
              source: {
                  serializedName: "source",
                  type: {
                      name: "String"
                  }
              },
              state: {
                  serializedName: "state",
                  type: {
                      name: "String"
                  }
              },
              addressPrefix: {
                  serializedName: "addressPrefix",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              nextHopIpAddress: {
                  serializedName: "nextHopIpAddress",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              nextHopType: {
                  serializedName: "nextHopType",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.EffectiveRouteListResult = {
      serializedName: "EffectiveRouteListResult",
      type: {
          name: "Composite",
          className: "EffectiveRouteListResult",
          modelProperties: {
              value: {
                  serializedName: "value",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "EffectiveRouteElementType",
                          type: {
                              name: "Composite",
                              className: "EffectiveRoute"
                          }
                      }
                  }
              },
              nextLink: {
                  readOnly: true,
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.NetworkWatcher = {
      serializedName: "NetworkWatcher",
      type: {
          name: "Composite",
          className: "NetworkWatcher",
          modelProperties: __assign({}, exports.Resource.type.modelProperties, { etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              }, provisioningState: {
                  readOnly: true,
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.TopologyParameters = {
      serializedName: "TopologyParameters",
      type: {
          name: "Composite",
          className: "TopologyParameters",
          modelProperties: {
              targetResourceGroupName: {
                  serializedName: "targetResourceGroupName",
                  type: {
                      name: "String"
                  }
              },
              targetVirtualNetwork: {
                  serializedName: "targetVirtualNetwork",
                  type: {
                      name: "Composite",
                      className: "SubResource"
                  }
              },
              targetSubnet: {
                  serializedName: "targetSubnet",
                  type: {
                      name: "Composite",
                      className: "SubResource"
                  }
              }
          }
      }
  };
  exports.TopologyAssociation = {
      serializedName: "TopologyAssociation",
      type: {
          name: "Composite",
          className: "TopologyAssociation",
          modelProperties: {
              name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              },
              resourceId: {
                  serializedName: "resourceId",
                  type: {
                      name: "String"
                  }
              },
              associationType: {
                  serializedName: "associationType",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.TopologyResource = {
      serializedName: "TopologyResource",
      type: {
          name: "Composite",
          className: "TopologyResource",
          modelProperties: {
              name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              },
              id: {
                  serializedName: "id",
                  type: {
                      name: "String"
                  }
              },
              location: {
                  serializedName: "location",
                  type: {
                      name: "String"
                  }
              },
              associations: {
                  serializedName: "associations",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "TopologyAssociationElementType",
                          type: {
                              name: "Composite",
                              className: "TopologyAssociation"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.Topology = {
      serializedName: "Topology",
      type: {
          name: "Composite",
          className: "Topology",
          modelProperties: {
              id: {
                  readOnly: true,
                  serializedName: "id",
                  type: {
                      name: "String"
                  }
              },
              createdDateTime: {
                  readOnly: true,
                  serializedName: "createdDateTime",
                  type: {
                      name: "DateTime"
                  }
              },
              lastModified: {
                  readOnly: true,
                  serializedName: "lastModified",
                  type: {
                      name: "DateTime"
                  }
              },
              resources: {
                  serializedName: "resources",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "TopologyResourceElementType",
                          type: {
                              name: "Composite",
                              className: "TopologyResource"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.VerificationIPFlowParameters = {
      serializedName: "VerificationIPFlowParameters",
      type: {
          name: "Composite",
          className: "VerificationIPFlowParameters",
          modelProperties: {
              targetResourceId: {
                  required: true,
                  serializedName: "targetResourceId",
                  type: {
                      name: "String"
                  }
              },
              direction: {
                  required: true,
                  serializedName: "direction",
                  type: {
                      name: "String"
                  }
              },
              protocol: {
                  required: true,
                  serializedName: "protocol",
                  type: {
                      name: "String"
                  }
              },
              localPort: {
                  required: true,
                  serializedName: "localPort",
                  type: {
                      name: "String"
                  }
              },
              remotePort: {
                  required: true,
                  serializedName: "remotePort",
                  type: {
                      name: "String"
                  }
              },
              localIPAddress: {
                  required: true,
                  serializedName: "localIPAddress",
                  type: {
                      name: "String"
                  }
              },
              remoteIPAddress: {
                  required: true,
                  serializedName: "remoteIPAddress",
                  type: {
                      name: "String"
                  }
              },
              targetNicResourceId: {
                  serializedName: "targetNicResourceId",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.VerificationIPFlowResult = {
      serializedName: "VerificationIPFlowResult",
      type: {
          name: "Composite",
          className: "VerificationIPFlowResult",
          modelProperties: {
              access: {
                  serializedName: "access",
                  type: {
                      name: "String"
                  }
              },
              ruleName: {
                  serializedName: "ruleName",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.NextHopParameters = {
      serializedName: "NextHopParameters",
      type: {
          name: "Composite",
          className: "NextHopParameters",
          modelProperties: {
              targetResourceId: {
                  required: true,
                  serializedName: "targetResourceId",
                  type: {
                      name: "String"
                  }
              },
              sourceIPAddress: {
                  required: true,
                  serializedName: "sourceIPAddress",
                  type: {
                      name: "String"
                  }
              },
              destinationIPAddress: {
                  required: true,
                  serializedName: "destinationIPAddress",
                  type: {
                      name: "String"
                  }
              },
              targetNicResourceId: {
                  serializedName: "targetNicResourceId",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.NextHopResult = {
      serializedName: "NextHopResult",
      type: {
          name: "Composite",
          className: "NextHopResult",
          modelProperties: {
              nextHopType: {
                  serializedName: "nextHopType",
                  type: {
                      name: "String"
                  }
              },
              nextHopIpAddress: {
                  serializedName: "nextHopIpAddress",
                  type: {
                      name: "String"
                  }
              },
              routeTableId: {
                  serializedName: "routeTableId",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.SecurityGroupViewParameters = {
      serializedName: "SecurityGroupViewParameters",
      type: {
          name: "Composite",
          className: "SecurityGroupViewParameters",
          modelProperties: {
              targetResourceId: {
                  required: true,
                  serializedName: "targetResourceId",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.NetworkInterfaceAssociation = {
      serializedName: "NetworkInterfaceAssociation",
      type: {
          name: "Composite",
          className: "NetworkInterfaceAssociation",
          modelProperties: {
              id: {
                  readOnly: true,
                  serializedName: "id",
                  type: {
                      name: "String"
                  }
              },
              securityRules: {
                  serializedName: "securityRules",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "SecurityRuleElementType",
                          type: {
                              name: "Composite",
                              className: "SecurityRule"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.SubnetAssociation = {
      serializedName: "SubnetAssociation",
      type: {
          name: "Composite",
          className: "SubnetAssociation",
          modelProperties: {
              id: {
                  readOnly: true,
                  serializedName: "id",
                  type: {
                      name: "String"
                  }
              },
              securityRules: {
                  serializedName: "securityRules",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "SecurityRuleElementType",
                          type: {
                              name: "Composite",
                              className: "SecurityRule"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.SecurityRuleAssociations = {
      serializedName: "SecurityRuleAssociations",
      type: {
          name: "Composite",
          className: "SecurityRuleAssociations",
          modelProperties: {
              networkInterfaceAssociation: {
                  serializedName: "networkInterfaceAssociation",
                  type: {
                      name: "Composite",
                      className: "NetworkInterfaceAssociation"
                  }
              },
              subnetAssociation: {
                  serializedName: "subnetAssociation",
                  type: {
                      name: "Composite",
                      className: "SubnetAssociation"
                  }
              },
              defaultSecurityRules: {
                  serializedName: "defaultSecurityRules",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "SecurityRuleElementType",
                          type: {
                              name: "Composite",
                              className: "SecurityRule"
                          }
                      }
                  }
              },
              effectiveSecurityRules: {
                  serializedName: "effectiveSecurityRules",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "EffectiveNetworkSecurityRuleElementType",
                          type: {
                              name: "Composite",
                              className: "EffectiveNetworkSecurityRule"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.SecurityGroupNetworkInterface = {
      serializedName: "SecurityGroupNetworkInterface",
      type: {
          name: "Composite",
          className: "SecurityGroupNetworkInterface",
          modelProperties: {
              id: {
                  serializedName: "id",
                  type: {
                      name: "String"
                  }
              },
              securityRuleAssociations: {
                  serializedName: "securityRuleAssociations",
                  type: {
                      name: "Composite",
                      className: "SecurityRuleAssociations"
                  }
              }
          }
      }
  };
  exports.SecurityGroupViewResult = {
      serializedName: "SecurityGroupViewResult",
      type: {
          name: "Composite",
          className: "SecurityGroupViewResult",
          modelProperties: {
              networkInterfaces: {
                  serializedName: "networkInterfaces",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "SecurityGroupNetworkInterfaceElementType",
                          type: {
                              name: "Composite",
                              className: "SecurityGroupNetworkInterface"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.PacketCaptureStorageLocation = {
      serializedName: "PacketCaptureStorageLocation",
      type: {
          name: "Composite",
          className: "PacketCaptureStorageLocation",
          modelProperties: {
              storageId: {
                  serializedName: "storageId",
                  type: {
                      name: "String"
                  }
              },
              storagePath: {
                  serializedName: "storagePath",
                  type: {
                      name: "String"
                  }
              },
              filePath: {
                  serializedName: "filePath",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.PacketCaptureFilter = {
      serializedName: "PacketCaptureFilter",
      type: {
          name: "Composite",
          className: "PacketCaptureFilter",
          modelProperties: {
              protocol: {
                  serializedName: "protocol",
                  defaultValue: 'Any',
                  type: {
                      name: "String"
                  }
              },
              localIPAddress: {
                  serializedName: "localIPAddress",
                  type: {
                      name: "String"
                  }
              },
              remoteIPAddress: {
                  serializedName: "remoteIPAddress",
                  type: {
                      name: "String"
                  }
              },
              localPort: {
                  serializedName: "localPort",
                  type: {
                      name: "String"
                  }
              },
              remotePort: {
                  serializedName: "remotePort",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.PacketCaptureParameters = {
      serializedName: "PacketCaptureParameters",
      type: {
          name: "Composite",
          className: "PacketCaptureParameters",
          modelProperties: {
              target: {
                  required: true,
                  serializedName: "target",
                  type: {
                      name: "String"
                  }
              },
              bytesToCapturePerPacket: {
                  serializedName: "bytesToCapturePerPacket",
                  defaultValue: 0,
                  type: {
                      name: "Number"
                  }
              },
              totalBytesPerSession: {
                  serializedName: "totalBytesPerSession",
                  defaultValue: 1073741824,
                  type: {
                      name: "Number"
                  }
              },
              timeLimitInSeconds: {
                  serializedName: "timeLimitInSeconds",
                  defaultValue: 18000,
                  type: {
                      name: "Number"
                  }
              },
              storageLocation: {
                  required: true,
                  serializedName: "storageLocation",
                  type: {
                      name: "Composite",
                      className: "PacketCaptureStorageLocation"
                  }
              },
              filters: {
                  serializedName: "filters",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "PacketCaptureFilterElementType",
                          type: {
                              name: "Composite",
                              className: "PacketCaptureFilter"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.PacketCapture = {
      serializedName: "PacketCapture",
      type: {
          name: "Composite",
          className: "PacketCapture",
          modelProperties: {
              target: {
                  required: true,
                  serializedName: "properties.target",
                  type: {
                      name: "String"
                  }
              },
              bytesToCapturePerPacket: {
                  serializedName: "properties.bytesToCapturePerPacket",
                  defaultValue: 0,
                  type: {
                      name: "Number"
                  }
              },
              totalBytesPerSession: {
                  serializedName: "properties.totalBytesPerSession",
                  defaultValue: 1073741824,
                  type: {
                      name: "Number"
                  }
              },
              timeLimitInSeconds: {
                  serializedName: "properties.timeLimitInSeconds",
                  defaultValue: 18000,
                  type: {
                      name: "Number"
                  }
              },
              storageLocation: {
                  required: true,
                  serializedName: "properties.storageLocation",
                  type: {
                      name: "Composite",
                      className: "PacketCaptureStorageLocation"
                  }
              },
              filters: {
                  serializedName: "properties.filters",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "PacketCaptureFilterElementType",
                          type: {
                              name: "Composite",
                              className: "PacketCaptureFilter"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.PacketCaptureResult = {
      serializedName: "PacketCaptureResult",
      type: {
          name: "Composite",
          className: "PacketCaptureResult",
          modelProperties: {
              name: {
                  readOnly: true,
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              },
              id: {
                  readOnly: true,
                  serializedName: "id",
                  type: {
                      name: "String"
                  }
              },
              etag: {
                  serializedName: "etag",
                  defaultValue: 'A unique read-only string that changes whenever the resource is updated.',
                  type: {
                      name: "String"
                  }
              },
              target: {
                  required: true,
                  serializedName: "properties.target",
                  type: {
                      name: "String"
                  }
              },
              bytesToCapturePerPacket: {
                  serializedName: "properties.bytesToCapturePerPacket",
                  defaultValue: 0,
                  type: {
                      name: "Number"
                  }
              },
              totalBytesPerSession: {
                  serializedName: "properties.totalBytesPerSession",
                  defaultValue: 1073741824,
                  type: {
                      name: "Number"
                  }
              },
              timeLimitInSeconds: {
                  serializedName: "properties.timeLimitInSeconds",
                  defaultValue: 18000,
                  type: {
                      name: "Number"
                  }
              },
              storageLocation: {
                  required: true,
                  serializedName: "properties.storageLocation",
                  type: {
                      name: "Composite",
                      className: "PacketCaptureStorageLocation"
                  }
              },
              filters: {
                  serializedName: "properties.filters",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "PacketCaptureFilterElementType",
                          type: {
                              name: "Composite",
                              className: "PacketCaptureFilter"
                          }
                      }
                  }
              },
              provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.PacketCaptureQueryStatusResult = {
      serializedName: "PacketCaptureQueryStatusResult",
      type: {
          name: "Composite",
          className: "PacketCaptureQueryStatusResult",
          modelProperties: {
              name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              },
              id: {
                  serializedName: "id",
                  type: {
                      name: "String"
                  }
              },
              captureStartTime: {
                  serializedName: "captureStartTime",
                  type: {
                      name: "DateTime"
                  }
              },
              packetCaptureStatus: {
                  serializedName: "packetCaptureStatus",
                  type: {
                      name: "String"
                  }
              },
              stopReason: {
                  serializedName: "stopReason",
                  type: {
                      name: "String"
                  }
              },
              packetCaptureError: {
                  serializedName: "packetCaptureError",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "PcErrorElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.TroubleshootingParameters = {
      serializedName: "TroubleshootingParameters",
      type: {
          name: "Composite",
          className: "TroubleshootingParameters",
          modelProperties: {
              targetResourceId: {
                  required: true,
                  serializedName: "targetResourceId",
                  type: {
                      name: "String"
                  }
              },
              storageId: {
                  required: true,
                  serializedName: "properties.storageId",
                  type: {
                      name: "String"
                  }
              },
              storagePath: {
                  required: true,
                  serializedName: "properties.storagePath",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.QueryTroubleshootingParameters = {
      serializedName: "QueryTroubleshootingParameters",
      type: {
          name: "Composite",
          className: "QueryTroubleshootingParameters",
          modelProperties: {
              targetResourceId: {
                  required: true,
                  serializedName: "targetResourceId",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.TroubleshootingRecommendedActions = {
      serializedName: "TroubleshootingRecommendedActions",
      type: {
          name: "Composite",
          className: "TroubleshootingRecommendedActions",
          modelProperties: {
              actionId: {
                  serializedName: "actionId",
                  type: {
                      name: "String"
                  }
              },
              actionText: {
                  serializedName: "actionText",
                  type: {
                      name: "String"
                  }
              },
              actionUri: {
                  serializedName: "actionUri",
                  type: {
                      name: "String"
                  }
              },
              actionUriText: {
                  serializedName: "actionUriText",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.TroubleshootingDetails = {
      serializedName: "TroubleshootingDetails",
      type: {
          name: "Composite",
          className: "TroubleshootingDetails",
          modelProperties: {
              id: {
                  serializedName: "id",
                  type: {
                      name: "String"
                  }
              },
              reasonType: {
                  serializedName: "reasonType",
                  type: {
                      name: "String"
                  }
              },
              summary: {
                  serializedName: "summary",
                  type: {
                      name: "String"
                  }
              },
              detail: {
                  serializedName: "detail",
                  type: {
                      name: "String"
                  }
              },
              recommendedActions: {
                  serializedName: "recommendedActions",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "TroubleshootingRecommendedActionsElementType",
                          type: {
                              name: "Composite",
                              className: "TroubleshootingRecommendedActions"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.TroubleshootingResult = {
      serializedName: "TroubleshootingResult",
      type: {
          name: "Composite",
          className: "TroubleshootingResult",
          modelProperties: {
              startTime: {
                  serializedName: "startTime",
                  type: {
                      name: "DateTime"
                  }
              },
              endTime: {
                  serializedName: "endTime",
                  type: {
                      name: "DateTime"
                  }
              },
              code: {
                  serializedName: "code",
                  type: {
                      name: "String"
                  }
              },
              results: {
                  serializedName: "results",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "TroubleshootingDetailsElementType",
                          type: {
                              name: "Composite",
                              className: "TroubleshootingDetails"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.RetentionPolicyParameters = {
      serializedName: "RetentionPolicyParameters",
      type: {
          name: "Composite",
          className: "RetentionPolicyParameters",
          modelProperties: {
              days: {
                  serializedName: "days",
                  defaultValue: 0,
                  type: {
                      name: "Number"
                  }
              },
              enabled: {
                  serializedName: "enabled",
                  defaultValue: false,
                  type: {
                      name: "Boolean"
                  }
              }
          }
      }
  };
  exports.FlowLogStatusParameters = {
      serializedName: "FlowLogStatusParameters",
      type: {
          name: "Composite",
          className: "FlowLogStatusParameters",
          modelProperties: {
              targetResourceId: {
                  required: true,
                  serializedName: "targetResourceId",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.FlowLogInformation = {
      serializedName: "FlowLogInformation",
      type: {
          name: "Composite",
          className: "FlowLogInformation",
          modelProperties: {
              targetResourceId: {
                  required: true,
                  serializedName: "targetResourceId",
                  type: {
                      name: "String"
                  }
              },
              storageId: {
                  required: true,
                  serializedName: "properties.storageId",
                  type: {
                      name: "String"
                  }
              },
              enabled: {
                  required: true,
                  serializedName: "properties.enabled",
                  type: {
                      name: "Boolean"
                  }
              },
              retentionPolicy: {
                  serializedName: "properties.retentionPolicy",
                  type: {
                      name: "Composite",
                      className: "RetentionPolicyParameters"
                  }
              }
          }
      }
  };
  exports.ConnectivitySource = {
      serializedName: "ConnectivitySource",
      type: {
          name: "Composite",
          className: "ConnectivitySource",
          modelProperties: {
              resourceId: {
                  required: true,
                  serializedName: "resourceId",
                  type: {
                      name: "String"
                  }
              },
              port: {
                  serializedName: "port",
                  type: {
                      name: "Number"
                  }
              }
          }
      }
  };
  exports.ConnectivityDestination = {
      serializedName: "ConnectivityDestination",
      type: {
          name: "Composite",
          className: "ConnectivityDestination",
          modelProperties: {
              resourceId: {
                  serializedName: "resourceId",
                  type: {
                      name: "String"
                  }
              },
              address: {
                  serializedName: "address",
                  type: {
                      name: "String"
                  }
              },
              port: {
                  serializedName: "port",
                  type: {
                      name: "Number"
                  }
              }
          }
      }
  };
  exports.ConnectivityParameters = {
      serializedName: "ConnectivityParameters",
      type: {
          name: "Composite",
          className: "ConnectivityParameters",
          modelProperties: {
              source: {
                  required: true,
                  serializedName: "source",
                  type: {
                      name: "Composite",
                      className: "ConnectivitySource"
                  }
              },
              destination: {
                  required: true,
                  serializedName: "destination",
                  type: {
                      name: "Composite",
                      className: "ConnectivityDestination"
                  }
              }
          }
      }
  };
  exports.ConnectivityIssue = {
      serializedName: "ConnectivityIssue",
      type: {
          name: "Composite",
          className: "ConnectivityIssue",
          modelProperties: {
              origin: {
                  readOnly: true,
                  serializedName: "origin",
                  type: {
                      name: "String"
                  }
              },
              severity: {
                  readOnly: true,
                  serializedName: "severity",
                  type: {
                      name: "String"
                  }
              },
              type: {
                  readOnly: true,
                  serializedName: "type",
                  type: {
                      name: "String"
                  }
              },
              context: {
                  readOnly: true,
                  serializedName: "context",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "ObjectElementType",
                          type: {
                              name: "Dictionary",
                              value: {
                                  serializedName: "stringElementType",
                                  type: {
                                      name: "String"
                                  }
                              }
                          }
                      }
                  }
              }
          }
      }
  };
  exports.ConnectivityHop = {
      serializedName: "ConnectivityHop",
      type: {
          name: "Composite",
          className: "ConnectivityHop",
          modelProperties: {
              type: {
                  readOnly: true,
                  serializedName: "type",
                  type: {
                      name: "String"
                  }
              },
              id: {
                  readOnly: true,
                  serializedName: "id",
                  type: {
                      name: "String"
                  }
              },
              address: {
                  readOnly: true,
                  serializedName: "address",
                  type: {
                      name: "String"
                  }
              },
              resourceId: {
                  readOnly: true,
                  serializedName: "resourceId",
                  type: {
                      name: "String"
                  }
              },
              nextHopIds: {
                  readOnly: true,
                  serializedName: "nextHopIds",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              issues: {
                  readOnly: true,
                  serializedName: "issues",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "ConnectivityIssueElementType",
                          type: {
                              name: "Composite",
                              className: "ConnectivityIssue"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.ConnectivityInformation = {
      serializedName: "ConnectivityInformation",
      type: {
          name: "Composite",
          className: "ConnectivityInformation",
          modelProperties: {
              hops: {
                  readOnly: true,
                  serializedName: "hops",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "ConnectivityHopElementType",
                          type: {
                              name: "Composite",
                              className: "ConnectivityHop"
                          }
                      }
                  }
              },
              connectionStatus: {
                  readOnly: true,
                  serializedName: "connectionStatus",
                  type: {
                      name: "String"
                  }
              },
              avgLatencyInMs: {
                  readOnly: true,
                  serializedName: "avgLatencyInMs",
                  type: {
                      name: "Number"
                  }
              },
              minLatencyInMs: {
                  readOnly: true,
                  serializedName: "minLatencyInMs",
                  type: {
                      name: "Number"
                  }
              },
              maxLatencyInMs: {
                  readOnly: true,
                  serializedName: "maxLatencyInMs",
                  type: {
                      name: "Number"
                  }
              },
              probesSent: {
                  readOnly: true,
                  serializedName: "probesSent",
                  type: {
                      name: "Number"
                  }
              },
              probesFailed: {
                  readOnly: true,
                  serializedName: "probesFailed",
                  type: {
                      name: "Number"
                  }
              }
          }
      }
  };
  exports.AzureReachabilityReportLocation = {
      serializedName: "AzureReachabilityReportLocation",
      type: {
          name: "Composite",
          className: "AzureReachabilityReportLocation",
          modelProperties: {
              country: {
                  required: true,
                  serializedName: "country",
                  type: {
                      name: "String"
                  }
              },
              state: {
                  serializedName: "state",
                  type: {
                      name: "String"
                  }
              },
              city: {
                  serializedName: "city",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.AzureReachabilityReportParameters = {
      serializedName: "AzureReachabilityReportParameters",
      type: {
          name: "Composite",
          className: "AzureReachabilityReportParameters",
          modelProperties: {
              providerLocation: {
                  required: true,
                  serializedName: "providerLocation",
                  type: {
                      name: "Composite",
                      className: "AzureReachabilityReportLocation"
                  }
              },
              providers: {
                  serializedName: "providers",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              azureLocations: {
                  serializedName: "azureLocations",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              startTime: {
                  required: true,
                  serializedName: "startTime",
                  type: {
                      name: "DateTime"
                  }
              },
              endTime: {
                  required: true,
                  serializedName: "endTime",
                  type: {
                      name: "DateTime"
                  }
              }
          }
      }
  };
  exports.AzureReachabilityReportLatencyInfo = {
      serializedName: "AzureReachabilityReportLatencyInfo",
      type: {
          name: "Composite",
          className: "AzureReachabilityReportLatencyInfo",
          modelProperties: {
              timeStamp: {
                  serializedName: "timeStamp",
                  type: {
                      name: "DateTime"
                  }
              },
              score: {
                  serializedName: "score",
                  constraints: {
                      InclusiveMaximum: 100,
                      InclusiveMinimum: 1
                  },
                  type: {
                      name: "Number"
                  }
              }
          }
      }
  };
  exports.AzureReachabilityReportItem = {
      serializedName: "AzureReachabilityReportItem",
      type: {
          name: "Composite",
          className: "AzureReachabilityReportItem",
          modelProperties: {
              provider: {
                  serializedName: "provider",
                  type: {
                      name: "String"
                  }
              },
              azureLocation: {
                  serializedName: "azureLocation",
                  type: {
                      name: "String"
                  }
              },
              latencies: {
                  serializedName: "latencies",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "AzureReachabilityReportLatencyInfoElementType",
                          type: {
                              name: "Composite",
                              className: "AzureReachabilityReportLatencyInfo"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.AzureReachabilityReport = {
      serializedName: "AzureReachabilityReport",
      type: {
          name: "Composite",
          className: "AzureReachabilityReport",
          modelProperties: {
              aggregationLevel: {
                  required: true,
                  serializedName: "aggregationLevel",
                  type: {
                      name: "String"
                  }
              },
              providerLocation: {
                  required: true,
                  serializedName: "providerLocation",
                  type: {
                      name: "Composite",
                      className: "AzureReachabilityReportLocation"
                  }
              },
              reachabilityReport: {
                  required: true,
                  serializedName: "reachabilityReport",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "AzureReachabilityReportItemElementType",
                          type: {
                              name: "Composite",
                              className: "AzureReachabilityReportItem"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.AvailableProvidersListParameters = {
      serializedName: "AvailableProvidersListParameters",
      type: {
          name: "Composite",
          className: "AvailableProvidersListParameters",
          modelProperties: {
              azureLocations: {
                  serializedName: "azureLocations",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              country: {
                  serializedName: "country",
                  type: {
                      name: "String"
                  }
              },
              state: {
                  serializedName: "state",
                  type: {
                      name: "String"
                  }
              },
              city: {
                  serializedName: "city",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.AvailableProvidersListCity = {
      serializedName: "AvailableProvidersListCity",
      type: {
          name: "Composite",
          className: "AvailableProvidersListCity",
          modelProperties: {
              cityName: {
                  serializedName: "cityName",
                  type: {
                      name: "String"
                  }
              },
              providers: {
                  serializedName: "providers",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.AvailableProvidersListState = {
      serializedName: "AvailableProvidersListState",
      type: {
          name: "Composite",
          className: "AvailableProvidersListState",
          modelProperties: {
              stateName: {
                  serializedName: "stateName",
                  type: {
                      name: "String"
                  }
              },
              providers: {
                  serializedName: "providers",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              cities: {
                  serializedName: "cities",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "AvailableProvidersListCityElementType",
                          type: {
                              name: "Composite",
                              className: "AvailableProvidersListCity"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.AvailableProvidersListCountry = {
      serializedName: "AvailableProvidersListCountry",
      type: {
          name: "Composite",
          className: "AvailableProvidersListCountry",
          modelProperties: {
              countryName: {
                  serializedName: "countryName",
                  type: {
                      name: "String"
                  }
              },
              providers: {
                  serializedName: "providers",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              states: {
                  serializedName: "states",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "AvailableProvidersListStateElementType",
                          type: {
                              name: "Composite",
                              className: "AvailableProvidersListState"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.AvailableProvidersList = {
      serializedName: "AvailableProvidersList",
      type: {
          name: "Composite",
          className: "AvailableProvidersList",
          modelProperties: {
              countries: {
                  required: true,
                  serializedName: "countries",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "AvailableProvidersListCountryElementType",
                          type: {
                              name: "Composite",
                              className: "AvailableProvidersListCountry"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.ConnectionMonitorSource = {
      serializedName: "ConnectionMonitorSource",
      type: {
          name: "Composite",
          className: "ConnectionMonitorSource",
          modelProperties: {
              resourceId: {
                  required: true,
                  serializedName: "resourceId",
                  type: {
                      name: "String"
                  }
              },
              port: {
                  serializedName: "port",
                  type: {
                      name: "Number"
                  }
              }
          }
      }
  };
  exports.ConnectionMonitorDestination = {
      serializedName: "ConnectionMonitorDestination",
      type: {
          name: "Composite",
          className: "ConnectionMonitorDestination",
          modelProperties: {
              resourceId: {
                  serializedName: "resourceId",
                  type: {
                      name: "String"
                  }
              },
              address: {
                  serializedName: "address",
                  type: {
                      name: "String"
                  }
              },
              port: {
                  serializedName: "port",
                  type: {
                      name: "Number"
                  }
              }
          }
      }
  };
  exports.ConnectionMonitorParameters = {
      serializedName: "ConnectionMonitorParameters",
      type: {
          name: "Composite",
          className: "ConnectionMonitorParameters",
          modelProperties: {
              source: {
                  required: true,
                  serializedName: "source",
                  type: {
                      name: "Composite",
                      className: "ConnectionMonitorSource"
                  }
              },
              destination: {
                  required: true,
                  serializedName: "destination",
                  type: {
                      name: "Composite",
                      className: "ConnectionMonitorDestination"
                  }
              },
              autoStart: {
                  serializedName: "autoStart",
                  defaultValue: true,
                  type: {
                      name: "Boolean"
                  }
              },
              monitoringIntervalInSeconds: {
                  serializedName: "monitoringIntervalInSeconds",
                  defaultValue: 60,
                  type: {
                      name: "Number"
                  }
              }
          }
      }
  };
  exports.ConnectionMonitor = {
      serializedName: "ConnectionMonitor",
      type: {
          name: "Composite",
          className: "ConnectionMonitor",
          modelProperties: {
              location: {
                  serializedName: "location",
                  type: {
                      name: "String"
                  }
              },
              tags: {
                  serializedName: "tags",
                  type: {
                      name: "Dictionary",
                      value: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              source: {
                  required: true,
                  serializedName: "properties.source",
                  type: {
                      name: "Composite",
                      className: "ConnectionMonitorSource"
                  }
              },
              destination: {
                  required: true,
                  serializedName: "properties.destination",
                  type: {
                      name: "Composite",
                      className: "ConnectionMonitorDestination"
                  }
              },
              autoStart: {
                  serializedName: "properties.autoStart",
                  defaultValue: true,
                  type: {
                      name: "Boolean"
                  }
              },
              monitoringIntervalInSeconds: {
                  serializedName: "properties.monitoringIntervalInSeconds",
                  defaultValue: 60,
                  type: {
                      name: "Number"
                  }
              }
          }
      }
  };
  exports.ConnectionMonitorResult = {
      serializedName: "ConnectionMonitorResult",
      type: {
          name: "Composite",
          className: "ConnectionMonitorResult",
          modelProperties: {
              name: {
                  readOnly: true,
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              },
              id: {
                  readOnly: true,
                  serializedName: "id",
                  type: {
                      name: "String"
                  }
              },
              etag: {
                  serializedName: "etag",
                  defaultValue: 'A unique read-only string that changes whenever the resource is updated.',
                  type: {
                      name: "String"
                  }
              },
              type: {
                  readOnly: true,
                  serializedName: "type",
                  type: {
                      name: "String"
                  }
              },
              location: {
                  serializedName: "location",
                  type: {
                      name: "String"
                  }
              },
              tags: {
                  serializedName: "tags",
                  type: {
                      name: "Dictionary",
                      value: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              source: {
                  required: true,
                  serializedName: "properties.source",
                  type: {
                      name: "Composite",
                      className: "ConnectionMonitorSource"
                  }
              },
              destination: {
                  required: true,
                  serializedName: "properties.destination",
                  type: {
                      name: "Composite",
                      className: "ConnectionMonitorDestination"
                  }
              },
              autoStart: {
                  serializedName: "properties.autoStart",
                  defaultValue: true,
                  type: {
                      name: "Boolean"
                  }
              },
              monitoringIntervalInSeconds: {
                  serializedName: "properties.monitoringIntervalInSeconds",
                  defaultValue: 60,
                  type: {
                      name: "Number"
                  }
              },
              provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              },
              startTime: {
                  serializedName: "properties.startTime",
                  type: {
                      name: "DateTime"
                  }
              },
              monitoringStatus: {
                  serializedName: "properties.monitoringStatus",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.ConnectionStateSnapshot = {
      serializedName: "ConnectionStateSnapshot",
      type: {
          name: "Composite",
          className: "ConnectionStateSnapshot",
          modelProperties: {
              connectionState: {
                  serializedName: "connectionState",
                  type: {
                      name: "String"
                  }
              },
              startTime: {
                  serializedName: "startTime",
                  type: {
                      name: "DateTime"
                  }
              },
              endTime: {
                  serializedName: "endTime",
                  type: {
                      name: "DateTime"
                  }
              },
              evaluationState: {
                  serializedName: "evaluationState",
                  type: {
                      name: "String"
                  }
              },
              hops: {
                  readOnly: true,
                  serializedName: "hops",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "ConnectivityHopElementType",
                          type: {
                              name: "Composite",
                              className: "ConnectivityHop"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.ConnectionMonitorQueryResult = {
      serializedName: "ConnectionMonitorQueryResult",
      type: {
          name: "Composite",
          className: "ConnectionMonitorQueryResult",
          modelProperties: {
              states: {
                  serializedName: "states",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "ConnectionStateSnapshotElementType",
                          type: {
                              name: "Composite",
                              className: "ConnectionStateSnapshot"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.OperationDisplay = {
      serializedName: "Operation_display",
      type: {
          name: "Composite",
          className: "OperationDisplay",
          modelProperties: {
              provider: {
                  serializedName: "provider",
                  type: {
                      name: "String"
                  }
              },
              resource: {
                  serializedName: "resource",
                  type: {
                      name: "String"
                  }
              },
              operation: {
                  serializedName: "operation",
                  type: {
                      name: "String"
                  }
              },
              description: {
                  serializedName: "description",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.Availability = {
      serializedName: "Availability",
      type: {
          name: "Composite",
          className: "Availability",
          modelProperties: {
              timeGrain: {
                  serializedName: "timeGrain",
                  type: {
                      name: "String"
                  }
              },
              retention: {
                  serializedName: "retention",
                  type: {
                      name: "String"
                  }
              },
              blobDuration: {
                  serializedName: "blobDuration",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.Dimension = {
      serializedName: "Dimension",
      type: {
          name: "Composite",
          className: "Dimension",
          modelProperties: {
              name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              },
              displayName: {
                  serializedName: "displayName",
                  type: {
                      name: "String"
                  }
              },
              internalName: {
                  serializedName: "internalName",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.MetricSpecification = {
      serializedName: "MetricSpecification",
      type: {
          name: "Composite",
          className: "MetricSpecification",
          modelProperties: {
              name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              },
              displayName: {
                  serializedName: "displayName",
                  type: {
                      name: "String"
                  }
              },
              displayDescription: {
                  serializedName: "displayDescription",
                  type: {
                      name: "String"
                  }
              },
              unit: {
                  serializedName: "unit",
                  type: {
                      name: "String"
                  }
              },
              aggregationType: {
                  serializedName: "aggregationType",
                  type: {
                      name: "String"
                  }
              },
              availabilities: {
                  serializedName: "availabilities",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "AvailabilityElementType",
                          type: {
                              name: "Composite",
                              className: "Availability"
                          }
                      }
                  }
              },
              enableRegionalMdmAccount: {
                  serializedName: "enableRegionalMdmAccount",
                  type: {
                      name: "Boolean"
                  }
              },
              fillGapWithZero: {
                  serializedName: "fillGapWithZero",
                  type: {
                      name: "Boolean"
                  }
              },
              metricFilterPattern: {
                  serializedName: "metricFilterPattern",
                  type: {
                      name: "String"
                  }
              },
              dimensions: {
                  serializedName: "dimensions",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "DimensionElementType",
                          type: {
                              name: "Composite",
                              className: "Dimension"
                          }
                      }
                  }
              },
              isInternal: {
                  serializedName: "isInternal",
                  type: {
                      name: "Boolean"
                  }
              },
              sourceMdmAccount: {
                  serializedName: "sourceMdmAccount",
                  type: {
                      name: "String"
                  }
              },
              sourceMdmNamespace: {
                  serializedName: "sourceMdmNamespace",
                  type: {
                      name: "String"
                  }
              },
              resourceIdDimensionNameOverride: {
                  serializedName: "resourceIdDimensionNameOverride",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.LogSpecification = {
      serializedName: "LogSpecification",
      type: {
          name: "Composite",
          className: "LogSpecification",
          modelProperties: {
              name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              },
              displayName: {
                  serializedName: "displayName",
                  type: {
                      name: "String"
                  }
              },
              blobDuration: {
                  serializedName: "blobDuration",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.OperationPropertiesFormatServiceSpecification = {
      serializedName: "OperationPropertiesFormat_serviceSpecification",
      type: {
          name: "Composite",
          className: "OperationPropertiesFormatServiceSpecification",
          modelProperties: {
              metricSpecifications: {
                  serializedName: "metricSpecifications",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "MetricSpecificationElementType",
                          type: {
                              name: "Composite",
                              className: "MetricSpecification"
                          }
                      }
                  }
              },
              logSpecifications: {
                  serializedName: "logSpecifications",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "LogSpecificationElementType",
                          type: {
                              name: "Composite",
                              className: "LogSpecification"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.Operation = {
      serializedName: "Operation",
      type: {
          name: "Composite",
          className: "Operation",
          modelProperties: {
              name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              },
              display: {
                  serializedName: "display",
                  type: {
                      name: "Composite",
                      className: "OperationDisplay"
                  }
              },
              origin: {
                  serializedName: "origin",
                  type: {
                      name: "String"
                  }
              },
              serviceSpecification: {
                  serializedName: "properties.serviceSpecification",
                  type: {
                      name: "Composite",
                      className: "OperationPropertiesFormatServiceSpecification"
                  }
              }
          }
      }
  };
  exports.RouteFilterRule = {
      serializedName: "RouteFilterRule",
      type: {
          name: "Composite",
          className: "RouteFilterRule",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { access: {
                  required: true,
                  serializedName: "properties.access",
                  type: {
                      name: "String"
                  }
              }, routeFilterRuleType: {
                  required: true,
                  isConstant: true,
                  serializedName: "properties.routeFilterRuleType",
                  defaultValue: 'Community',
                  type: {
                      name: "String"
                  }
              }, communities: {
                  required: true,
                  serializedName: "properties.communities",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              }, provisioningState: {
                  readOnly: true,
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, location: {
                  serializedName: "location",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  readOnly: true,
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              }, tags: {
                  serializedName: "tags",
                  type: {
                      name: "Dictionary",
                      value: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              } })
      }
  };
  exports.PatchRouteFilterRule = {
      serializedName: "PatchRouteFilterRule",
      type: {
          name: "Composite",
          className: "PatchRouteFilterRule",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { access: {
                  required: true,
                  serializedName: "properties.access",
                  type: {
                      name: "String"
                  }
              }, routeFilterRuleType: {
                  required: true,
                  isConstant: true,
                  serializedName: "properties.routeFilterRuleType",
                  defaultValue: 'Community',
                  type: {
                      name: "String"
                  }
              }, communities: {
                  required: true,
                  serializedName: "properties.communities",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              }, provisioningState: {
                  readOnly: true,
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  readOnly: true,
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  readOnly: true,
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              }, tags: {
                  serializedName: "tags",
                  type: {
                      name: "Dictionary",
                      value: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              } })
      }
  };
  exports.ExpressRouteCircuitPeeringConfig = {
      serializedName: "ExpressRouteCircuitPeeringConfig",
      type: {
          name: "Composite",
          className: "ExpressRouteCircuitPeeringConfig",
          modelProperties: {
              advertisedPublicPrefixes: {
                  serializedName: "advertisedPublicPrefixes",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              advertisedCommunities: {
                  serializedName: "advertisedCommunities",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              advertisedPublicPrefixesState: {
                  serializedName: "advertisedPublicPrefixesState",
                  type: {
                      name: "String"
                  }
              },
              legacyMode: {
                  serializedName: "legacyMode",
                  type: {
                      name: "Number"
                  }
              },
              customerASN: {
                  serializedName: "customerASN",
                  type: {
                      name: "Number"
                  }
              },
              routingRegistryName: {
                  serializedName: "routingRegistryName",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.ExpressRouteCircuitStats = {
      serializedName: "ExpressRouteCircuitStats",
      type: {
          name: "Composite",
          className: "ExpressRouteCircuitStats",
          modelProperties: {
              primarybytesIn: {
                  serializedName: "primarybytesIn",
                  type: {
                      name: "Number"
                  }
              },
              primarybytesOut: {
                  serializedName: "primarybytesOut",
                  type: {
                      name: "Number"
                  }
              },
              secondarybytesIn: {
                  serializedName: "secondarybytesIn",
                  type: {
                      name: "Number"
                  }
              },
              secondarybytesOut: {
                  serializedName: "secondarybytesOut",
                  type: {
                      name: "Number"
                  }
              }
          }
      }
  };
  exports.RouteFilter = {
      serializedName: "RouteFilter",
      type: {
          name: "Composite",
          className: "RouteFilter",
          modelProperties: __assign({}, exports.Resource.type.modelProperties, { rules: {
                  serializedName: "properties.rules",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "RouteFilterRuleElementType",
                          type: {
                              name: "Composite",
                              className: "RouteFilterRule"
                          }
                      }
                  }
              }, peerings: {
                  serializedName: "properties.peerings",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "ExpressRouteCircuitPeeringElementType",
                          type: {
                              name: "Composite",
                              className: "ExpressRouteCircuitPeering"
                          }
                      }
                  }
              }, provisioningState: {
                  readOnly: true,
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  readOnly: true,
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.Ipv6ExpressRouteCircuitPeeringConfig = {
      serializedName: "Ipv6ExpressRouteCircuitPeeringConfig",
      type: {
          name: "Composite",
          className: "Ipv6ExpressRouteCircuitPeeringConfig",
          modelProperties: {
              primaryPeerAddressPrefix: {
                  serializedName: "primaryPeerAddressPrefix",
                  type: {
                      name: "String"
                  }
              },
              secondaryPeerAddressPrefix: {
                  serializedName: "secondaryPeerAddressPrefix",
                  type: {
                      name: "String"
                  }
              },
              microsoftPeeringConfig: {
                  serializedName: "microsoftPeeringConfig",
                  type: {
                      name: "Composite",
                      className: "ExpressRouteCircuitPeeringConfig"
                  }
              },
              routeFilter: {
                  serializedName: "routeFilter",
                  type: {
                      name: "Composite",
                      className: "RouteFilter"
                  }
              },
              state: {
                  serializedName: "state",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.ExpressRouteCircuitPeering = {
      serializedName: "ExpressRouteCircuitPeering",
      type: {
          name: "Composite",
          className: "ExpressRouteCircuitPeering",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { peeringType: {
                  serializedName: "properties.peeringType",
                  type: {
                      name: "String"
                  }
              }, state: {
                  serializedName: "properties.state",
                  type: {
                      name: "String"
                  }
              }, azureASN: {
                  serializedName: "properties.azureASN",
                  type: {
                      name: "Number"
                  }
              }, peerASN: {
                  serializedName: "properties.peerASN",
                  constraints: {
                      InclusiveMaximum: 4294967295,
                      InclusiveMinimum: 1
                  },
                  type: {
                      name: "Number"
                  }
              }, primaryPeerAddressPrefix: {
                  serializedName: "properties.primaryPeerAddressPrefix",
                  type: {
                      name: "String"
                  }
              }, secondaryPeerAddressPrefix: {
                  serializedName: "properties.secondaryPeerAddressPrefix",
                  type: {
                      name: "String"
                  }
              }, primaryAzurePort: {
                  serializedName: "properties.primaryAzurePort",
                  type: {
                      name: "String"
                  }
              }, secondaryAzurePort: {
                  serializedName: "properties.secondaryAzurePort",
                  type: {
                      name: "String"
                  }
              }, sharedKey: {
                  serializedName: "properties.sharedKey",
                  type: {
                      name: "String"
                  }
              }, vlanId: {
                  serializedName: "properties.vlanId",
                  type: {
                      name: "Number"
                  }
              }, microsoftPeeringConfig: {
                  serializedName: "properties.microsoftPeeringConfig",
                  type: {
                      name: "Composite",
                      className: "ExpressRouteCircuitPeeringConfig"
                  }
              }, stats: {
                  serializedName: "properties.stats",
                  type: {
                      name: "Composite",
                      className: "ExpressRouteCircuitStats"
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, gatewayManagerEtag: {
                  serializedName: "properties.gatewayManagerEtag",
                  type: {
                      name: "String"
                  }
              }, lastModifiedBy: {
                  serializedName: "properties.lastModifiedBy",
                  type: {
                      name: "String"
                  }
              }, routeFilter: {
                  serializedName: "properties.routeFilter",
                  type: {
                      name: "Composite",
                      className: "RouteFilter"
                  }
              }, ipv6PeeringConfig: {
                  serializedName: "properties.ipv6PeeringConfig",
                  type: {
                      name: "Composite",
                      className: "Ipv6ExpressRouteCircuitPeeringConfig"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  readOnly: true,
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.PatchRouteFilter = {
      serializedName: "PatchRouteFilter",
      type: {
          name: "Composite",
          className: "PatchRouteFilter",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { rules: {
                  serializedName: "properties.rules",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "RouteFilterRuleElementType",
                          type: {
                              name: "Composite",
                              className: "RouteFilterRule"
                          }
                      }
                  }
              }, peerings: {
                  serializedName: "properties.peerings",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "ExpressRouteCircuitPeeringElementType",
                          type: {
                              name: "Composite",
                              className: "ExpressRouteCircuitPeering"
                          }
                      }
                  }
              }, provisioningState: {
                  readOnly: true,
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  readOnly: true,
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  readOnly: true,
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              }, type: {
                  readOnly: true,
                  serializedName: "type",
                  type: {
                      name: "String"
                  }
              }, tags: {
                  serializedName: "tags",
                  type: {
                      name: "Dictionary",
                      value: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              } })
      }
  };
  exports.UsageName = {
      serializedName: "UsageName",
      type: {
          name: "Composite",
          className: "UsageName",
          modelProperties: {
              value: {
                  serializedName: "value",
                  type: {
                      name: "String"
                  }
              },
              localizedValue: {
                  serializedName: "localizedValue",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.Usage = {
      serializedName: "Usage",
      type: {
          name: "Composite",
          className: "Usage",
          modelProperties: {
              id: {
                  readOnly: true,
                  serializedName: "id",
                  type: {
                      name: "String"
                  }
              },
              unit: {
                  required: true,
                  isConstant: true,
                  serializedName: "unit",
                  defaultValue: 'Count',
                  type: {
                      name: "String"
                  }
              },
              currentValue: {
                  required: true,
                  serializedName: "currentValue",
                  type: {
                      name: "Number"
                  }
              },
              limit: {
                  required: true,
                  serializedName: "limit",
                  type: {
                      name: "Number"
                  }
              },
              name: {
                  required: true,
                  serializedName: "name",
                  type: {
                      name: "Composite",
                      className: "UsageName"
                  }
              }
          }
      }
  };
  exports.AddressSpace = {
      serializedName: "AddressSpace",
      type: {
          name: "Composite",
          className: "AddressSpace",
          modelProperties: {
              addressPrefixes: {
                  serializedName: "addressPrefixes",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.VirtualNetworkPeering = {
      serializedName: "VirtualNetworkPeering",
      type: {
          name: "Composite",
          className: "VirtualNetworkPeering",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { allowVirtualNetworkAccess: {
                  serializedName: "properties.allowVirtualNetworkAccess",
                  type: {
                      name: "Boolean"
                  }
              }, allowForwardedTraffic: {
                  serializedName: "properties.allowForwardedTraffic",
                  type: {
                      name: "Boolean"
                  }
              }, allowGatewayTransit: {
                  serializedName: "properties.allowGatewayTransit",
                  type: {
                      name: "Boolean"
                  }
              }, useRemoteGateways: {
                  serializedName: "properties.useRemoteGateways",
                  type: {
                      name: "Boolean"
                  }
              }, remoteVirtualNetwork: {
                  serializedName: "properties.remoteVirtualNetwork",
                  type: {
                      name: "Composite",
                      className: "SubResource"
                  }
              }, remoteAddressSpace: {
                  serializedName: "properties.remoteAddressSpace",
                  type: {
                      name: "Composite",
                      className: "AddressSpace"
                  }
              }, peeringState: {
                  serializedName: "properties.peeringState",
                  type: {
                      name: "String"
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.DhcpOptions = {
      serializedName: "DhcpOptions",
      type: {
          name: "Composite",
          className: "DhcpOptions",
          modelProperties: {
              dnsServers: {
                  serializedName: "dnsServers",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.VirtualNetwork = {
      serializedName: "VirtualNetwork",
      type: {
          name: "Composite",
          className: "VirtualNetwork",
          modelProperties: __assign({}, exports.Resource.type.modelProperties, { addressSpace: {
                  serializedName: "properties.addressSpace",
                  type: {
                      name: "Composite",
                      className: "AddressSpace"
                  }
              }, dhcpOptions: {
                  serializedName: "properties.dhcpOptions",
                  type: {
                      name: "Composite",
                      className: "DhcpOptions"
                  }
              }, subnets: {
                  serializedName: "properties.subnets",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "SubnetElementType",
                          type: {
                              name: "Composite",
                              className: "Subnet"
                          }
                      }
                  }
              }, virtualNetworkPeerings: {
                  serializedName: "properties.virtualNetworkPeerings",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "VirtualNetworkPeeringElementType",
                          type: {
                              name: "Composite",
                              className: "VirtualNetworkPeering"
                          }
                      }
                  }
              }, resourceGuid: {
                  serializedName: "properties.resourceGuid",
                  type: {
                      name: "String"
                  }
              }, provisioningState: {
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, enableDdosProtection: {
                  serializedName: "properties.enableDdosProtection",
                  type: {
                      name: "Boolean"
                  }
              }, enableVmProtection: {
                  serializedName: "properties.enableVmProtection",
                  type: {
                      name: "Boolean"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.IPAddressAvailabilityResult = {
      serializedName: "IPAddressAvailabilityResult",
      type: {
          name: "Composite",
          className: "IPAddressAvailabilityResult",
          modelProperties: {
              available: {
                  serializedName: "available",
                  type: {
                      name: "Boolean"
                  }
              },
              availableIPAddresses: {
                  serializedName: "availableIPAddresses",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.VirtualNetworkUsageName = {
      serializedName: "VirtualNetworkUsageName",
      type: {
          name: "Composite",
          className: "VirtualNetworkUsageName",
          modelProperties: {
              localizedValue: {
                  readOnly: true,
                  serializedName: "localizedValue",
                  type: {
                      name: "String"
                  }
              },
              value: {
                  readOnly: true,
                  serializedName: "value",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.VirtualNetworkUsage = {
      serializedName: "VirtualNetworkUsage",
      type: {
          name: "Composite",
          className: "VirtualNetworkUsage",
          modelProperties: {
              currentValue: {
                  readOnly: true,
                  serializedName: "currentValue",
                  type: {
                      name: "Number"
                  }
              },
              id: {
                  readOnly: true,
                  serializedName: "id",
                  type: {
                      name: "String"
                  }
              },
              limit: {
                  readOnly: true,
                  serializedName: "limit",
                  type: {
                      name: "Number"
                  }
              },
              name: {
                  readOnly: true,
                  serializedName: "name",
                  type: {
                      name: "Composite",
                      className: "VirtualNetworkUsageName"
                  }
              },
              unit: {
                  readOnly: true,
                  serializedName: "unit",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.VirtualNetworkGatewayIPConfiguration = {
      serializedName: "VirtualNetworkGatewayIPConfiguration",
      type: {
          name: "Composite",
          className: "VirtualNetworkGatewayIPConfiguration",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { privateIPAllocationMethod: {
                  serializedName: "properties.privateIPAllocationMethod",
                  type: {
                      name: "String"
                  }
              }, subnet: {
                  serializedName: "properties.subnet",
                  type: {
                      name: "Composite",
                      className: "SubResource"
                  }
              }, publicIPAddress: {
                  serializedName: "properties.publicIPAddress",
                  type: {
                      name: "Composite",
                      className: "SubResource"
                  }
              }, provisioningState: {
                  readOnly: true,
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.VirtualNetworkGatewaySku = {
      serializedName: "VirtualNetworkGatewaySku",
      type: {
          name: "Composite",
          className: "VirtualNetworkGatewaySku",
          modelProperties: {
              name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              },
              tier: {
                  serializedName: "tier",
                  type: {
                      name: "String"
                  }
              },
              capacity: {
                  serializedName: "capacity",
                  type: {
                      name: "Number"
                  }
              }
          }
      }
  };
  exports.VpnClientRootCertificate = {
      serializedName: "VpnClientRootCertificate",
      type: {
          name: "Composite",
          className: "VpnClientRootCertificate",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { publicCertData: {
                  required: true,
                  serializedName: "properties.publicCertData",
                  type: {
                      name: "String"
                  }
              }, provisioningState: {
                  readOnly: true,
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.VpnClientRevokedCertificate = {
      serializedName: "VpnClientRevokedCertificate",
      type: {
          name: "Composite",
          className: "VpnClientRevokedCertificate",
          modelProperties: __assign({}, exports.SubResource.type.modelProperties, { thumbprint: {
                  serializedName: "properties.thumbprint",
                  type: {
                      name: "String"
                  }
              }, provisioningState: {
                  readOnly: true,
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, name: {
                  serializedName: "name",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.VpnClientConfiguration = {
      serializedName: "VpnClientConfiguration",
      type: {
          name: "Composite",
          className: "VpnClientConfiguration",
          modelProperties: {
              vpnClientAddressPool: {
                  serializedName: "vpnClientAddressPool",
                  type: {
                      name: "Composite",
                      className: "AddressSpace"
                  }
              },
              vpnClientRootCertificates: {
                  serializedName: "vpnClientRootCertificates",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "VpnClientRootCertificateElementType",
                          type: {
                              name: "Composite",
                              className: "VpnClientRootCertificate"
                          }
                      }
                  }
              },
              vpnClientRevokedCertificates: {
                  serializedName: "vpnClientRevokedCertificates",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "VpnClientRevokedCertificateElementType",
                          type: {
                              name: "Composite",
                              className: "VpnClientRevokedCertificate"
                          }
                      }
                  }
              },
              vpnClientProtocols: {
                  serializedName: "vpnClientProtocols",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "VpnClientProtocolElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              },
              radiusServerAddress: {
                  serializedName: "radiusServerAddress",
                  type: {
                      name: "String"
                  }
              },
              radiusServerSecret: {
                  serializedName: "radiusServerSecret",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.BgpSettings = {
      serializedName: "BgpSettings",
      type: {
          name: "Composite",
          className: "BgpSettings",
          modelProperties: {
              asn: {
                  serializedName: "asn",
                  type: {
                      name: "Number"
                  }
              },
              bgpPeeringAddress: {
                  serializedName: "bgpPeeringAddress",
                  type: {
                      name: "String"
                  }
              },
              peerWeight: {
                  serializedName: "peerWeight",
                  type: {
                      name: "Number"
                  }
              }
          }
      }
  };
  exports.BgpPeerStatus = {
      serializedName: "BgpPeerStatus",
      type: {
          name: "Composite",
          className: "BgpPeerStatus",
          modelProperties: {
              localAddress: {
                  readOnly: true,
                  serializedName: "localAddress",
                  type: {
                      name: "String"
                  }
              },
              neighbor: {
                  readOnly: true,
                  serializedName: "neighbor",
                  type: {
                      name: "String"
                  }
              },
              asn: {
                  readOnly: true,
                  serializedName: "asn",
                  type: {
                      name: "Number"
                  }
              },
              state: {
                  readOnly: true,
                  serializedName: "state",
                  type: {
                      name: "String"
                  }
              },
              connectedDuration: {
                  readOnly: true,
                  serializedName: "connectedDuration",
                  type: {
                      name: "String"
                  }
              },
              routesReceived: {
                  readOnly: true,
                  serializedName: "routesReceived",
                  type: {
                      name: "Number"
                  }
              },
              messagesSent: {
                  readOnly: true,
                  serializedName: "messagesSent",
                  type: {
                      name: "Number"
                  }
              },
              messagesReceived: {
                  readOnly: true,
                  serializedName: "messagesReceived",
                  type: {
                      name: "Number"
                  }
              }
          }
      }
  };
  exports.GatewayRoute = {
      serializedName: "GatewayRoute",
      type: {
          name: "Composite",
          className: "GatewayRoute",
          modelProperties: {
              localAddress: {
                  readOnly: true,
                  serializedName: "localAddress",
                  type: {
                      name: "String"
                  }
              },
              network: {
                  readOnly: true,
                  serializedName: "network",
                  type: {
                      name: "String"
                  }
              },
              nextHop: {
                  readOnly: true,
                  serializedName: "nextHop",
                  type: {
                      name: "String"
                  }
              },
              sourcePeer: {
                  readOnly: true,
                  serializedName: "sourcePeer",
                  type: {
                      name: "String"
                  }
              },
              origin: {
                  readOnly: true,
                  serializedName: "origin",
                  type: {
                      name: "String"
                  }
              },
              asPath: {
                  readOnly: true,
                  serializedName: "asPath",
                  type: {
                      name: "String"
                  }
              },
              weight: {
                  readOnly: true,
                  serializedName: "weight",
                  type: {
                      name: "Number"
                  }
              }
          }
      }
  };
  exports.VirtualNetworkGateway = {
      serializedName: "VirtualNetworkGateway",
      type: {
          name: "Composite",
          className: "VirtualNetworkGateway",
          modelProperties: __assign({}, exports.Resource.type.modelProperties, { ipConfigurations: {
                  serializedName: "properties.ipConfigurations",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "VirtualNetworkGatewayIPConfigurationElementType",
                          type: {
                              name: "Composite",
                              className: "VirtualNetworkGatewayIPConfiguration"
                          }
                      }
                  }
              }, gatewayType: {
                  serializedName: "properties.gatewayType",
                  type: {
                      name: "String"
                  }
              }, vpnType: {
                  serializedName: "properties.vpnType",
                  type: {
                      name: "String"
                  }
              }, enableBgp: {
                  serializedName: "properties.enableBgp",
                  type: {
                      name: "Boolean"
                  }
              }, activeActive: {
                  serializedName: "properties.activeActive",
                  type: {
                      name: "Boolean"
                  }
              }, gatewayDefaultSite: {
                  serializedName: "properties.gatewayDefaultSite",
                  type: {
                      name: "Composite",
                      className: "SubResource"
                  }
              }, sku: {
                  serializedName: "properties.sku",
                  type: {
                      name: "Composite",
                      className: "VirtualNetworkGatewaySku"
                  }
              }, vpnClientConfiguration: {
                  serializedName: "properties.vpnClientConfiguration",
                  type: {
                      name: "Composite",
                      className: "VpnClientConfiguration"
                  }
              }, bgpSettings: {
                  serializedName: "properties.bgpSettings",
                  type: {
                      name: "Composite",
                      className: "BgpSettings"
                  }
              }, resourceGuid: {
                  serializedName: "properties.resourceGuid",
                  type: {
                      name: "String"
                  }
              }, provisioningState: {
                  readOnly: true,
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.VpnClientParameters = {
      serializedName: "VpnClientParameters",
      type: {
          name: "Composite",
          className: "VpnClientParameters",
          modelProperties: {
              processorArchitecture: {
                  serializedName: "processorArchitecture",
                  type: {
                      name: "String"
                  }
              },
              authenticationMethod: {
                  serializedName: "authenticationMethod",
                  type: {
                      name: "String"
                  }
              },
              radiusServerAuthCertificate: {
                  serializedName: "radiusServerAuthCertificate",
                  type: {
                      name: "String"
                  }
              },
              clientRootCertificates: {
                  serializedName: "clientRootCertificates",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "stringElementType",
                          type: {
                              name: "String"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.BgpPeerStatusListResult = {
      serializedName: "BgpPeerStatusListResult",
      type: {
          name: "Composite",
          className: "BgpPeerStatusListResult",
          modelProperties: {
              value: {
                  serializedName: "value",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "BgpPeerStatusElementType",
                          type: {
                              name: "Composite",
                              className: "BgpPeerStatus"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.GatewayRouteListResult = {
      serializedName: "GatewayRouteListResult",
      type: {
          name: "Composite",
          className: "GatewayRouteListResult",
          modelProperties: {
              value: {
                  serializedName: "value",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "GatewayRouteElementType",
                          type: {
                              name: "Composite",
                              className: "GatewayRoute"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.TunnelConnectionHealth = {
      serializedName: "TunnelConnectionHealth",
      type: {
          name: "Composite",
          className: "TunnelConnectionHealth",
          modelProperties: {
              tunnel: {
                  readOnly: true,
                  serializedName: "tunnel",
                  type: {
                      name: "String"
                  }
              },
              connectionStatus: {
                  readOnly: true,
                  serializedName: "connectionStatus",
                  type: {
                      name: "String"
                  }
              },
              ingressBytesTransferred: {
                  readOnly: true,
                  serializedName: "ingressBytesTransferred",
                  type: {
                      name: "Number"
                  }
              },
              egressBytesTransferred: {
                  readOnly: true,
                  serializedName: "egressBytesTransferred",
                  type: {
                      name: "Number"
                  }
              },
              lastConnectionEstablishedUtcTime: {
                  readOnly: true,
                  serializedName: "lastConnectionEstablishedUtcTime",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.LocalNetworkGateway = {
      serializedName: "LocalNetworkGateway",
      type: {
          name: "Composite",
          className: "LocalNetworkGateway",
          modelProperties: __assign({}, exports.Resource.type.modelProperties, { localNetworkAddressSpace: {
                  serializedName: "properties.localNetworkAddressSpace",
                  type: {
                      name: "Composite",
                      className: "AddressSpace"
                  }
              }, gatewayIpAddress: {
                  serializedName: "properties.gatewayIpAddress",
                  type: {
                      name: "String"
                  }
              }, bgpSettings: {
                  serializedName: "properties.bgpSettings",
                  type: {
                      name: "Composite",
                      className: "BgpSettings"
                  }
              }, resourceGuid: {
                  serializedName: "properties.resourceGuid",
                  type: {
                      name: "String"
                  }
              }, provisioningState: {
                  readOnly: true,
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.IpsecPolicy = {
      serializedName: "IpsecPolicy",
      type: {
          name: "Composite",
          className: "IpsecPolicy",
          modelProperties: {
              saLifeTimeSeconds: {
                  required: true,
                  serializedName: "saLifeTimeSeconds",
                  type: {
                      name: "Number"
                  }
              },
              saDataSizeKilobytes: {
                  required: true,
                  serializedName: "saDataSizeKilobytes",
                  type: {
                      name: "Number"
                  }
              },
              ipsecEncryption: {
                  required: true,
                  serializedName: "ipsecEncryption",
                  type: {
                      name: "String"
                  }
              },
              ipsecIntegrity: {
                  required: true,
                  serializedName: "ipsecIntegrity",
                  type: {
                      name: "String"
                  }
              },
              ikeEncryption: {
                  required: true,
                  serializedName: "ikeEncryption",
                  type: {
                      name: "String"
                  }
              },
              ikeIntegrity: {
                  required: true,
                  serializedName: "ikeIntegrity",
                  type: {
                      name: "String"
                  }
              },
              dhGroup: {
                  required: true,
                  serializedName: "dhGroup",
                  type: {
                      name: "String"
                  }
              },
              pfsGroup: {
                  required: true,
                  serializedName: "pfsGroup",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.VirtualNetworkGatewayConnection = {
      serializedName: "VirtualNetworkGatewayConnection",
      type: {
          name: "Composite",
          className: "VirtualNetworkGatewayConnection",
          modelProperties: __assign({}, exports.Resource.type.modelProperties, { authorizationKey: {
                  serializedName: "properties.authorizationKey",
                  type: {
                      name: "String"
                  }
              }, virtualNetworkGateway1: {
                  required: true,
                  serializedName: "properties.virtualNetworkGateway1",
                  type: {
                      name: "Composite",
                      className: "VirtualNetworkGateway"
                  }
              }, virtualNetworkGateway2: {
                  serializedName: "properties.virtualNetworkGateway2",
                  type: {
                      name: "Composite",
                      className: "VirtualNetworkGateway"
                  }
              }, localNetworkGateway2: {
                  serializedName: "properties.localNetworkGateway2",
                  type: {
                      name: "Composite",
                      className: "LocalNetworkGateway"
                  }
              }, connectionType: {
                  required: true,
                  serializedName: "properties.connectionType",
                  type: {
                      name: "String"
                  }
              }, routingWeight: {
                  serializedName: "properties.routingWeight",
                  type: {
                      name: "Number"
                  }
              }, sharedKey: {
                  serializedName: "properties.sharedKey",
                  type: {
                      name: "String"
                  }
              }, connectionStatus: {
                  readOnly: true,
                  serializedName: "properties.connectionStatus",
                  type: {
                      name: "String"
                  }
              }, tunnelConnectionStatus: {
                  readOnly: true,
                  serializedName: "properties.tunnelConnectionStatus",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "TunnelConnectionHealthElementType",
                          type: {
                              name: "Composite",
                              className: "TunnelConnectionHealth"
                          }
                      }
                  }
              }, egressBytesTransferred: {
                  readOnly: true,
                  serializedName: "properties.egressBytesTransferred",
                  type: {
                      name: "Number"
                  }
              }, ingressBytesTransferred: {
                  readOnly: true,
                  serializedName: "properties.ingressBytesTransferred",
                  type: {
                      name: "Number"
                  }
              }, peer: {
                  serializedName: "properties.peer",
                  type: {
                      name: "Composite",
                      className: "SubResource"
                  }
              }, enableBgp: {
                  serializedName: "properties.enableBgp",
                  type: {
                      name: "Boolean"
                  }
              }, usePolicyBasedTrafficSelectors: {
                  serializedName: "properties.usePolicyBasedTrafficSelectors",
                  type: {
                      name: "Boolean"
                  }
              }, ipsecPolicies: {
                  serializedName: "properties.ipsecPolicies",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "IpsecPolicyElementType",
                          type: {
                              name: "Composite",
                              className: "IpsecPolicy"
                          }
                      }
                  }
              }, resourceGuid: {
                  serializedName: "properties.resourceGuid",
                  type: {
                      name: "String"
                  }
              }, provisioningState: {
                  readOnly: true,
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.ConnectionResetSharedKey = {
      serializedName: "ConnectionResetSharedKey",
      type: {
          name: "Composite",
          className: "ConnectionResetSharedKey",
          modelProperties: {
              keyLength: {
                  required: true,
                  serializedName: "keyLength",
                  constraints: {
                      InclusiveMaximum: 128,
                      InclusiveMinimum: 1
                  },
                  type: {
                      name: "Number"
                  }
              }
          }
      }
  };
  exports.ConnectionSharedKey = {
      serializedName: "ConnectionSharedKey",
      type: {
          name: "Composite",
          className: "ConnectionSharedKey",
          modelProperties: {
              value: {
                  required: true,
                  serializedName: "value",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.VirtualNetworkConnectionGatewayReference = {
      serializedName: "virtualNetworkConnectionGatewayReference",
      type: {
          name: "Composite",
          className: "VirtualNetworkConnectionGatewayReference",
          modelProperties: {
              id: {
                  required: true,
                  serializedName: "id",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.VirtualNetworkGatewayConnectionListEntity = {
      serializedName: "VirtualNetworkGatewayConnectionListEntity",
      type: {
          name: "Composite",
          className: "VirtualNetworkGatewayConnectionListEntity",
          modelProperties: __assign({}, exports.Resource.type.modelProperties, { authorizationKey: {
                  serializedName: "properties.authorizationKey",
                  type: {
                      name: "String"
                  }
              }, virtualNetworkGateway1: {
                  required: true,
                  serializedName: "properties.virtualNetworkGateway1",
                  type: {
                      name: "Composite",
                      className: "VirtualNetworkConnectionGatewayReference"
                  }
              }, virtualNetworkGateway2: {
                  serializedName: "properties.virtualNetworkGateway2",
                  type: {
                      name: "Composite",
                      className: "VirtualNetworkConnectionGatewayReference"
                  }
              }, localNetworkGateway2: {
                  serializedName: "properties.localNetworkGateway2",
                  type: {
                      name: "Composite",
                      className: "VirtualNetworkConnectionGatewayReference"
                  }
              }, connectionType: {
                  required: true,
                  serializedName: "properties.connectionType",
                  type: {
                      name: "String"
                  }
              }, routingWeight: {
                  serializedName: "properties.routingWeight",
                  type: {
                      name: "Number"
                  }
              }, sharedKey: {
                  serializedName: "properties.sharedKey",
                  type: {
                      name: "String"
                  }
              }, connectionStatus: {
                  readOnly: true,
                  serializedName: "properties.connectionStatus",
                  type: {
                      name: "String"
                  }
              }, tunnelConnectionStatus: {
                  readOnly: true,
                  serializedName: "properties.tunnelConnectionStatus",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "TunnelConnectionHealthElementType",
                          type: {
                              name: "Composite",
                              className: "TunnelConnectionHealth"
                          }
                      }
                  }
              }, egressBytesTransferred: {
                  readOnly: true,
                  serializedName: "properties.egressBytesTransferred",
                  type: {
                      name: "Number"
                  }
              }, ingressBytesTransferred: {
                  readOnly: true,
                  serializedName: "properties.ingressBytesTransferred",
                  type: {
                      name: "Number"
                  }
              }, peer: {
                  serializedName: "properties.peer",
                  type: {
                      name: "Composite",
                      className: "SubResource"
                  }
              }, enableBgp: {
                  serializedName: "properties.enableBgp",
                  type: {
                      name: "Boolean"
                  }
              }, usePolicyBasedTrafficSelectors: {
                  serializedName: "properties.usePolicyBasedTrafficSelectors",
                  type: {
                      name: "Boolean"
                  }
              }, ipsecPolicies: {
                  serializedName: "properties.ipsecPolicies",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "IpsecPolicyElementType",
                          type: {
                              name: "Composite",
                              className: "IpsecPolicy"
                          }
                      }
                  }
              }, resourceGuid: {
                  serializedName: "properties.resourceGuid",
                  type: {
                      name: "String"
                  }
              }, provisioningState: {
                  readOnly: true,
                  serializedName: "properties.provisioningState",
                  type: {
                      name: "String"
                  }
              }, etag: {
                  serializedName: "etag",
                  type: {
                      name: "String"
                  }
              } })
      }
  };
  exports.VpnDeviceScriptParameters = {
      serializedName: "VpnDeviceScriptParameters",
      type: {
          name: "Composite",
          className: "VpnDeviceScriptParameters",
          modelProperties: {
              vendor: {
                  serializedName: "vendor",
                  type: {
                      name: "String"
                  }
              },
              deviceFamily: {
                  serializedName: "deviceFamily",
                  type: {
                      name: "String"
                  }
              },
              firmwareVersion: {
                  serializedName: "firmwareVersion",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.LoadBalancersGetOptionalParams = {
      serializedName: "GetOptions",
      type: {
          name: "Composite",
          className: "LoadBalancersGetOptionalParams",
          modelProperties: {
              expand: {
                  serializedName: "$expand",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.InboundNatRulesGetOptionalParams = {
      serializedName: "GetOptions",
      type: {
          name: "Composite",
          className: "InboundNatRulesGetOptionalParams",
          modelProperties: {
              expand: {
                  serializedName: "$expand",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.NetworkInterfacesGetOptionalParams = {
      serializedName: "GetOptions",
      type: {
          name: "Composite",
          className: "NetworkInterfacesGetOptionalParams",
          modelProperties: {
              expand: {
                  serializedName: "$expand",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.NetworkInterfacesGetVirtualMachineScaleSetNetworkInterfaceOptionalParams = {
      serializedName: "GetVirtualMachineScaleSetNetworkInterfaceOptions",
      type: {
          name: "Composite",
          className: "NetworkInterfacesGetVirtualMachineScaleSetNetworkInterfaceOptionalParams",
          modelProperties: {
              expand: {
                  serializedName: "$expand",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.NetworkInterfacesListVirtualMachineScaleSetIpConfigurationsOptionalParams = {
      serializedName: "ListVirtualMachineScaleSetIpConfigurationsOptions",
      type: {
          name: "Composite",
          className: "NetworkInterfacesListVirtualMachineScaleSetIpConfigurationsOptionalParams",
          modelProperties: {
              expand: {
                  serializedName: "$expand",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.NetworkInterfacesGetVirtualMachineScaleSetIpConfigurationOptionalParams = {
      serializedName: "GetVirtualMachineScaleSetIpConfigurationOptions",
      type: {
          name: "Composite",
          className: "NetworkInterfacesGetVirtualMachineScaleSetIpConfigurationOptionalParams",
          modelProperties: {
              expand: {
                  serializedName: "$expand",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.NetworkSecurityGroupsGetOptionalParams = {
      serializedName: "GetOptions",
      type: {
          name: "Composite",
          className: "NetworkSecurityGroupsGetOptionalParams",
          modelProperties: {
              expand: {
                  serializedName: "$expand",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.PublicIPAddressesGetOptionalParams = {
      serializedName: "GetOptions",
      type: {
          name: "Composite",
          className: "PublicIPAddressesGetOptionalParams",
          modelProperties: {
              expand: {
                  serializedName: "$expand",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.PublicIPAddressesGetVirtualMachineScaleSetPublicIPAddressOptionalParams = {
      serializedName: "GetVirtualMachineScaleSetPublicIPAddressOptions",
      type: {
          name: "Composite",
          className: "PublicIPAddressesGetVirtualMachineScaleSetPublicIPAddressOptionalParams",
          modelProperties: {
              expand: {
                  serializedName: "$expand",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.RouteFiltersGetOptionalParams = {
      serializedName: "GetOptions",
      type: {
          name: "Composite",
          className: "RouteFiltersGetOptionalParams",
          modelProperties: {
              expand: {
                  serializedName: "$expand",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.RouteTablesGetOptionalParams = {
      serializedName: "GetOptions",
      type: {
          name: "Composite",
          className: "RouteTablesGetOptionalParams",
          modelProperties: {
              expand: {
                  serializedName: "$expand",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.VirtualNetworksGetOptionalParams = {
      serializedName: "GetOptions",
      type: {
          name: "Composite",
          className: "VirtualNetworksGetOptionalParams",
          modelProperties: {
              expand: {
                  serializedName: "$expand",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.VirtualNetworksCheckIPAddressAvailabilityOptionalParams = {
      serializedName: "CheckIPAddressAvailabilityOptions",
      type: {
          name: "Composite",
          className: "VirtualNetworksCheckIPAddressAvailabilityOptionalParams",
          modelProperties: {
              ipAddress: {
                  serializedName: "ipAddress",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.SubnetsGetOptionalParams = {
      serializedName: "GetOptions",
      type: {
          name: "Composite",
          className: "SubnetsGetOptionalParams",
          modelProperties: {
              expand: {
                  serializedName: "$expand",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.VirtualNetworkGatewaysResetOptionalParams = {
      serializedName: "ResetOptions",
      type: {
          name: "Composite",
          className: "VirtualNetworkGatewaysResetOptionalParams",
          modelProperties: {
              gatewayVip: {
                  serializedName: "gatewayVip",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.VirtualNetworkGatewaysGetBgpPeerStatusOptionalParams = {
      serializedName: "GetBgpPeerStatusOptions",
      type: {
          name: "Composite",
          className: "VirtualNetworkGatewaysGetBgpPeerStatusOptionalParams",
          modelProperties: {
              peer: {
                  serializedName: "peer",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.VirtualNetworkGatewaysBeginResetOptionalParams = {
      serializedName: "BeginResetOptions",
      type: {
          name: "Composite",
          className: "VirtualNetworkGatewaysBeginResetOptionalParams",
          modelProperties: {
              gatewayVip: {
                  serializedName: "gatewayVip",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.VirtualNetworkGatewaysBeginGetBgpPeerStatusOptionalParams = {
      serializedName: "BeginGetBgpPeerStatusOptions",
      type: {
          name: "Composite",
          className: "VirtualNetworkGatewaysBeginGetBgpPeerStatusOptionalParams",
          modelProperties: {
              peer: {
                  serializedName: "peer",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.LoadBalancerListResult = {
      serializedName: "LoadBalancerListResult",
      type: {
          name: "Composite",
          className: "LoadBalancerListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "LoadBalancerElementType",
                          type: {
                              name: "Composite",
                              className: "LoadBalancer"
                          }
                      }
                  }
              },
              nextLink: {
                  readOnly: true,
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.LoadBalancerBackendAddressPoolListResult = {
      serializedName: "LoadBalancerBackendAddressPoolListResult",
      type: {
          name: "Composite",
          className: "LoadBalancerBackendAddressPoolListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "BackendAddressPoolElementType",
                          type: {
                              name: "Composite",
                              className: "BackendAddressPool"
                          }
                      }
                  }
              },
              nextLink: {
                  readOnly: true,
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.LoadBalancerFrontendIPConfigurationListResult = {
      serializedName: "LoadBalancerFrontendIPConfigurationListResult",
      type: {
          name: "Composite",
          className: "LoadBalancerFrontendIPConfigurationListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "FrontendIPConfigurationElementType",
                          type: {
                              name: "Composite",
                              className: "FrontendIPConfiguration"
                          }
                      }
                  }
              },
              nextLink: {
                  readOnly: true,
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.InboundNatRuleListResult = {
      serializedName: "InboundNatRuleListResult",
      type: {
          name: "Composite",
          className: "InboundNatRuleListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "InboundNatRuleElementType",
                          type: {
                              name: "Composite",
                              className: "InboundNatRule"
                          }
                      }
                  }
              },
              nextLink: {
                  readOnly: true,
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.LoadBalancerLoadBalancingRuleListResult = {
      serializedName: "LoadBalancerLoadBalancingRuleListResult",
      type: {
          name: "Composite",
          className: "LoadBalancerLoadBalancingRuleListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "LoadBalancingRuleElementType",
                          type: {
                              name: "Composite",
                              className: "LoadBalancingRule"
                          }
                      }
                  }
              },
              nextLink: {
                  readOnly: true,
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.NetworkInterfaceListResult = {
      serializedName: "NetworkInterfaceListResult",
      type: {
          name: "Composite",
          className: "NetworkInterfaceListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "NetworkInterfaceElementType",
                          type: {
                              name: "Composite",
                              className: "NetworkInterface"
                          }
                      }
                  }
              },
              nextLink: {
                  readOnly: true,
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.LoadBalancerProbeListResult = {
      serializedName: "LoadBalancerProbeListResult",
      type: {
          name: "Composite",
          className: "LoadBalancerProbeListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "ProbeElementType",
                          type: {
                              name: "Composite",
                              className: "Probe"
                          }
                      }
                  }
              },
              nextLink: {
                  readOnly: true,
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.NetworkInterfaceIPConfigurationListResult = {
      serializedName: "NetworkInterfaceIPConfigurationListResult",
      type: {
          name: "Composite",
          className: "NetworkInterfaceIPConfigurationListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "NetworkInterfaceIPConfigurationElementType",
                          type: {
                              name: "Composite",
                              className: "NetworkInterfaceIPConfiguration"
                          }
                      }
                  }
              },
              nextLink: {
                  readOnly: true,
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.NetworkInterfaceLoadBalancerListResult = {
      serializedName: "NetworkInterfaceLoadBalancerListResult",
      type: {
          name: "Composite",
          className: "NetworkInterfaceLoadBalancerListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "LoadBalancerElementType",
                          type: {
                              name: "Composite",
                              className: "LoadBalancer"
                          }
                      }
                  }
              },
              nextLink: {
                  readOnly: true,
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.NetworkSecurityGroupListResult = {
      serializedName: "NetworkSecurityGroupListResult",
      type: {
          name: "Composite",
          className: "NetworkSecurityGroupListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "NetworkSecurityGroupElementType",
                          type: {
                              name: "Composite",
                              className: "NetworkSecurityGroup"
                          }
                      }
                  }
              },
              nextLink: {
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.SecurityRuleListResult = {
      serializedName: "SecurityRuleListResult",
      type: {
          name: "Composite",
          className: "SecurityRuleListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "SecurityRuleElementType",
                          type: {
                              name: "Composite",
                              className: "SecurityRule"
                          }
                      }
                  }
              },
              nextLink: {
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.NetworkWatcherListResult = {
      serializedName: "NetworkWatcherListResult",
      type: {
          name: "Composite",
          className: "NetworkWatcherListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "NetworkWatcherElementType",
                          type: {
                              name: "Composite",
                              className: "NetworkWatcher"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.PacketCaptureListResult = {
      serializedName: "PacketCaptureListResult",
      type: {
          name: "Composite",
          className: "PacketCaptureListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "PacketCaptureResultElementType",
                          type: {
                              name: "Composite",
                              className: "PacketCaptureResult"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.ConnectionMonitorListResult = {
      serializedName: "ConnectionMonitorListResult",
      type: {
          name: "Composite",
          className: "ConnectionMonitorListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "ConnectionMonitorResultElementType",
                          type: {
                              name: "Composite",
                              className: "ConnectionMonitorResult"
                          }
                      }
                  }
              }
          }
      }
  };
  exports.OperationListResult = {
      serializedName: "OperationListResult",
      type: {
          name: "Composite",
          className: "OperationListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "OperationElementType",
                          type: {
                              name: "Composite",
                              className: "Operation"
                          }
                      }
                  }
              },
              nextLink: {
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.PublicIPAddressListResult = {
      serializedName: "PublicIPAddressListResult",
      type: {
          name: "Composite",
          className: "PublicIPAddressListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "PublicIPAddressElementType",
                          type: {
                              name: "Composite",
                              className: "PublicIPAddress"
                          }
                      }
                  }
              },
              nextLink: {
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.RouteFilterListResult = {
      serializedName: "RouteFilterListResult",
      type: {
          name: "Composite",
          className: "RouteFilterListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "RouteFilterElementType",
                          type: {
                              name: "Composite",
                              className: "RouteFilter"
                          }
                      }
                  }
              },
              nextLink: {
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.RouteFilterRuleListResult = {
      serializedName: "RouteFilterRuleListResult",
      type: {
          name: "Composite",
          className: "RouteFilterRuleListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "RouteFilterRuleElementType",
                          type: {
                              name: "Composite",
                              className: "RouteFilterRule"
                          }
                      }
                  }
              },
              nextLink: {
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.RouteTableListResult = {
      serializedName: "RouteTableListResult",
      type: {
          name: "Composite",
          className: "RouteTableListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "RouteTableElementType",
                          type: {
                              name: "Composite",
                              className: "RouteTable"
                          }
                      }
                  }
              },
              nextLink: {
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.RouteListResult = {
      serializedName: "RouteListResult",
      type: {
          name: "Composite",
          className: "RouteListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "RouteElementType",
                          type: {
                              name: "Composite",
                              className: "Route"
                          }
                      }
                  }
              },
              nextLink: {
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.UsagesListResult = {
      serializedName: "UsagesListResult",
      type: {
          name: "Composite",
          className: "UsagesListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "UsageElementType",
                          type: {
                              name: "Composite",
                              className: "Usage"
                          }
                      }
                  }
              },
              nextLink: {
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.VirtualNetworkListResult = {
      serializedName: "VirtualNetworkListResult",
      type: {
          name: "Composite",
          className: "VirtualNetworkListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "VirtualNetworkElementType",
                          type: {
                              name: "Composite",
                              className: "VirtualNetwork"
                          }
                      }
                  }
              },
              nextLink: {
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.VirtualNetworkListUsageResult = {
      serializedName: "VirtualNetworkListUsageResult",
      type: {
          name: "Composite",
          className: "VirtualNetworkListUsageResult",
          modelProperties: {
              value: {
                  readOnly: true,
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "VirtualNetworkUsageElementType",
                          type: {
                              name: "Composite",
                              className: "VirtualNetworkUsage"
                          }
                      }
                  }
              },
              nextLink: {
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.SubnetListResult = {
      serializedName: "SubnetListResult",
      type: {
          name: "Composite",
          className: "SubnetListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "SubnetElementType",
                          type: {
                              name: "Composite",
                              className: "Subnet"
                          }
                      }
                  }
              },
              nextLink: {
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.VirtualNetworkPeeringListResult = {
      serializedName: "VirtualNetworkPeeringListResult",
      type: {
          name: "Composite",
          className: "VirtualNetworkPeeringListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "VirtualNetworkPeeringElementType",
                          type: {
                              name: "Composite",
                              className: "VirtualNetworkPeering"
                          }
                      }
                  }
              },
              nextLink: {
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.VirtualNetworkGatewayListResult = {
      serializedName: "VirtualNetworkGatewayListResult",
      type: {
          name: "Composite",
          className: "VirtualNetworkGatewayListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "VirtualNetworkGatewayElementType",
                          type: {
                              name: "Composite",
                              className: "VirtualNetworkGateway"
                          }
                      }
                  }
              },
              nextLink: {
                  readOnly: true,
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.VirtualNetworkGatewayListConnectionsResult = {
      serializedName: "VirtualNetworkGatewayListConnectionsResult",
      type: {
          name: "Composite",
          className: "VirtualNetworkGatewayListConnectionsResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "VirtualNetworkGatewayConnectionListEntityElementType",
                          type: {
                              name: "Composite",
                              className: "VirtualNetworkGatewayConnectionListEntity"
                          }
                      }
                  }
              },
              nextLink: {
                  readOnly: true,
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.VirtualNetworkGatewayConnectionListResult = {
      serializedName: "VirtualNetworkGatewayConnectionListResult",
      type: {
          name: "Composite",
          className: "VirtualNetworkGatewayConnectionListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "VirtualNetworkGatewayConnectionElementType",
                          type: {
                              name: "Composite",
                              className: "VirtualNetworkGatewayConnection"
                          }
                      }
                  }
              },
              nextLink: {
                  readOnly: true,
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  exports.LocalNetworkGatewayListResult = {
      serializedName: "LocalNetworkGatewayListResult",
      type: {
          name: "Composite",
          className: "LocalNetworkGatewayListResult",
          modelProperties: {
              value: {
                  serializedName: "",
                  type: {
                      name: "Sequence",
                      element: {
                          serializedName: "LocalNetworkGatewayElementType",
                          type: {
                              name: "Composite",
                              className: "LocalNetworkGateway"
                          }
                      }
                  }
              },
              nextLink: {
                  readOnly: true,
                  serializedName: "nextLink",
                  type: {
                      name: "String"
                  }
              }
          }
      }
  };
  //# sourceMappingURL=mappers.js.map