{
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources",
      "type": "string"
    },
    "bastion": {
      "properties": {
        "id": {
          "type": "string"
        },
        "identity": {
          "type": "string"
        },
        "image": {
          "description": "Storage profile",
          "properties": {
            "offer": {
              "type": "string"
            },
            "publisher": {
              "type": "string"
            },
            "sku": {
              "type": "string"
            },
            "version": {
              "type": "string"
            }
          },
          "required": [
            "publisher",
            "offer",
            "sku",
            "version"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "name": {
          "type": "string"
        },
        "osDisk": {
          "properties": {
            "diskSizeGB": {
              "format": "int32",
              "type": "integer"
            },
            "managedDisk": {
              "properties": {
                "storageAccountType": {
                  "type": "string"
                }
              },
              "required": [
                "storageAccountType"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "osType": {
              "type": "string"
            }
          },
          "required": [
            "osType",
            "managedDisk",
            "diskSizeGB"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "startupScript": {
          "type": "string"
        },
        "vmSize": {
          "description": "Hardware profile",
          "type": "string"
        },
        "vmState": {
          "description": "State - The provisioning state, which only appears in the response.",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "network": {
      "properties": {
        "apiServerIp": {
          "description": "APIServerIP is the Kubernetes API server public IP address.",
          "properties": {
            "dnsName": {
              "type": "string"
            },
            "id": {
              "type": "string"
            },
            "ipAddress": {
              "type": "string"
            },
            "name": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "apiServerLb": {
          "description": "APIServerLB is the Kubernetes API server load balancer.",
          "properties": {
            "backendPool": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "frontendIpConfig": {
              "type": "object"
            },
            "id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "sku": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "securityGroups": {
          "description": "SecurityGroups is a map from the role/kind of the security group to its unique name, if any.",
          "type": "object"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  }
}
