{
  "description": "DockerClusterTemplate is the Schema for the dockerclustertemplates API.",
  "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/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "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/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "DockerClusterTemplateSpec defines the desired state of DockerClusterTemplate.",
      "properties": {
        "template": {
          "description": "DockerClusterTemplateResource describes the data needed to create a DockerCluster from a template.",
          "properties": {
            "spec": {
              "description": "DockerClusterSpec defines the desired state of DockerCluster.",
              "properties": {
                "controlPlaneEndpoint": {
                  "description": "ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.",
                  "properties": {
                    "host": {
                      "description": "Host is the hostname on which the API server is serving.",
                      "type": "string"
                    },
                    "port": {
                      "description": "Port is the port on which the API server is serving.",
                      "type": "integer"
                    }
                  },
                  "required": [
                    "host",
                    "port"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "failureDomains": {
                  "additionalProperties": {
                    "description": "FailureDomainSpec is the Schema for Cluster API failure domains. It allows controllers to understand how many failure domains a cluster can optionally span across.",
                    "properties": {
                      "attributes": {
                        "additionalProperties": {
                          "type": "string"
                        },
                        "description": "Attributes is a free form map of attributes an infrastructure provider might use or require.",
                        "type": "object"
                      },
                      "controlPlane": {
                        "description": "ControlPlane determines if this failure domain is suitable for use by control plane machines.",
                        "type": "boolean"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "description": "FailureDomains are not usulaly defined on the spec. The docker provider is special since failure domains don't mean anything in a local docker environment. Instead, the docker cluster controller will simply copy these into the Status and allow the Cluster API controllers to do what they will with the defined failure domains.",
                  "type": "object"
                },
                "loadBalancer": {
                  "description": "LoadBalancer allows defining configurations for the cluster load balancer.",
                  "properties": {
                    "imageRepository": {
                      "description": "ImageRepository sets the container registry to pull the haproxy image from. if not set, \"kindest\" will be used instead.",
                      "type": "string"
                    },
                    "imageTag": {
                      "description": "ImageTag allows to specify a tag for the haproxy image. if not set, \"v20210715-a6da3463\" will be used instead.",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "required": [
            "spec"
          ],
          "type": "object",
          "additionalProperties": false
        }
      },
      "required": [
        "template"
      ],
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
