{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "apiVersion": {
      "type": "string"
    },
    "kind": {
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "properties": {
        "availabilityGates": {
          "items": {
            "properties": {
              "conditionType": {
                "maxLength": 316,
                "minLength": 1,
                "pattern": "^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$",
                "type": "string"
              },
              "polarity": {
                "enum": [
                  "Positive",
                  "Negative"
                ],
                "type": "string"
              }
            },
            "required": [
              "conditionType"
            ],
            "type": "object"
          },
          "maxItems": 32,
          "type": "array",
          "x-kubernetes-list-map-keys": [
            "conditionType"
          ],
          "x-kubernetes-list-type": "map"
        },
        "clusterNetwork": {
          "properties": {
            "apiServerPort": {
              "format": "int32",
              "type": "integer"
            },
            "pods": {
              "properties": {
                "cidrBlocks": {
                  "items": {
                    "maxLength": 43,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 100,
                  "type": "array"
                }
              },
              "required": [
                "cidrBlocks"
              ],
              "type": "object"
            },
            "serviceDomain": {
              "maxLength": 253,
              "minLength": 1,
              "type": "string"
            },
            "services": {
              "properties": {
                "cidrBlocks": {
                  "items": {
                    "maxLength": 43,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 100,
                  "type": "array"
                }
              },
              "required": [
                "cidrBlocks"
              ],
              "type": "object"
            }
          },
          "type": "object"
        },
        "controlPlaneEndpoint": {
          "properties": {
            "host": {
              "maxLength": 512,
              "type": "string"
            },
            "port": {
              "format": "int32",
              "type": "integer"
            }
          },
          "required": [
            "host",
            "port"
          ],
          "type": "object"
        },
        "controlPlaneRef": {
          "properties": {
            "apiVersion": {
              "type": "string"
            },
            "fieldPath": {
              "type": "string"
            },
            "kind": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "namespace": {
              "type": "string"
            },
            "resourceVersion": {
              "type": "string"
            },
            "uid": {
              "type": "string"
            }
          },
          "type": "object",
          "x-kubernetes-map-type": "atomic"
        },
        "infrastructureRef": {
          "properties": {
            "apiVersion": {
              "type": "string"
            },
            "fieldPath": {
              "type": "string"
            },
            "kind": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "namespace": {
              "type": "string"
            },
            "resourceVersion": {
              "type": "string"
            },
            "uid": {
              "type": "string"
            }
          },
          "type": "object",
          "x-kubernetes-map-type": "atomic"
        },
        "paused": {
          "type": "boolean"
        },
        "topology": {
          "properties": {
            "class": {
              "maxLength": 253,
              "minLength": 1,
              "type": "string"
            },
            "classNamespace": {
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$",
              "type": "string"
            },
            "controlPlane": {
              "properties": {
                "machineHealthCheck": {
                  "properties": {
                    "enable": {
                      "type": "boolean"
                    },
                    "maxUnhealthy": {
                      "anyOf": [
                        {
                          "type": "integer"
                        },
                        {
                          "type": "string"
                        }
                      ],
                      "x-kubernetes-int-or-string": true
                    },
                    "nodeStartupTimeout": {
                      "type": "string"
                    },
                    "remediationTemplate": {
                      "properties": {
                        "apiVersion": {
                          "type": "string"
                        },
                        "fieldPath": {
                          "type": "string"
                        },
                        "kind": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "namespace": {
                          "type": "string"
                        },
                        "resourceVersion": {
                          "type": "string"
                        },
                        "uid": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "x-kubernetes-map-type": "atomic"
                    },
                    "unhealthyConditions": {
                      "items": {
                        "properties": {
                          "status": {
                            "minLength": 1,
                            "type": "string"
                          },
                          "timeout": {
                            "type": "string"
                          },
                          "type": {
                            "minLength": 1,
                            "type": "string"
                          }
                        },
                        "required": [
                          "status",
                          "timeout",
                          "type"
                        ],
                        "type": "object"
                      },
                      "maxItems": 100,
                      "type": "array"
                    },
                    "unhealthyRange": {
                      "maxLength": 32,
                      "minLength": 1,
                      "pattern": "^\\[[0-9]+-[0-9]+\\]$",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "metadata": {
                  "properties": {
                    "annotations": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "type": "object"
                    },
                    "labels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "nodeDeletionTimeout": {
                  "type": "string"
                },
                "nodeDrainTimeout": {
                  "type": "string"
                },
                "nodeVolumeDetachTimeout": {
                  "type": "string"
                },
                "readinessGates": {
                  "items": {
                    "properties": {
                      "conditionType": {
                        "maxLength": 316,
                        "minLength": 1,
                        "pattern": "^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$",
                        "type": "string"
                      },
                      "polarity": {
                        "enum": [
                          "Positive",
                          "Negative"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "conditionType"
                    ],
                    "type": "object"
                  },
                  "maxItems": 32,
                  "type": "array",
                  "x-kubernetes-list-map-keys": [
                    "conditionType"
                  ],
                  "x-kubernetes-list-type": "map"
                },
                "replicas": {
                  "format": "int32",
                  "type": "integer"
                },
                "variables": {
                  "properties": {
                    "overrides": {
                      "items": {
                        "properties": {
                          "definitionFrom": {
                            "maxLength": 256,
                            "type": "string"
                          },
                          "name": {
                            "maxLength": 256,
                            "minLength": 1,
                            "type": "string"
                          },
                          "value": {
                            "x-kubernetes-preserve-unknown-fields": true
                          }
                        },
                        "required": [
                          "name",
                          "value"
                        ],
                        "type": "object"
                      },
                      "maxItems": 1000,
                      "type": "array",
                      "x-kubernetes-list-map-keys": [
                        "name"
                      ],
                      "x-kubernetes-list-type": "map"
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            },
            "rolloutAfter": {
              "format": "date-time",
              "type": "string"
            },
            "variables": {
              "items": {
                "properties": {
                  "definitionFrom": {
                    "maxLength": 256,
                    "type": "string"
                  },
                  "name": {
                    "maxLength": 256,
                    "minLength": 1,
                    "type": "string"
                  },
                  "value": {
                    "x-kubernetes-preserve-unknown-fields": true
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "type": "object"
              },
              "maxItems": 1000,
              "type": "array",
              "x-kubernetes-list-map-keys": [
                "name"
              ],
              "x-kubernetes-list-type": "map"
            },
            "version": {
              "maxLength": 256,
              "minLength": 1,
              "type": "string"
            },
            "workers": {
              "properties": {
                "machineDeployments": {
                  "items": {
                    "properties": {
                      "class": {
                        "maxLength": 256,
                        "minLength": 1,
                        "type": "string"
                      },
                      "failureDomain": {
                        "maxLength": 256,
                        "minLength": 1,
                        "type": "string"
                      },
                      "machineHealthCheck": {
                        "properties": {
                          "enable": {
                            "type": "boolean"
                          },
                          "maxUnhealthy": {
                            "anyOf": [
                              {
                                "type": "integer"
                              },
                              {
                                "type": "string"
                              }
                            ],
                            "x-kubernetes-int-or-string": true
                          },
                          "nodeStartupTimeout": {
                            "type": "string"
                          },
                          "remediationTemplate": {
                            "properties": {
                              "apiVersion": {
                                "type": "string"
                              },
                              "fieldPath": {
                                "type": "string"
                              },
                              "kind": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "namespace": {
                                "type": "string"
                              },
                              "resourceVersion": {
                                "type": "string"
                              },
                              "uid": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "x-kubernetes-map-type": "atomic"
                          },
                          "unhealthyConditions": {
                            "items": {
                              "properties": {
                                "status": {
                                  "minLength": 1,
                                  "type": "string"
                                },
                                "timeout": {
                                  "type": "string"
                                },
                                "type": {
                                  "minLength": 1,
                                  "type": "string"
                                }
                              },
                              "required": [
                                "status",
                                "timeout",
                                "type"
                              ],
                              "type": "object"
                            },
                            "maxItems": 100,
                            "type": "array"
                          },
                          "unhealthyRange": {
                            "maxLength": 32,
                            "minLength": 1,
                            "pattern": "^\\[[0-9]+-[0-9]+\\]$",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "metadata": {
                        "properties": {
                          "annotations": {
                            "additionalProperties": {
                              "type": "string"
                            },
                            "type": "object"
                          },
                          "labels": {
                            "additionalProperties": {
                              "type": "string"
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "minReadySeconds": {
                        "format": "int32",
                        "type": "integer"
                      },
                      "name": {
                        "maxLength": 63,
                        "minLength": 1,
                        "type": "string"
                      },
                      "nodeDeletionTimeout": {
                        "type": "string"
                      },
                      "nodeDrainTimeout": {
                        "type": "string"
                      },
                      "nodeVolumeDetachTimeout": {
                        "type": "string"
                      },
                      "readinessGates": {
                        "items": {
                          "properties": {
                            "conditionType": {
                              "maxLength": 316,
                              "minLength": 1,
                              "pattern": "^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$",
                              "type": "string"
                            },
                            "polarity": {
                              "enum": [
                                "Positive",
                                "Negative"
                              ],
                              "type": "string"
                            }
                          },
                          "required": [
                            "conditionType"
                          ],
                          "type": "object"
                        },
                        "maxItems": 32,
                        "type": "array",
                        "x-kubernetes-list-map-keys": [
                          "conditionType"
                        ],
                        "x-kubernetes-list-type": "map"
                      },
                      "replicas": {
                        "format": "int32",
                        "type": "integer"
                      },
                      "strategy": {
                        "properties": {
                          "remediation": {
                            "properties": {
                              "maxInFlight": {
                                "anyOf": [
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "x-kubernetes-int-or-string": true
                              }
                            },
                            "type": "object"
                          },
                          "rollingUpdate": {
                            "properties": {
                              "deletePolicy": {
                                "enum": [
                                  "Random",
                                  "Newest",
                                  "Oldest"
                                ],
                                "type": "string"
                              },
                              "maxSurge": {
                                "anyOf": [
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "x-kubernetes-int-or-string": true
                              },
                              "maxUnavailable": {
                                "anyOf": [
                                  {
                                    "type": "integer"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ],
                                "x-kubernetes-int-or-string": true
                              }
                            },
                            "type": "object"
                          },
                          "type": {
                            "enum": [
                              "RollingUpdate",
                              "OnDelete"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "variables": {
                        "properties": {
                          "overrides": {
                            "items": {
                              "properties": {
                                "definitionFrom": {
                                  "maxLength": 256,
                                  "type": "string"
                                },
                                "name": {
                                  "maxLength": 256,
                                  "minLength": 1,
                                  "type": "string"
                                },
                                "value": {
                                  "x-kubernetes-preserve-unknown-fields": true
                                }
                              },
                              "required": [
                                "name",
                                "value"
                              ],
                              "type": "object"
                            },
                            "maxItems": 1000,
                            "type": "array",
                            "x-kubernetes-list-map-keys": [
                              "name"
                            ],
                            "x-kubernetes-list-type": "map"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "required": [
                      "class",
                      "name"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2000,
                  "type": "array",
                  "x-kubernetes-list-map-keys": [
                    "name"
                  ],
                  "x-kubernetes-list-type": "map"
                },
                "machinePools": {
                  "items": {
                    "properties": {
                      "class": {
                        "maxLength": 256,
                        "minLength": 1,
                        "type": "string"
                      },
                      "failureDomains": {
                        "items": {
                          "maxLength": 256,
                          "minLength": 1,
                          "type": "string"
                        },
                        "maxItems": 100,
                        "type": "array"
                      },
                      "metadata": {
                        "properties": {
                          "annotations": {
                            "additionalProperties": {
                              "type": "string"
                            },
                            "type": "object"
                          },
                          "labels": {
                            "additionalProperties": {
                              "type": "string"
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "minReadySeconds": {
                        "format": "int32",
                        "type": "integer"
                      },
                      "name": {
                        "maxLength": 63,
                        "minLength": 1,
                        "type": "string"
                      },
                      "nodeDeletionTimeout": {
                        "type": "string"
                      },
                      "nodeDrainTimeout": {
                        "type": "string"
                      },
                      "nodeVolumeDetachTimeout": {
                        "type": "string"
                      },
                      "replicas": {
                        "format": "int32",
                        "type": "integer"
                      },
                      "variables": {
                        "properties": {
                          "overrides": {
                            "items": {
                              "properties": {
                                "definitionFrom": {
                                  "maxLength": 256,
                                  "type": "string"
                                },
                                "name": {
                                  "maxLength": 256,
                                  "minLength": 1,
                                  "type": "string"
                                },
                                "value": {
                                  "x-kubernetes-preserve-unknown-fields": true
                                }
                              },
                              "required": [
                                "name",
                                "value"
                              ],
                              "type": "object"
                            },
                            "maxItems": 1000,
                            "type": "array",
                            "x-kubernetes-list-map-keys": [
                              "name"
                            ],
                            "x-kubernetes-list-type": "map"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "required": [
                      "class",
                      "name"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2000,
                  "type": "array",
                  "x-kubernetes-list-map-keys": [
                    "name"
                  ],
                  "x-kubernetes-list-type": "map"
                }
              },
              "type": "object"
            }
          },
          "required": [
            "class",
            "version"
          ],
          "type": "object"
        }
      },
      "type": "object"
    },
    "status": {
      "properties": {
        "conditions": {
          "items": {
            "properties": {
              "lastTransitionTime": {
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "maxLength": 10240,
                "minLength": 1,
                "type": "string"
              },
              "reason": {
                "maxLength": 256,
                "minLength": 1,
                "type": "string"
              },
              "severity": {
                "maxLength": 32,
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "type": {
                "maxLength": 256,
                "minLength": 1,
                "type": "string"
              }
            },
            "required": [
              "lastTransitionTime",
              "status",
              "type"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "controlPlaneReady": {
          "type": "boolean"
        },
        "failureDomains": {
          "additionalProperties": {
            "properties": {
              "attributes": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              "controlPlane": {
                "type": "boolean"
              }
            },
            "type": "object"
          },
          "type": "object"
        },
        "failureMessage": {
          "maxLength": 10240,
          "minLength": 1,
          "type": "string"
        },
        "failureReason": {
          "type": "string"
        },
        "infrastructureReady": {
          "type": "boolean"
        },
        "observedGeneration": {
          "format": "int64",
          "type": "integer"
        },
        "phase": {
          "enum": [
            "Pending",
            "Provisioning",
            "Provisioned",
            "Deleting",
            "Failed",
            "Unknown"
          ],
          "type": "string"
        },
        "v1beta2": {
          "properties": {
            "conditions": {
              "items": {
                "properties": {
                  "lastTransitionTime": {
                    "format": "date-time",
                    "type": "string"
                  },
                  "message": {
                    "maxLength": 32768,
                    "type": "string"
                  },
                  "observedGeneration": {
                    "format": "int64",
                    "minimum": 0,
                    "type": "integer"
                  },
                  "reason": {
                    "maxLength": 1024,
                    "minLength": 1,
                    "pattern": "^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$",
                    "type": "string"
                  },
                  "status": {
                    "enum": [
                      "True",
                      "False",
                      "Unknown"
                    ],
                    "type": "string"
                  },
                  "type": {
                    "maxLength": 316,
                    "pattern": "^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$",
                    "type": "string"
                  }
                },
                "required": [
                  "lastTransitionTime",
                  "message",
                  "reason",
                  "status",
                  "type"
                ],
                "type": "object"
              },
              "maxItems": 32,
              "type": "array",
              "x-kubernetes-list-map-keys": [
                "type"
              ],
              "x-kubernetes-list-type": "map"
            },
            "controlPlane": {
              "properties": {
                "availableReplicas": {
                  "format": "int32",
                  "type": "integer"
                },
                "desiredReplicas": {
                  "format": "int32",
                  "type": "integer"
                },
                "readyReplicas": {
                  "format": "int32",
                  "type": "integer"
                },
                "replicas": {
                  "format": "int32",
                  "type": "integer"
                },
                "upToDateReplicas": {
                  "format": "int32",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "workers": {
              "properties": {
                "availableReplicas": {
                  "format": "int32",
                  "type": "integer"
                },
                "desiredReplicas": {
                  "format": "int32",
                  "type": "integer"
                },
                "readyReplicas": {
                  "format": "int32",
                  "type": "integer"
                },
                "replicas": {
                  "format": "int32",
                  "type": "integer"
                },
                "upToDateReplicas": {
                  "format": "int32",
                  "type": "integer"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    }
  },
  "type": "object"
}
