{
 "additionalProperties": false,
 "createOnlyProperties": [
  "/properties/HealthCheckConfig/Type",
  "/properties/HealthCheckConfig/MeasureLatency",
  "/properties/HealthCheckConfig/RequestInterval"
 ],
 "definitions": {
  "AlarmIdentifier": {
   "additionalProperties": false,
   "properties": {
    "Name": {
     "maxLength": 256,
     "minLength": 1,
     "type": "string"
    },
    "Region": {
     "enum": [
      "af-south-1",
      "ap-east-1",
      "ap-east-2",
      "ap-northeast-1",
      "ap-northeast-2",
      "ap-northeast-3",
      "ap-south-1",
      "ap-south-2",
      "ap-southeast-1",
      "ap-southeast-2",
      "ap-southeast-3",
      "ap-southeast-4",
      "ap-southeast-5",
      "ap-southeast-6",
      "ap-southeast-7",
      "ca-central-1",
      "ca-west-1",
      "cn-north-1",
      "cn-northwest-1",
      "eu-central-1",
      "eu-central-2",
      "eu-isoe-west-1",
      "eu-north-1",
      "eu-south-1",
      "eu-south-2",
      "eu-west-1",
      "eu-west-2",
      "eu-west-3",
      "eusc-de-east-1",
      "il-central-1",
      "me-central-1",
      "me-south-1",
      "mx-central-1",
      "sa-east-1",
      "us-east-1",
      "us-east-2",
      "us-gov-east-1",
      "us-gov-west-1",
      "us-iso-east-1",
      "us-iso-west-1",
      "us-isob-east-1",
      "us-isob-west-1",
      "us-isof-east-1",
      "us-isof-south-1",
      "us-west-1",
      "us-west-2"
     ],
     "maxLength": 64,
     "minLength": 1,
     "type": "string"
    }
   },
   "required": [
    "Name",
    "Region"
   ],
   "type": "object"
  },
  "HealthCheckTag": {
   "additionalProperties": false,
   "properties": {
    "Key": {
     "maxLength": 128,
     "type": "string"
    },
    "Value": {
     "maxLength": 256,
     "type": "string"
    }
   },
   "required": [
    "Value",
    "Key"
   ],
   "type": "object"
  }
 },
 "primaryIdentifier": [
  "/properties/HealthCheckId"
 ],
 "properties": {
  "HealthCheckConfig": {
   "additionalProperties": false,
   "properties": {
    "AlarmIdentifier": {
     "$ref": "#/definitions/AlarmIdentifier"
    },
    "ChildHealthChecks": {
     "insertionOrder": false,
     "items": {
      "maxLength": 64,
      "minLength": 0,
      "type": "string"
     },
     "maxItems": 256,
     "minItems": 0,
     "type": "array"
    },
    "EnableSNI": {
     "type": "boolean"
    },
    "FailureThreshold": {
     "maximum": 10,
     "minimum": 1,
     "type": "integer"
    },
    "FullyQualifiedDomainName": {
     "maxLength": 255,
     "minLength": 0,
     "type": "string"
    },
    "HealthThreshold": {
     "maximum": 256,
     "minimum": 0,
     "type": "integer"
    },
    "IPAddress": {
     "maxLength": 45,
     "minLength": 0,
     "pattern": "^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$|^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$",
     "type": "string"
    },
    "InsufficientDataHealthStatus": {
     "enum": [
      "Healthy",
      "LastKnownStatus",
      "Unhealthy"
     ],
     "type": "string"
    },
    "Inverted": {
     "type": "boolean"
    },
    "MeasureLatency": {
     "type": "boolean"
    },
    "Port": {
     "maximum": 65535,
     "minimum": 1,
     "type": "integer"
    },
    "Regions": {
     "insertionOrder": false,
     "items": {
      "enum": [
       "ap-northeast-1",
       "ap-southeast-1",
       "ap-southeast-2",
       "eu-west-1",
       "sa-east-1",
       "us-east-1",
       "us-west-1",
       "us-west-2"
      ],
      "maxLength": 64,
      "minLength": 1,
      "type": "string"
     },
     "maxItems": 64,
     "minItems": 3,
     "type": "array"
    },
    "RequestInterval": {
     "maximum": 30,
     "minimum": 10,
     "type": "integer"
    },
    "ResourcePath": {
     "maxLength": 255,
     "minLength": 0,
     "type": "string"
    },
    "RoutingControlArn": {
     "maxLength": 255,
     "minLength": 1,
     "type": "string"
    },
    "SearchString": {
     "maxLength": 255,
     "minLength": 0,
     "type": "string"
    },
    "Type": {
     "enum": [
      "CALCULATED",
      "CLOUDWATCH_METRIC",
      "HTTP",
      "HTTP_STR_MATCH",
      "HTTPS",
      "HTTPS_STR_MATCH",
      "TCP",
      "RECOVERY_CONTROL"
     ],
     "type": "string"
    }
   },
   "required": [
    "Type"
   ],
   "type": "object"
  },
  "HealthCheckId": {
   "type": "string"
  },
  "HealthCheckTags": {
   "insertionOrder": false,
   "items": {
    "$ref": "#/definitions/HealthCheckTag"
   },
   "type": "array",
   "uniqueItems": true
  }
 },
 "readOnlyProperties": [
  "/properties/HealthCheckId"
 ],
 "required": [
  "HealthCheckConfig"
 ],
 "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-route53.git",
 "tagging": {
  "cloudFormationSystemTags": false,
  "tagOnCreate": false,
  "tagProperty": "/properties/HealthCheckTags",
  "tagUpdatable": true,
  "taggable": true
 },
 "typeName": "AWS::Route53::HealthCheck"
}
