{
  "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": {
            "metadata": {
              "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
              "properties": {
                "annotations": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations",
                  "type": "object"
                },
                "labels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels",
                  "type": "object"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "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 usually not defined in 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"
}
