github.com/jpreese/tflint@v0.19.2-0.20200908152133-b01686250fb6/rules/awsrules/models/mappings/ec2.hcl (about) 1 import = "aws-sdk-go/models/apis/ec2/2016-11-15/api-2.json" 2 3 mapping "aws_ami" { 4 name = String 5 description = String 6 ena_support = Boolean 7 root_device_name = String 8 virtualization_type = String 9 architecture = ArchitectureValues 10 ebs_block_device = BlockDeviceMappingRequestList 11 ephemeral_block_device = BlockDeviceMappingRequestList 12 tags = TagList 13 image_location = String 14 kernel_id = String 15 ramdisk_id = String 16 sriov_net_support = String 17 } 18 19 mapping "aws_ami_copy" { 20 name = String 21 source_ami_id = String 22 source_ami_region = String 23 encrypted = Boolean 24 kms_key_id = String 25 tags = TagList 26 } 27 28 mapping "aws_ami_from_instance" { 29 name = String 30 source_instance_id = String 31 snapshot_without_reboot = Boolean 32 tags = TagList 33 } 34 35 mapping "aws_ami_launch_permission" { 36 image_id = String 37 account_id = String 38 } 39 40 mapping "aws_ebs_snapshot" { 41 volume_id = String 42 description = String 43 tags = TagList 44 } 45 46 mapping "aws_ebs_snapshot_copy" { 47 description = String 48 encrypted = Boolean 49 kms_key_id = String 50 source_snapshot_id = String 51 source_region = String 52 tags = TagList 53 } 54 55 mapping "aws_ebs_volume" { 56 availability_zone = String 57 encrypted = Boolean 58 iops = Integer 59 size = Integer 60 snapshot_id = String 61 type = VolumeType 62 kms_key_id = String 63 tags = TagSpecificationList 64 } 65 66 mapping "aws_ebs_default_kms_key" { 67 key_arn = String 68 } 69 70 mapping "aws_ebs_encryption_by_default" { 71 enabled = Boolean 72 } 73 74 mapping "aws_ec2_capacity_reservation" { 75 availability_zone = String 76 ebs_optimized = Boolean 77 end_date = DateTime 78 end_date_type = EndDateType 79 ephemeral_storage = Boolean 80 instance_count = Integer 81 instance_match_criteria = InstanceMatchCriteria 82 instance_platform = CapacityReservationInstancePlatform 83 instance_type = String 84 tags = TagSpecificationList 85 tenancy = CapacityReservationTenancy 86 } 87 88 mapping "aws_ec2_client_vpn_endpoint" { 89 description = String 90 client_cidr_block = String 91 dns_servers = ValueStringList 92 server_certificate_arn = String 93 transport_protocol = TransportProtocol 94 authentication_options = ClientVpnAuthenticationRequestList 95 connection_log_options = ConnectionLogOptions 96 tags = TagSpecificationList 97 } 98 99 mapping "aws_ec2_client_vpn_network_association" { 100 client_vpn_endpoint_id = String 101 subnet_id = String 102 } 103 104 mapping "aws_ec2_fleet" { 105 launch_template_config = FleetLaunchTemplateConfigListRequest 106 target_capacity_specification = TargetCapacitySpecificationRequest 107 excess_capacity_termination_policy = FleetExcessCapacityTerminationPolicy 108 on_demand_options = OnDemandOptionsRequest 109 replace_unhealthy_instances = Boolean 110 spot_options = SpotOptionsRequest 111 tags = TagSpecificationList 112 terminate_instances = Boolean 113 terminate_instances_with_expiration = Boolean 114 type = FleetType 115 } 116 117 mapping "aws_ec2_transit_gateway" { 118 amazon_side_asn = Long 119 auto_accept_shared_attachments = AutoAcceptSharedAttachmentsValue 120 default_route_table_association = DefaultRouteTableAssociationValue 121 default_route_table_propagation = DefaultRouteTablePropagationValue 122 description = String 123 dns_support = DnsSupportValue 124 tags = TagSpecificationList 125 } 126 127 mapping "aws_ec2_transit_gateway_route" { 128 destination_cidr_block = String 129 transit_gateway_attachment_id = String 130 transit_gateway_route_table_id = String 131 } 132 133 mapping "aws_ec2_transit_gateway_route_table" { 134 transit_gateway_id = String 135 tags = TagSpecificationList 136 } 137 138 mapping "aws_ec2_transit_gateway_route_table_association" { 139 transit_gateway_attachment_id = String 140 transit_gateway_route_table_id = String 141 } 142 143 mapping "aws_ec2_transit_gateway_route_table_propagation" { 144 transit_gateway_attachment_id = String 145 transit_gateway_route_table_id = String 146 } 147 148 mapping "aws_ec2_transit_gateway_vpc_attachment" { 149 subnet_ids = ValueStringList 150 transit_gateway_id = String 151 vpc_id = String 152 dns_support = DnsSupportValue 153 ipv6_support = Ipv6SupportValue 154 tags = TagSpecificationList 155 transit_gateway_default_route_table_association = Boolean 156 transit_gateway_default_route_table_propagation = Boolean 157 } 158 159 mapping "aws_ec2_transit_gateway_vpc_attachment_accepter" { 160 transit_gateway_attachment_id = String 161 transit_gateway_default_route_table_association = Boolean 162 transit_gateway_default_route_table_propagation = Boolean 163 tags = TagSpecificationList 164 } 165 166 mapping "aws_eip" { 167 vpc = Boolean 168 instance = String 169 network_interface = String 170 associate_with_private_ip = String 171 tags = TagSpecificationList 172 public_ipv4_pool = String 173 } 174 175 mapping "aws_eip_association" { 176 allocation_id = String 177 allow_reassociation = Boolean 178 instance_id = String 179 network_interface_id = String 180 private_ip_address = String 181 public_ip = String 182 } 183 184 mapping "aws_instance" { 185 ami = String 186 availability_zone = String 187 placement_group = Placement 188 tenancy = Tenancy 189 host_id = String 190 cpu_core_count = Integer 191 cpu_threads_per_core = Integer 192 ebs_optimized = Boolean 193 disable_api_termination = Boolean 194 instance_initiated_shutdown_behavior = ShutdownBehavior 195 instance_type = InstanceType 196 key_name = String 197 get_password_data = Boolean 198 monitoring = RunInstancesMonitoringEnabled 199 security_groups = SecurityGroupStringList 200 vpc_security_group_ids = SecurityGroupIdStringList 201 subnet_id = String 202 associate_public_ip_address = Boolean 203 private_ip = String 204 source_dest_check = Boolean 205 user_data = String 206 user_data_base64 = String 207 iam_instance_profile = IamInstanceProfileSpecification 208 ipv6_address_count = Integer 209 ipv6_addresses = InstanceIpv6AddressList 210 tags = TagSpecificationList 211 volume_tags = TagSpecificationList 212 root_block_device = BlockDeviceMappingRequestList 213 ebs_block_device = BlockDeviceMappingRequestList 214 ephemeral_block_device = BlockDeviceMappingRequestList 215 network_interface = InstanceNetworkInterfaceSpecificationList 216 credit_specification = CreditSpecificationRequest 217 } 218 219 mapping "aws_key_pair" { 220 key_name = String 221 key_name_prefix = String 222 public_key = Blob 223 } 224 225 mapping "aws_launch_template" { 226 name = LaunchTemplateName 227 name_prefix = String 228 description = VersionDescription 229 block_device_mappings = LaunchTemplateBlockDeviceMappingRequestList 230 capacity_reservation_specification = LaunchTemplateCapacityReservationSpecificationRequest 231 credit_specification = CreditSpecificationRequest 232 disable_api_termination = Boolean 233 ebs_optimized = Boolean 234 elastic_gpu_specifications = ElasticGpuSpecificationList 235 elastic_inference_accelerator = LaunchTemplateElasticInferenceAcceleratorList 236 iam_instance_profile = LaunchTemplateIamInstanceProfileSpecificationRequest 237 image_id = String 238 instance_initiated_shutdown_behavior = ShutdownBehavior 239 instance_market_options = LaunchTemplateInstanceMarketOptionsRequest 240 instance_type = InstanceType 241 kernel_id = String 242 key_name = String 243 license_specification = LaunchTemplateLicenseSpecificationListRequest 244 monitoring = LaunchTemplatesMonitoringRequest 245 network_interfaces = LaunchTemplateInstanceNetworkInterfaceSpecificationRequestList 246 placement = LaunchTemplatePlacementRequest 247 ram_disk_id = String 248 security_group_names = SecurityGroupStringList 249 vpc_security_group_ids = SecurityGroupIdStringList 250 tag_specifications = LaunchTemplateTagSpecificationRequestList 251 tags = TagSpecificationList 252 user_data = String 253 } 254 255 mapping "aws_placement_group" { 256 name = String 257 strategy = PlacementStrategy 258 } 259 260 mapping "aws_snapshot_create_volume_permission" { 261 snapshot_id = String 262 account_id = String 263 } 264 265 mapping "aws_spot_datafeed_subscription" { 266 bucket = String 267 prefix = String 268 } 269 270 mapping "aws_spot_fleet_request" { 271 iam_fleet_role = String 272 replace_unhealthy_instances = Boolean 273 launch_specification = RequestSpotLaunchSpecification 274 spot_price = SpotPrice 275 wait_for_fulfillment = Boolean 276 target_capacity = Integer 277 allocation_strategy = AllocationStrategy 278 instance_pools_to_use_count = Integer 279 excess_capacity_termination_policy = any // ExcessCapacityTerminationPolicy 280 terminate_instances_with_expiration = Boolean 281 instance_interruption_behaviour = InstanceInterruptionBehavior 282 fleet_type = FleetType 283 valid_until = DateTime 284 valid_from = DateTime 285 } 286 287 mapping "aws_spot_instance_request" { 288 spot_price = SpotPrice 289 wait_for_fulfillment = Boolean 290 spot_type = String 291 launch_group = String 292 block_duration_minutes = Integer 293 instance_interruption_behaviour = InstanceInterruptionBehavior 294 valid_until = DateTime 295 valid_from = DateTime 296 tags = TagSpecificationList 297 } 298 299 mapping "aws_volume_attachment" { 300 device_name = String 301 instance_id = String 302 volume_id = String 303 force_detach = Boolean 304 skip_destroy = Boolean 305 } 306 307 test "aws_ami" "architecture" { 308 ok = "x86_64" 309 ng = "x86" 310 } 311 312 test "aws_ebs_volume" "type" { 313 ok = "gp2" 314 ng = "gp3" 315 } 316 317 test "aws_ec2_capacity_reservation" "end_date_type" { 318 ok = "unlimited" 319 ng = "unlimit" 320 } 321 322 test "aws_ec2_capacity_reservation" "instance_match_criteria" { 323 ok = "open" 324 ng = "close" 325 } 326 327 test "aws_ec2_capacity_reservation" "instance_platform" { 328 ok = "Linux/UNIX" 329 ng = "Linux/GNU" 330 } 331 332 test "aws_ec2_capacity_reservation" "tenancy" { 333 ok = "default" 334 ng = "reserved" 335 } 336 337 test "aws_ec2_client_vpn_endpoint" "transport_protocol" { 338 ok = "udp" 339 ng = "http" 340 } 341 342 test "aws_ec2_fleet" "excess_capacity_termination_policy" { 343 ok = "termination" 344 ng = "remain" 345 } 346 347 test "aws_ec2_fleet" "type" { 348 ok = "maintain" 349 ng = "remain" 350 } 351 352 test "aws_ec2_transit_gateway" "auto_accept_shared_attachments" { 353 ok = "enable" 354 ng = "true" 355 } 356 357 test "aws_ec2_transit_gateway" "default_route_table_association" { 358 ok = "disable" 359 ng = "false" 360 } 361 362 test "aws_ec2_transit_gateway" "default_route_table_propagation" { 363 ok = "disable" 364 ng = "disabled" 365 } 366 367 test "aws_ec2_transit_gateway" "dns_support" { 368 ok = "enable" 369 ng = "enabled" 370 } 371 372 test "aws_ec2_transit_gateway_vpc_attachment" "ipv6_support" { 373 ok = "enable" 374 ng = "on" 375 } 376 377 test "aws_instance" "instance_initiated_shutdown_behavior" { 378 ok = "stop" 379 ng = "restart" 380 } 381 382 test "aws_instance" "tenancy" { 383 ok = "host" 384 ng = "server" 385 } 386 387 test "aws_launch_template" "name" { 388 ok = "foo" 389 ng = "foo[bar]" 390 } 391 392 test "aws_launch_template" "instance_type" { 393 ok = "t2.micro" 394 ng = "t1.2xlarge" 395 } 396 397 test "aws_placement_group" "strategy" { 398 ok = "cluster" 399 ng = "instance" 400 } 401 402 test "aws_spot_fleet_request" "allocation_strategy" { 403 ok = "lowestPrice" 404 ng = "highestPrice" 405 } 406 407 test "aws_spot_fleet_request" "instance_interruption_behaviour" { 408 ok = "hibernate" 409 ng = "restart" 410 }