{
  "typeName" : "AWS::EC2::Host",
  "description" : "Resource Type definition for AWS::EC2::Host",
  "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git",
  "additionalProperties" : false,
  "tagging" : {
    "taggable" : true,
    "tagOnCreate" : true,
    "tagUpdatable" : true,
    "cloudFormationSystemTags" : true,
    "tagProperty" : "/properties/Tags",
    "permissions" : [ "ec2:CreateTags", "ec2:DeleteTags" ]
  },
  "definitions" : {
    "Tag" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "Key" : {
          "type" : "string"
        },
        "Value" : {
          "type" : "string"
        }
      },
      "required" : [ "Value", "Key" ]
    }
  },
  "properties" : {
    "HostId" : {
      "description" : "ID of the host created.",
      "type" : "string"
    },
    "AutoPlacement" : {
      "description" : "Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID.",
      "type" : "string",
      "enum" : [ "on", "off" ],
      "default" : "on"
    },
    "AvailabilityZone" : {
      "description" : "The Availability Zone in which to allocate the Dedicated Host.",
      "type" : "string"
    },
    "HostRecovery" : {
      "description" : "Indicates whether to enable or disable host recovery for the Dedicated Host. Host recovery is disabled by default.",
      "type" : "string",
      "enum" : [ "on", "off" ],
      "default" : "off"
    },
    "InstanceType" : {
      "description" : "Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only.",
      "type" : "string"
    },
    "InstanceFamily" : {
      "description" : "Specifies the instance family to be supported by the Dedicated Hosts. If you specify an instance family, the Dedicated Hosts support multiple instance types within that instance family.",
      "type" : "string"
    },
    "OutpostArn" : {
      "description" : "The Amazon Resource Name (ARN) of the Amazon Web Services Outpost on which to allocate the Dedicated Host.",
      "type" : "string"
    },
    "HostMaintenance" : {
      "description" : "Automatically allocates a new dedicated host and moves your instances on to it if a degradation is detected on your current host.",
      "type" : "string",
      "enum" : [ "on", "off" ],
      "default" : "off"
    },
    "AssetId" : {
      "description" : "The ID of the Outpost hardware asset.",
      "type" : "string"
    },
    "Tags" : {
      "description" : "Any tags assigned to the Host.",
      "type" : "array",
      "uniqueItems" : false,
      "insertionOrder" : false,
      "items" : {
        "$ref" : "#/definitions/Tag"
      }
    }
  },
  "required" : [ "AvailabilityZone" ],
  "createOnlyProperties" : [ "/properties/AvailabilityZone", "/properties/InstanceType", "/properties/InstanceFamily", "/properties/OutpostArn", "/properties/AssetId" ],
  "primaryIdentifier" : [ "/properties/HostId" ],
  "readOnlyProperties" : [ "/properties/HostId" ],
  "handlers" : {
    "create" : {
      "permissions" : [ "ec2:AllocateHosts", "ec2:DescribeHosts", "ec2:CreateTags" ]
    },
    "read" : {
      "permissions" : [ "ec2:DescribeHosts" ]
    },
    "update" : {
      "permissions" : [ "ec2:ModifyHosts", "ec2:DescribeHosts", "ec2:DeleteTags", "ec2:CreateTags" ]
    },
    "delete" : {
      "permissions" : [ "ec2:ReleaseHosts", "ec2:DescribeHosts" ]
    },
    "list" : {
      "permissions" : [ "ec2:DescribeHosts" ]
    }
  }
}