{
  "description": "HCloudRemediationTemplate is the Schema for the hcloudremediationtemplates API.",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "HCloudRemediationTemplateSpec defines the desired state of HCloudRemediationTemplate.",
      "properties": {
        "template": {
          "description": "HCloudRemediationTemplateResource describes the data needed to create a HCloudRemediation from a template.",
          "properties": {
            "spec": {
              "description": "Spec is the specification of the desired behavior of the HCloudRemediation.",
              "properties": {
                "strategy": {
                  "description": "Strategy field defines remediation strategy.",
                  "properties": {
                    "retryLimit": {
                      "description": "RetryLimit sets the maximum number of remediation retries. Zero retries if not set.",
                      "type": "integer"
                    },
                    "timeout": {
                      "description": "Timeout sets the timeout between remediation retries. It should be of the form \"10m\", or \"40s\".",
                      "type": "string"
                    },
                    "type": {
                      "default": "Reboot",
                      "description": "Type represents the type of the remediation strategy. At the moment, only \"Reboot\" is supported.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "timeout"
                  ],
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "required": [
            "spec"
          ],
          "type": "object",
          "additionalProperties": false
        }
      },
      "required": [
        "template"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "HCloudRemediationTemplateStatus defines the observed state of HCloudRemediationTemplate.",
      "properties": {
        "status": {
          "description": "HCloudRemediationStatus defines the observed state of HCloudRemediation",
          "properties": {
            "conditions": {
              "description": "Conditions defines current service state of the HCloudRemediation.",
              "items": {
                "description": "Condition defines an observation of a Cluster API resource operational state.",
                "properties": {
                  "lastTransitionTime": {
                    "description": "Last time the condition transitioned from one status to another.\nThis should be when the underlying condition changed. If that is not known, then using the time when\nthe API field changed is acceptable.",
                    "format": "date-time",
                    "type": "string"
                  },
                  "message": {
                    "description": "A human readable message indicating details about the transition.\nThis field may be empty.",
                    "type": "string"
                  },
                  "reason": {
                    "description": "The reason for the condition's last transition in CamelCase.\nThe specific API may choose whether or not this field is considered a guaranteed API.\nThis field may not be empty.",
                    "type": "string"
                  },
                  "severity": {
                    "description": "Severity provides an explicit classification of Reason code, so the users or machines can immediately\nunderstand the current situation and act accordingly.\nThe Severity field MUST be set only when Status=False.",
                    "type": "string"
                  },
                  "status": {
                    "description": "Status of the condition, one of True, False, Unknown.",
                    "type": "string"
                  },
                  "type": {
                    "description": "Type of condition in CamelCase or in foo.example.com/CamelCase.\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions\ncan be useful (see .node.status.conditions), the ability to deconflict is important.",
                    "type": "string"
                  }
                },
                "required": [
                  "lastTransitionTime",
                  "status",
                  "type"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "lastRemediated": {
              "description": "LastRemediated identifies when the host was last remediated",
              "format": "date-time",
              "type": "string"
            },
            "phase": {
              "description": "Phase represents the current phase of machine remediation.\nE.g. Pending, Running, Done etc.",
              "type": "string"
            },
            "retryCount": {
              "description": "RetryCount can be used as a counter during the remediation.\nField can hold number of reboots etc.",
              "type": "integer"
            }
          },
          "type": "object",
          "additionalProperties": false
        }
      },
      "required": [
        "status"
      ],
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
