{
  "description": "HealthCheck is the Schema for the HealthChecks 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": "HealthCheckSpec defines the desired state of HealthCheck.\n\nA complex type that contains information about one health check that is associated\nwith the current Amazon Web Services account.",
      "properties": {
        "healthCheckConfig": {
          "description": "A complex type that contains settings for a new health check.",
          "properties": {
            "alarmIdentifier": {
              "description": "A complex type that identifies the CloudWatch alarm that you want Amazon\nRoute 53 health checkers to use to determine whether the specified health\ncheck is healthy.",
              "properties": {
                "name": {
                  "type": "string"
                },
                "region": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "childHealthChecks": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "disabled": {
              "type": "boolean"
            },
            "enableSNI": {
              "type": "boolean"
            },
            "failureThreshold": {
              "format": "int64",
              "type": "integer"
            },
            "fullyQualifiedDomainName": {
              "type": "string"
            },
            "healthThreshold": {
              "format": "int64",
              "type": "integer"
            },
            "insufficientDataHealthStatus": {
              "type": "string"
            },
            "inverted": {
              "type": "boolean"
            },
            "ipAddress": {
              "type": "string"
            },
            "measureLatency": {
              "type": "boolean"
            },
            "port": {
              "format": "int64",
              "type": "integer"
            },
            "regions": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "requestInterval": {
              "format": "int64",
              "type": "integer"
            },
            "resourcePath": {
              "type": "string"
            },
            "routingControlARN": {
              "type": "string"
            },
            "searchString": {
              "type": "string"
            },
            "type": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "tags": {
          "description": "A complex type that contains a list of the tags that you want to add to the\nspecified health check or hosted zone and/or the tags that you want to edit\nValue for.\n\nYou can add a maximum of 10 tags to a health check or a hosted zone.",
          "items": {
            "description": "A complex type that contains information about a tag that you want to add\nor edit for the specified health check or hosted zone.",
            "properties": {
              "key": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        }
      },
      "required": [
        "healthCheckConfig"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "HealthCheckStatus defines the observed state of HealthCheck",
      "properties": {
        "ackResourceMetadata": {
          "description": "All CRs managed by ACK have a common `Status.ACKResourceMetadata` member\nthat is used to contain resource sync state, account ownership,\nconstructed ARN for the resource",
          "properties": {
            "arn": {
              "description": "ARN is the Amazon Resource Name for the resource. This is a\nglobally-unique identifier and is set only by the ACK service controller\nonce the controller has orchestrated the creation of the resource OR\nwhen it has verified that an \"adopted\" resource (a resource where the\nARN annotation was set by the Kubernetes user on the CR) exists and\nmatches the supplied CR's Spec field values.\nhttps://github.com/aws/aws-controllers-k8s/issues/270",
              "type": "string"
            },
            "ownerAccountID": {
              "description": "OwnerAccountID is the AWS Account ID of the account that owns the\nbackend AWS service API resource.",
              "type": "string"
            },
            "region": {
              "description": "Region is the AWS region in which the resource exists or will exist.",
              "type": "string"
            }
          },
          "required": [
            "ownerAccountID",
            "region"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "callerReference": {
          "description": "A unique string that you specified when you created the health check.",
          "type": "string"
        },
        "cloudWatchAlarmConfiguration": {
          "description": "A complex type that contains information about the CloudWatch alarm that\nAmazon Route 53 is monitoring for this health check.",
          "properties": {
            "comparisonOperator": {
              "type": "string"
            },
            "dimensions": {
              "items": {
                "description": "For the metric that the CloudWatch alarm is associated with, a complex type\nthat contains information about one dimension.",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "evaluationPeriods": {
              "format": "int64",
              "type": "integer"
            },
            "metricName": {
              "type": "string"
            },
            "namespace": {
              "type": "string"
            },
            "period": {
              "format": "int64",
              "type": "integer"
            },
            "statistic": {
              "type": "string"
            },
            "threshold": {
              "type": "number"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "conditions": {
          "description": "All CRs managed by ACK have a common `Status.Conditions` member that\ncontains a collection of `ackv1alpha1.Condition` objects that describe\nthe various terminal states of the CR and its backend AWS service API\nresource",
          "items": {
            "description": "Condition is the common struct used by all CRDs managed by ACK service\ncontrollers to indicate terminal states  of the CR and its backend AWS\nservice API resource",
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A human readable message indicating details about the transition.",
                "type": "string"
              },
              "reason": {
                "description": "The reason for the condition's last transition.",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition, one of True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type is the type of the Condition",
                "type": "string"
              }
            },
            "required": [
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "healthCheckVersion": {
          "description": "The version of the health check. You can optionally pass this value in a\ncall to UpdateHealthCheck to prevent overwriting another change to the health\ncheck.",
          "format": "int64",
          "type": "integer"
        },
        "id": {
          "description": "The identifier that Amazon Route 53 assigned to the health check when you\ncreated it. When you add or update a resource record set, you use this value\nto specify which health check to use. The value can be up to 64 characters\nlong.",
          "type": "string"
        },
        "linkedService": {
          "description": "If the health check was created by another service, the service that created\nthe health check. When a health check is created by another service, you\ncan't edit or delete it using Amazon Route 53.",
          "properties": {
            "description": {
              "type": "string"
            },
            "servicePrincipal": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
