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  }