{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure-site-recovery/json-schema/microsoft-azure-site-recovery-network-mapping-schema.json",
  "title": "NetworkMapping",
  "description": "Network Mapping model. Ideally it should have been possible to inherit this class from prev version in InheritedModels as long as there is no difference in structure or method signature. Since there were no base Models for certain fields and methods viz NetworkMappingProperties and Load with required return type, the class has been introduced in its entirety with references to base models to facilitate extensions in subsequent versions.",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-azure-site-recovery-replicationnetworkmappings-api-openapi.yml#/components/schemas/NetworkMapping",
  "type": "object",
  "properties": {
    "properties": {
      "$ref": "#/$defs/NetworkMappingProperties",
      "description": "The Network Mapping Properties."
    },
    "location": {
      "type": "string",
      "description": "Resource Location"
    }
  },
  "allOf": [
    {
      "$ref": "#/$defs/ProxyResource"
    }
  ],
  "$defs": {
    "NetworkMappingFabricSpecificSettings": {
      "type": "object",
      "description": "Network Mapping fabric specific settings.",
      "properties": {
        "instanceType": {
          "type": "string",
          "description": "Gets the Instance type."
        }
      },
      "required": [
        "instanceType"
      ]
    },
    "NetworkMappingProperties": {
      "type": "object",
      "description": "Network Mapping Properties.",
      "properties": {
        "state": {
          "type": "string",
          "description": "The pairing state for network mapping."
        },
        "primaryNetworkFriendlyName": {
          "type": "string",
          "description": "The primary network friendly name."
        },
        "primaryNetworkId": {
          "type": "string",
          "description": "The primary network id for network mapping."
        },
        "primaryFabricFriendlyName": {
          "type": "string",
          "description": "The primary fabric friendly name."
        },
        "recoveryNetworkFriendlyName": {
          "type": "string",
          "description": "The recovery network friendly name."
        },
        "recoveryNetworkId": {
          "type": "string",
          "description": "The recovery network id for network mapping."
        },
        "recoveryFabricArmId": {
          "type": "string",
          "description": "The recovery fabric ARM id."
        },
        "recoveryFabricFriendlyName": {
          "type": "string",
          "description": "The recovery fabric friendly name."
        },
        "fabricSpecificSettings": {
          "$ref": "#/$defs/NetworkMappingFabricSpecificSettings",
          "description": "The fabric specific settings."
        }
      }
    },
    "ProxyResource": {
      "type": "object",
      "title": "Proxy Resource",
      "description": "The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location",
      "allOf": [
        {
          "$ref": "#/$defs/Resource"
        }
      ]
    },
    "Resource": {
      "type": "object",
      "title": "Resource",
      "description": "Common fields that are returned in the response for all Azure Resource Manager resources",
      "properties": {
        "id": {
          "type": "string",
          "format": "arm-id",
          "description": "Fully qualified resource ID for the resource. E.g. \"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}\"",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "The name of the resource",
          "readOnly": true
        },
        "type": {
          "type": "string",
          "description": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"",
          "readOnly": true
        },
        "systemData": {
          "$ref": "#/$defs/systemData",
          "description": "Azure Resource Manager metadata containing createdBy and modifiedBy information.",
          "readOnly": true
        }
      },
      "x-ms-azure-resource": true
    }
  }
}