aws-sdk-securityhub 1.56.0 → 1.60.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1414,6 +1414,27 @@ module Aws::SecurityHub
1414
1414
  include Aws::Structure
1415
1415
  end
1416
1416
 
1417
+ # An Availability Zone for the automatic scaling group.
1418
+ #
1419
+ # @note When making an API call, you may pass AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails
1420
+ # data as a hash:
1421
+ #
1422
+ # {
1423
+ # value: "NonEmptyString",
1424
+ # }
1425
+ #
1426
+ # @!attribute [rw] value
1427
+ # The name of the Availability Zone.
1428
+ # @return [String]
1429
+ #
1430
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails AWS API Documentation
1431
+ #
1432
+ class AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails < Struct.new(
1433
+ :value)
1434
+ SENSITIVE = []
1435
+ include Aws::Structure
1436
+ end
1437
+
1417
1438
  # Provides details about an auto scaling group.
1418
1439
  #
1419
1440
  # @note When making an API call, you may pass AwsAutoScalingAutoScalingGroupDetails
@@ -1425,6 +1446,34 @@ module Aws::SecurityHub
1425
1446
  # health_check_type: "NonEmptyString",
1426
1447
  # health_check_grace_period: 1,
1427
1448
  # created_time: "NonEmptyString",
1449
+ # mixed_instances_policy: {
1450
+ # instances_distribution: {
1451
+ # on_demand_allocation_strategy: "NonEmptyString",
1452
+ # on_demand_base_capacity: 1,
1453
+ # on_demand_percentage_above_base_capacity: 1,
1454
+ # spot_allocation_strategy: "NonEmptyString",
1455
+ # spot_instance_pools: 1,
1456
+ # spot_max_price: "NonEmptyString",
1457
+ # },
1458
+ # launch_template: {
1459
+ # launch_template_specification: {
1460
+ # launch_template_id: "NonEmptyString",
1461
+ # launch_template_name: "NonEmptyString",
1462
+ # version: "NonEmptyString",
1463
+ # },
1464
+ # overrides: [
1465
+ # {
1466
+ # instance_type: "NonEmptyString",
1467
+ # weighted_capacity: "NonEmptyString",
1468
+ # },
1469
+ # ],
1470
+ # },
1471
+ # },
1472
+ # availability_zones: [
1473
+ # {
1474
+ # value: "NonEmptyString",
1475
+ # },
1476
+ # ],
1428
1477
  # }
1429
1478
  #
1430
1479
  # @!attribute [rw] launch_configuration_name
@@ -1457,6 +1506,14 @@ module Aws::SecurityHub
1457
1506
  # [1]: https://tools.ietf.org/html/rfc3339#section-5.6
1458
1507
  # @return [String]
1459
1508
  #
1509
+ # @!attribute [rw] mixed_instances_policy
1510
+ # The mixed instances policy for the automatic scaling group.
1511
+ # @return [Types::AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails]
1512
+ #
1513
+ # @!attribute [rw] availability_zones
1514
+ # The list of Availability Zones for the automatic scaling group.
1515
+ # @return [Array<Types::AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails>]
1516
+ #
1460
1517
  # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsAutoScalingAutoScalingGroupDetails AWS API Documentation
1461
1518
  #
1462
1519
  class AwsAutoScalingAutoScalingGroupDetails < Struct.new(
@@ -1464,7 +1521,217 @@ module Aws::SecurityHub
1464
1521
  :load_balancer_names,
1465
1522
  :health_check_type,
1466
1523
  :health_check_grace_period,
1467
- :created_time)
1524
+ :created_time,
1525
+ :mixed_instances_policy,
1526
+ :availability_zones)
1527
+ SENSITIVE = []
1528
+ include Aws::Structure
1529
+ end
1530
+
1531
+ # The mixed instances policy for the automatic scaling group.
1532
+ #
1533
+ # @note When making an API call, you may pass AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails
1534
+ # data as a hash:
1535
+ #
1536
+ # {
1537
+ # instances_distribution: {
1538
+ # on_demand_allocation_strategy: "NonEmptyString",
1539
+ # on_demand_base_capacity: 1,
1540
+ # on_demand_percentage_above_base_capacity: 1,
1541
+ # spot_allocation_strategy: "NonEmptyString",
1542
+ # spot_instance_pools: 1,
1543
+ # spot_max_price: "NonEmptyString",
1544
+ # },
1545
+ # launch_template: {
1546
+ # launch_template_specification: {
1547
+ # launch_template_id: "NonEmptyString",
1548
+ # launch_template_name: "NonEmptyString",
1549
+ # version: "NonEmptyString",
1550
+ # },
1551
+ # overrides: [
1552
+ # {
1553
+ # instance_type: "NonEmptyString",
1554
+ # weighted_capacity: "NonEmptyString",
1555
+ # },
1556
+ # ],
1557
+ # },
1558
+ # }
1559
+ #
1560
+ # @!attribute [rw] instances_distribution
1561
+ # The instances distribution. The instances distribution specifies the
1562
+ # distribution of On-Demand Instances and Spot Instances, the maximum
1563
+ # price to pay for Spot Instances, and how the Auto Scaling group
1564
+ # allocates instance types to fulfill On-Demand and Spot capacity.
1565
+ # @return [Types::AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails]
1566
+ #
1567
+ # @!attribute [rw] launch_template
1568
+ # The launch template to use and the instance types (overrides) to use
1569
+ # to provision EC2 instances to fulfill On-Demand and Spot capacities.
1570
+ # @return [Types::AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails]
1571
+ #
1572
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails AWS API Documentation
1573
+ #
1574
+ class AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails < Struct.new(
1575
+ :instances_distribution,
1576
+ :launch_template)
1577
+ SENSITIVE = []
1578
+ include Aws::Structure
1579
+ end
1580
+
1581
+ # Information about the instances distribution.
1582
+ #
1583
+ # @note When making an API call, you may pass AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails
1584
+ # data as a hash:
1585
+ #
1586
+ # {
1587
+ # on_demand_allocation_strategy: "NonEmptyString",
1588
+ # on_demand_base_capacity: 1,
1589
+ # on_demand_percentage_above_base_capacity: 1,
1590
+ # spot_allocation_strategy: "NonEmptyString",
1591
+ # spot_instance_pools: 1,
1592
+ # spot_max_price: "NonEmptyString",
1593
+ # }
1594
+ #
1595
+ # @!attribute [rw] on_demand_allocation_strategy
1596
+ # How to allocate instance types to fulfill On-Demand capacity.
1597
+ # @return [String]
1598
+ #
1599
+ # @!attribute [rw] on_demand_base_capacity
1600
+ # The minimum amount of the Auto Scaling group's capacity that must
1601
+ # be fulfilled by On-Demand Instances.
1602
+ # @return [Integer]
1603
+ #
1604
+ # @!attribute [rw] on_demand_percentage_above_base_capacity
1605
+ # The percentage of On-Demand Instances and Spot Instances for
1606
+ # additional capacity beyond `OnDemandBaseCapacity`.
1607
+ # @return [Integer]
1608
+ #
1609
+ # @!attribute [rw] spot_allocation_strategy
1610
+ # How to allocate instances across Spot Instance pools.
1611
+ # @return [String]
1612
+ #
1613
+ # @!attribute [rw] spot_instance_pools
1614
+ # The number of Spot Instance pools across which to allocate your Spot
1615
+ # Instances.
1616
+ # @return [Integer]
1617
+ #
1618
+ # @!attribute [rw] spot_max_price
1619
+ # The maximum price per unit hour that you are willing to pay for a
1620
+ # Spot Instance.
1621
+ # @return [String]
1622
+ #
1623
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails AWS API Documentation
1624
+ #
1625
+ class AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails < Struct.new(
1626
+ :on_demand_allocation_strategy,
1627
+ :on_demand_base_capacity,
1628
+ :on_demand_percentage_above_base_capacity,
1629
+ :spot_allocation_strategy,
1630
+ :spot_instance_pools,
1631
+ :spot_max_price)
1632
+ SENSITIVE = []
1633
+ include Aws::Structure
1634
+ end
1635
+
1636
+ # Describes a launch template and overrides for a mixed instances
1637
+ # policy.
1638
+ #
1639
+ # @note When making an API call, you may pass AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails
1640
+ # data as a hash:
1641
+ #
1642
+ # {
1643
+ # launch_template_specification: {
1644
+ # launch_template_id: "NonEmptyString",
1645
+ # launch_template_name: "NonEmptyString",
1646
+ # version: "NonEmptyString",
1647
+ # },
1648
+ # overrides: [
1649
+ # {
1650
+ # instance_type: "NonEmptyString",
1651
+ # weighted_capacity: "NonEmptyString",
1652
+ # },
1653
+ # ],
1654
+ # }
1655
+ #
1656
+ # @!attribute [rw] launch_template_specification
1657
+ # The launch template to use.
1658
+ # @return [Types::AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification]
1659
+ #
1660
+ # @!attribute [rw] overrides
1661
+ # Property values to use to override the values in the launch
1662
+ # template.
1663
+ # @return [Array<Types::AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails>]
1664
+ #
1665
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails AWS API Documentation
1666
+ #
1667
+ class AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails < Struct.new(
1668
+ :launch_template_specification,
1669
+ :overrides)
1670
+ SENSITIVE = []
1671
+ include Aws::Structure
1672
+ end
1673
+
1674
+ # Details about the launch template to use.
1675
+ #
1676
+ # @note When making an API call, you may pass AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification
1677
+ # data as a hash:
1678
+ #
1679
+ # {
1680
+ # launch_template_id: "NonEmptyString",
1681
+ # launch_template_name: "NonEmptyString",
1682
+ # version: "NonEmptyString",
1683
+ # }
1684
+ #
1685
+ # @!attribute [rw] launch_template_id
1686
+ # The identifier of the launch template. You must specify either
1687
+ # `LaunchTemplateId` or `LaunchTemplateName`.
1688
+ # @return [String]
1689
+ #
1690
+ # @!attribute [rw] launch_template_name
1691
+ # The name of the launch template. You must specify either
1692
+ # `LaunchTemplateId` or `LaunchTemplateName`.
1693
+ # @return [String]
1694
+ #
1695
+ # @!attribute [rw] version
1696
+ # Identifies the version of the launch template. You can specify a
1697
+ # version identifier, or use the values `$Latest` or `$Default`.
1698
+ # @return [String]
1699
+ #
1700
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification AWS API Documentation
1701
+ #
1702
+ class AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification < Struct.new(
1703
+ :launch_template_id,
1704
+ :launch_template_name,
1705
+ :version)
1706
+ SENSITIVE = []
1707
+ include Aws::Structure
1708
+ end
1709
+
1710
+ # Property values to use to override the values in the launch template.
1711
+ #
1712
+ # @note When making an API call, you may pass AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails
1713
+ # data as a hash:
1714
+ #
1715
+ # {
1716
+ # instance_type: "NonEmptyString",
1717
+ # weighted_capacity: "NonEmptyString",
1718
+ # }
1719
+ #
1720
+ # @!attribute [rw] instance_type
1721
+ # The instance type. For example, `m3.xlarge`.
1722
+ # @return [String]
1723
+ #
1724
+ # @!attribute [rw] weighted_capacity
1725
+ # The number of capacity units provided by the specified instance type
1726
+ # in terms of virtual CPUs, memory, storage, throughput, or other
1727
+ # relative performance characteristic.
1728
+ # @return [String]
1729
+ #
1730
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails AWS API Documentation
1731
+ #
1732
+ class AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails < Struct.new(
1733
+ :instance_type,
1734
+ :weighted_capacity)
1468
1735
  SENSITIVE = []
1469
1736
  include Aws::Structure
1470
1737
  end
@@ -1633,6 +1900,11 @@ module Aws::SecurityHub
1633
1900
  # security_groups: ["NonEmptyString"],
1634
1901
  # spot_price: "NonEmptyString",
1635
1902
  # user_data: "NonEmptyString",
1903
+ # metadata_options: {
1904
+ # http_endpoint: "NonEmptyString",
1905
+ # http_put_response_hop_limit: 1,
1906
+ # http_tokens: "NonEmptyString",
1907
+ # },
1636
1908
  # }
1637
1909
  #
1638
1910
  # @!attribute [rw] associate_public_ip_address
@@ -1725,6 +1997,10 @@ module Aws::SecurityHub
1725
1997
  # be base64-encoded text.
1726
1998
  # @return [String]
1727
1999
  #
2000
+ # @!attribute [rw] metadata_options
2001
+ # The metadata options for the instances.
2002
+ # @return [Types::AwsAutoScalingLaunchConfigurationMetadataOptions]
2003
+ #
1728
2004
  # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsAutoScalingLaunchConfigurationDetails AWS API Documentation
1729
2005
  #
1730
2006
  class AwsAutoScalingLaunchConfigurationDetails < Struct.new(
@@ -1745,7 +2021,8 @@ module Aws::SecurityHub
1745
2021
  :ramdisk_id,
1746
2022
  :security_groups,
1747
2023
  :spot_price,
1748
- :user_data)
2024
+ :user_data,
2025
+ :metadata_options)
1749
2026
  SENSITIVE = []
1750
2027
  include Aws::Structure
1751
2028
  end
@@ -1775,6 +2052,43 @@ module Aws::SecurityHub
1775
2052
  include Aws::Structure
1776
2053
  end
1777
2054
 
2055
+ # The metadata options for the instances.
2056
+ #
2057
+ # @note When making an API call, you may pass AwsAutoScalingLaunchConfigurationMetadataOptions
2058
+ # data as a hash:
2059
+ #
2060
+ # {
2061
+ # http_endpoint: "NonEmptyString",
2062
+ # http_put_response_hop_limit: 1,
2063
+ # http_tokens: "NonEmptyString",
2064
+ # }
2065
+ #
2066
+ # @!attribute [rw] http_endpoint
2067
+ # Enables or disables the HTTP metadata endpoint on your instances. By
2068
+ # default, the metadata endpoint is enabled.
2069
+ # @return [String]
2070
+ #
2071
+ # @!attribute [rw] http_put_response_hop_limit
2072
+ # The HTTP `PUT` response hop limit for instance metadata requests.
2073
+ # The larger the number, the further instance metadata requests can
2074
+ # travel.
2075
+ # @return [Integer]
2076
+ #
2077
+ # @!attribute [rw] http_tokens
2078
+ # Indicates whether token usage is `required` or `optional` for
2079
+ # metadata requests. By default, token usage is `optional`.
2080
+ # @return [String]
2081
+ #
2082
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsAutoScalingLaunchConfigurationMetadataOptions AWS API Documentation
2083
+ #
2084
+ class AwsAutoScalingLaunchConfigurationMetadataOptions < Struct.new(
2085
+ :http_endpoint,
2086
+ :http_put_response_hop_limit,
2087
+ :http_tokens)
2088
+ SENSITIVE = []
2089
+ include Aws::Structure
2090
+ end
2091
+
1778
2092
  # Provides details about an Certificate Manager certificate.
1779
2093
  #
1780
2094
  # @note When making an API call, you may pass AwsCertificateManagerCertificateDetails
@@ -12004,6 +12318,340 @@ module Aws::SecurityHub
12004
12318
  include Aws::Structure
12005
12319
  end
12006
12320
 
12321
+ # Details about an Network Firewall firewall.
12322
+ #
12323
+ # @note When making an API call, you may pass AwsNetworkFirewallFirewallDetails
12324
+ # data as a hash:
12325
+ #
12326
+ # {
12327
+ # delete_protection: false,
12328
+ # description: "NonEmptyString",
12329
+ # firewall_arn: "NonEmptyString",
12330
+ # firewall_id: "NonEmptyString",
12331
+ # firewall_name: "NonEmptyString",
12332
+ # firewall_policy_arn: "NonEmptyString",
12333
+ # firewall_policy_change_protection: false,
12334
+ # subnet_change_protection: false,
12335
+ # subnet_mappings: [
12336
+ # {
12337
+ # subnet_id: "NonEmptyString",
12338
+ # },
12339
+ # ],
12340
+ # vpc_id: "NonEmptyString",
12341
+ # }
12342
+ #
12343
+ # @!attribute [rw] delete_protection
12344
+ # Whether the firewall is protected from deletion. If set to `true`,
12345
+ # then the firewall cannot be deleted.
12346
+ # @return [Boolean]
12347
+ #
12348
+ # @!attribute [rw] description
12349
+ # A description of the firewall.
12350
+ # @return [String]
12351
+ #
12352
+ # @!attribute [rw] firewall_arn
12353
+ # The ARN of the firewall.
12354
+ # @return [String]
12355
+ #
12356
+ # @!attribute [rw] firewall_id
12357
+ # The identifier of the firewall.
12358
+ # @return [String]
12359
+ #
12360
+ # @!attribute [rw] firewall_name
12361
+ # A descriptive name of the firewall.
12362
+ # @return [String]
12363
+ #
12364
+ # @!attribute [rw] firewall_policy_arn
12365
+ # The ARN of the firewall policy.
12366
+ # @return [String]
12367
+ #
12368
+ # @!attribute [rw] firewall_policy_change_protection
12369
+ # Whether the firewall is protected from a change to the firewall
12370
+ # policy. If set to `true`, you cannot associate a different policy
12371
+ # with the firewall.
12372
+ # @return [Boolean]
12373
+ #
12374
+ # @!attribute [rw] subnet_change_protection
12375
+ # Whether the firewall is protected from a change to the subnet
12376
+ # associations. If set to `true`, you cannot map different subnets to
12377
+ # the firewall.
12378
+ # @return [Boolean]
12379
+ #
12380
+ # @!attribute [rw] subnet_mappings
12381
+ # The public subnets that Network Firewall uses for the firewall. Each
12382
+ # subnet must belong to a different Availability Zone.
12383
+ # @return [Array<Types::AwsNetworkFirewallFirewallSubnetMappingsDetails>]
12384
+ #
12385
+ # @!attribute [rw] vpc_id
12386
+ # The identifier of the VPC where the firewall is used.
12387
+ # @return [String]
12388
+ #
12389
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsNetworkFirewallFirewallDetails AWS API Documentation
12390
+ #
12391
+ class AwsNetworkFirewallFirewallDetails < Struct.new(
12392
+ :delete_protection,
12393
+ :description,
12394
+ :firewall_arn,
12395
+ :firewall_id,
12396
+ :firewall_name,
12397
+ :firewall_policy_arn,
12398
+ :firewall_policy_change_protection,
12399
+ :subnet_change_protection,
12400
+ :subnet_mappings,
12401
+ :vpc_id)
12402
+ SENSITIVE = []
12403
+ include Aws::Structure
12404
+ end
12405
+
12406
+ # Details about a firewall policy. A firewall policy defines the
12407
+ # behavior of a network firewall.
12408
+ #
12409
+ # @note When making an API call, you may pass AwsNetworkFirewallFirewallPolicyDetails
12410
+ # data as a hash:
12411
+ #
12412
+ # {
12413
+ # firewall_policy: {
12414
+ # stateful_rule_group_references: [
12415
+ # {
12416
+ # resource_arn: "NonEmptyString",
12417
+ # },
12418
+ # ],
12419
+ # stateless_custom_actions: [
12420
+ # {
12421
+ # action_definition: {
12422
+ # publish_metric_action: {
12423
+ # dimensions: [
12424
+ # {
12425
+ # value: "NonEmptyString",
12426
+ # },
12427
+ # ],
12428
+ # },
12429
+ # },
12430
+ # action_name: "NonEmptyString",
12431
+ # },
12432
+ # ],
12433
+ # stateless_default_actions: ["NonEmptyString"],
12434
+ # stateless_fragment_default_actions: ["NonEmptyString"],
12435
+ # stateless_rule_group_references: [
12436
+ # {
12437
+ # priority: 1,
12438
+ # resource_arn: "NonEmptyString",
12439
+ # },
12440
+ # ],
12441
+ # },
12442
+ # firewall_policy_arn: "NonEmptyString",
12443
+ # firewall_policy_id: "NonEmptyString",
12444
+ # firewall_policy_name: "NonEmptyString",
12445
+ # description: "NonEmptyString",
12446
+ # }
12447
+ #
12448
+ # @!attribute [rw] firewall_policy
12449
+ # The firewall policy configuration.
12450
+ # @return [Types::FirewallPolicyDetails]
12451
+ #
12452
+ # @!attribute [rw] firewall_policy_arn
12453
+ # The ARN of the firewall policy.
12454
+ # @return [String]
12455
+ #
12456
+ # @!attribute [rw] firewall_policy_id
12457
+ # The identifier of the firewall policy.
12458
+ # @return [String]
12459
+ #
12460
+ # @!attribute [rw] firewall_policy_name
12461
+ # The name of the firewall policy.
12462
+ # @return [String]
12463
+ #
12464
+ # @!attribute [rw] description
12465
+ # A description of the firewall policy.
12466
+ # @return [String]
12467
+ #
12468
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsNetworkFirewallFirewallPolicyDetails AWS API Documentation
12469
+ #
12470
+ class AwsNetworkFirewallFirewallPolicyDetails < Struct.new(
12471
+ :firewall_policy,
12472
+ :firewall_policy_arn,
12473
+ :firewall_policy_id,
12474
+ :firewall_policy_name,
12475
+ :description)
12476
+ SENSITIVE = []
12477
+ include Aws::Structure
12478
+ end
12479
+
12480
+ # A public subnet that Network Firewall uses for the firewall.
12481
+ #
12482
+ # @note When making an API call, you may pass AwsNetworkFirewallFirewallSubnetMappingsDetails
12483
+ # data as a hash:
12484
+ #
12485
+ # {
12486
+ # subnet_id: "NonEmptyString",
12487
+ # }
12488
+ #
12489
+ # @!attribute [rw] subnet_id
12490
+ # The identifier of the subnet
12491
+ # @return [String]
12492
+ #
12493
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsNetworkFirewallFirewallSubnetMappingsDetails AWS API Documentation
12494
+ #
12495
+ class AwsNetworkFirewallFirewallSubnetMappingsDetails < Struct.new(
12496
+ :subnet_id)
12497
+ SENSITIVE = []
12498
+ include Aws::Structure
12499
+ end
12500
+
12501
+ # Details about an Network Firewall rule group. Rule groups are used to
12502
+ # inspect and control network traffic. Stateless rule groups apply to
12503
+ # individual packets. Stateful rule groups apply to packets in the
12504
+ # context of their traffic flow.
12505
+ #
12506
+ # Rule groups are referenced in firewall policies.
12507
+ #
12508
+ # @note When making an API call, you may pass AwsNetworkFirewallRuleGroupDetails
12509
+ # data as a hash:
12510
+ #
12511
+ # {
12512
+ # capacity: 1,
12513
+ # description: "NonEmptyString",
12514
+ # rule_group: {
12515
+ # rule_variables: {
12516
+ # ip_sets: {
12517
+ # definition: ["NonEmptyString"],
12518
+ # },
12519
+ # port_sets: {
12520
+ # definition: ["NonEmptyString"],
12521
+ # },
12522
+ # },
12523
+ # rules_source: {
12524
+ # rules_source_list: {
12525
+ # generated_rules_type: "NonEmptyString",
12526
+ # target_types: ["NonEmptyString"],
12527
+ # targets: ["NonEmptyString"],
12528
+ # },
12529
+ # rules_string: "NonEmptyString",
12530
+ # stateful_rules: [
12531
+ # {
12532
+ # action: "NonEmptyString",
12533
+ # header: {
12534
+ # destination: "NonEmptyString",
12535
+ # destination_port: "NonEmptyString",
12536
+ # direction: "NonEmptyString",
12537
+ # protocol: "NonEmptyString",
12538
+ # source: "NonEmptyString",
12539
+ # source_port: "NonEmptyString",
12540
+ # },
12541
+ # rule_options: [
12542
+ # {
12543
+ # keyword: "NonEmptyString",
12544
+ # settings: ["NonEmptyString"],
12545
+ # },
12546
+ # ],
12547
+ # },
12548
+ # ],
12549
+ # stateless_rules_and_custom_actions: {
12550
+ # custom_actions: [
12551
+ # {
12552
+ # action_definition: {
12553
+ # publish_metric_action: {
12554
+ # dimensions: [
12555
+ # {
12556
+ # value: "NonEmptyString",
12557
+ # },
12558
+ # ],
12559
+ # },
12560
+ # },
12561
+ # action_name: "NonEmptyString",
12562
+ # },
12563
+ # ],
12564
+ # stateless_rules: [
12565
+ # {
12566
+ # priority: 1,
12567
+ # rule_definition: {
12568
+ # actions: ["NonEmptyString"],
12569
+ # match_attributes: {
12570
+ # destination_ports: [
12571
+ # {
12572
+ # from_port: 1,
12573
+ # to_port: 1,
12574
+ # },
12575
+ # ],
12576
+ # destinations: [
12577
+ # {
12578
+ # address_definition: "NonEmptyString",
12579
+ # },
12580
+ # ],
12581
+ # protocols: [1],
12582
+ # source_ports: [
12583
+ # {
12584
+ # from_port: 1,
12585
+ # to_port: 1,
12586
+ # },
12587
+ # ],
12588
+ # sources: [
12589
+ # {
12590
+ # address_definition: "NonEmptyString",
12591
+ # },
12592
+ # ],
12593
+ # tcp_flags: [
12594
+ # {
12595
+ # flags: ["NonEmptyString"],
12596
+ # masks: ["NonEmptyString"],
12597
+ # },
12598
+ # ],
12599
+ # },
12600
+ # },
12601
+ # },
12602
+ # ],
12603
+ # },
12604
+ # },
12605
+ # },
12606
+ # rule_group_arn: "NonEmptyString",
12607
+ # rule_group_id: "NonEmptyString",
12608
+ # rule_group_name: "NonEmptyString",
12609
+ # type: "NonEmptyString",
12610
+ # }
12611
+ #
12612
+ # @!attribute [rw] capacity
12613
+ # The maximum number of operating resources that this rule group can
12614
+ # use.
12615
+ # @return [Integer]
12616
+ #
12617
+ # @!attribute [rw] description
12618
+ # A description of the rule group.
12619
+ # @return [String]
12620
+ #
12621
+ # @!attribute [rw] rule_group
12622
+ # Details about the rule group.
12623
+ # @return [Types::RuleGroupDetails]
12624
+ #
12625
+ # @!attribute [rw] rule_group_arn
12626
+ # The ARN of the rule group.
12627
+ # @return [String]
12628
+ #
12629
+ # @!attribute [rw] rule_group_id
12630
+ # The identifier of the rule group.
12631
+ # @return [String]
12632
+ #
12633
+ # @!attribute [rw] rule_group_name
12634
+ # The descriptive name of the rule group.
12635
+ # @return [String]
12636
+ #
12637
+ # @!attribute [rw] type
12638
+ # The type of rule group. A rule group can be stateful or stateless.
12639
+ # @return [String]
12640
+ #
12641
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsNetworkFirewallRuleGroupDetails AWS API Documentation
12642
+ #
12643
+ class AwsNetworkFirewallRuleGroupDetails < Struct.new(
12644
+ :capacity,
12645
+ :description,
12646
+ :rule_group,
12647
+ :rule_group_arn,
12648
+ :rule_group_id,
12649
+ :rule_group_name,
12650
+ :type)
12651
+ SENSITIVE = []
12652
+ include Aws::Structure
12653
+ end
12654
+
12007
12655
  # Details about the configuration of an OpenSearch cluster.
12008
12656
  #
12009
12657
  # @note When making an API call, you may pass AwsOpenSearchServiceDomainClusterConfigDetails
@@ -15965,6 +16613,35 @@ module Aws::SecurityHub
15965
16613
  include Aws::Structure
15966
16614
  end
15967
16615
 
16616
+ # Describes the versioning state of an S3 bucket.
16617
+ #
16618
+ # @note When making an API call, you may pass AwsS3BucketBucketVersioningConfiguration
16619
+ # data as a hash:
16620
+ #
16621
+ # {
16622
+ # is_mfa_delete_enabled: false,
16623
+ # status: "NonEmptyString",
16624
+ # }
16625
+ #
16626
+ # @!attribute [rw] is_mfa_delete_enabled
16627
+ # Specifies whether MFA delete is currently enabled in the S3 bucket
16628
+ # versioning configuration. If the S3 bucket was never configured with
16629
+ # MFA delete, then this attribute is not included.
16630
+ # @return [Boolean]
16631
+ #
16632
+ # @!attribute [rw] status
16633
+ # The versioning status of the S3 bucket.
16634
+ # @return [String]
16635
+ #
16636
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsS3BucketBucketVersioningConfiguration AWS API Documentation
16637
+ #
16638
+ class AwsS3BucketBucketVersioningConfiguration < Struct.new(
16639
+ :is_mfa_delete_enabled,
16640
+ :status)
16641
+ SENSITIVE = []
16642
+ include Aws::Structure
16643
+ end
16644
+
15968
16645
  # The details of an Amazon S3 bucket.
15969
16646
  #
15970
16647
  # @note When making an API call, you may pass AwsS3BucketDetails
@@ -16087,6 +16764,10 @@ module Aws::SecurityHub
16087
16764
  # },
16088
16765
  # ],
16089
16766
  # },
16767
+ # bucket_versioning_configuration: {
16768
+ # is_mfa_delete_enabled: false,
16769
+ # status: "NonEmptyString",
16770
+ # },
16090
16771
  # }
16091
16772
  #
16092
16773
  # @!attribute [rw] owner_id
@@ -16143,6 +16824,10 @@ module Aws::SecurityHub
16143
16824
  # The notification configuration for the S3 bucket.
16144
16825
  # @return [Types::AwsS3BucketNotificationConfiguration]
16145
16826
  #
16827
+ # @!attribute [rw] bucket_versioning_configuration
16828
+ # The versioning state of an S3 bucket.
16829
+ # @return [Types::AwsS3BucketBucketVersioningConfiguration]
16830
+ #
16146
16831
  # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsS3BucketDetails AWS API Documentation
16147
16832
  #
16148
16833
  class AwsS3BucketDetails < Struct.new(
@@ -16156,7 +16841,8 @@ module Aws::SecurityHub
16156
16841
  :access_control_list,
16157
16842
  :bucket_logging_configuration,
16158
16843
  :bucket_website_configuration,
16159
- :bucket_notification_configuration)
16844
+ :bucket_notification_configuration,
16845
+ :bucket_versioning_configuration)
16160
16846
  SENSITIVE = []
16161
16847
  include Aws::Structure
16162
16848
  end
@@ -17077,6 +17763,34 @@ module Aws::SecurityHub
17077
17763
  # health_check_type: "NonEmptyString",
17078
17764
  # health_check_grace_period: 1,
17079
17765
  # created_time: "NonEmptyString",
17766
+ # mixed_instances_policy: {
17767
+ # instances_distribution: {
17768
+ # on_demand_allocation_strategy: "NonEmptyString",
17769
+ # on_demand_base_capacity: 1,
17770
+ # on_demand_percentage_above_base_capacity: 1,
17771
+ # spot_allocation_strategy: "NonEmptyString",
17772
+ # spot_instance_pools: 1,
17773
+ # spot_max_price: "NonEmptyString",
17774
+ # },
17775
+ # launch_template: {
17776
+ # launch_template_specification: {
17777
+ # launch_template_id: "NonEmptyString",
17778
+ # launch_template_name: "NonEmptyString",
17779
+ # version: "NonEmptyString",
17780
+ # },
17781
+ # overrides: [
17782
+ # {
17783
+ # instance_type: "NonEmptyString",
17784
+ # weighted_capacity: "NonEmptyString",
17785
+ # },
17786
+ # ],
17787
+ # },
17788
+ # },
17789
+ # availability_zones: [
17790
+ # {
17791
+ # value: "NonEmptyString",
17792
+ # },
17793
+ # ],
17080
17794
  # },
17081
17795
  # aws_code_build_project: {
17082
17796
  # encryption_key: "NonEmptyString",
@@ -17647,6 +18361,10 @@ module Aws::SecurityHub
17647
18361
  # },
17648
18362
  # ],
17649
18363
  # },
18364
+ # bucket_versioning_configuration: {
18365
+ # is_mfa_delete_enabled: false,
18366
+ # status: "NonEmptyString",
18367
+ # },
17650
18368
  # },
17651
18369
  # aws_s3_account_public_access_block: {
17652
18370
  # block_public_acls: false,
@@ -19061,6 +19779,11 @@ module Aws::SecurityHub
19061
19779
  # security_groups: ["NonEmptyString"],
19062
19780
  # spot_price: "NonEmptyString",
19063
19781
  # user_data: "NonEmptyString",
19782
+ # metadata_options: {
19783
+ # http_endpoint: "NonEmptyString",
19784
+ # http_put_response_hop_limit: 1,
19785
+ # http_tokens: "NonEmptyString",
19786
+ # },
19064
19787
  # },
19065
19788
  # aws_ec2_vpn_connection: {
19066
19789
  # vpn_connection_id: "NonEmptyString",
@@ -19270,6 +19993,157 @@ module Aws::SecurityHub
19270
19993
  # ],
19271
19994
  # },
19272
19995
  # },
19996
+ # aws_network_firewall_firewall_policy: {
19997
+ # firewall_policy: {
19998
+ # stateful_rule_group_references: [
19999
+ # {
20000
+ # resource_arn: "NonEmptyString",
20001
+ # },
20002
+ # ],
20003
+ # stateless_custom_actions: [
20004
+ # {
20005
+ # action_definition: {
20006
+ # publish_metric_action: {
20007
+ # dimensions: [
20008
+ # {
20009
+ # value: "NonEmptyString",
20010
+ # },
20011
+ # ],
20012
+ # },
20013
+ # },
20014
+ # action_name: "NonEmptyString",
20015
+ # },
20016
+ # ],
20017
+ # stateless_default_actions: ["NonEmptyString"],
20018
+ # stateless_fragment_default_actions: ["NonEmptyString"],
20019
+ # stateless_rule_group_references: [
20020
+ # {
20021
+ # priority: 1,
20022
+ # resource_arn: "NonEmptyString",
20023
+ # },
20024
+ # ],
20025
+ # },
20026
+ # firewall_policy_arn: "NonEmptyString",
20027
+ # firewall_policy_id: "NonEmptyString",
20028
+ # firewall_policy_name: "NonEmptyString",
20029
+ # description: "NonEmptyString",
20030
+ # },
20031
+ # aws_network_firewall_firewall: {
20032
+ # delete_protection: false,
20033
+ # description: "NonEmptyString",
20034
+ # firewall_arn: "NonEmptyString",
20035
+ # firewall_id: "NonEmptyString",
20036
+ # firewall_name: "NonEmptyString",
20037
+ # firewall_policy_arn: "NonEmptyString",
20038
+ # firewall_policy_change_protection: false,
20039
+ # subnet_change_protection: false,
20040
+ # subnet_mappings: [
20041
+ # {
20042
+ # subnet_id: "NonEmptyString",
20043
+ # },
20044
+ # ],
20045
+ # vpc_id: "NonEmptyString",
20046
+ # },
20047
+ # aws_network_firewall_rule_group: {
20048
+ # capacity: 1,
20049
+ # description: "NonEmptyString",
20050
+ # rule_group: {
20051
+ # rule_variables: {
20052
+ # ip_sets: {
20053
+ # definition: ["NonEmptyString"],
20054
+ # },
20055
+ # port_sets: {
20056
+ # definition: ["NonEmptyString"],
20057
+ # },
20058
+ # },
20059
+ # rules_source: {
20060
+ # rules_source_list: {
20061
+ # generated_rules_type: "NonEmptyString",
20062
+ # target_types: ["NonEmptyString"],
20063
+ # targets: ["NonEmptyString"],
20064
+ # },
20065
+ # rules_string: "NonEmptyString",
20066
+ # stateful_rules: [
20067
+ # {
20068
+ # action: "NonEmptyString",
20069
+ # header: {
20070
+ # destination: "NonEmptyString",
20071
+ # destination_port: "NonEmptyString",
20072
+ # direction: "NonEmptyString",
20073
+ # protocol: "NonEmptyString",
20074
+ # source: "NonEmptyString",
20075
+ # source_port: "NonEmptyString",
20076
+ # },
20077
+ # rule_options: [
20078
+ # {
20079
+ # keyword: "NonEmptyString",
20080
+ # settings: ["NonEmptyString"],
20081
+ # },
20082
+ # ],
20083
+ # },
20084
+ # ],
20085
+ # stateless_rules_and_custom_actions: {
20086
+ # custom_actions: [
20087
+ # {
20088
+ # action_definition: {
20089
+ # publish_metric_action: {
20090
+ # dimensions: [
20091
+ # {
20092
+ # value: "NonEmptyString",
20093
+ # },
20094
+ # ],
20095
+ # },
20096
+ # },
20097
+ # action_name: "NonEmptyString",
20098
+ # },
20099
+ # ],
20100
+ # stateless_rules: [
20101
+ # {
20102
+ # priority: 1,
20103
+ # rule_definition: {
20104
+ # actions: ["NonEmptyString"],
20105
+ # match_attributes: {
20106
+ # destination_ports: [
20107
+ # {
20108
+ # from_port: 1,
20109
+ # to_port: 1,
20110
+ # },
20111
+ # ],
20112
+ # destinations: [
20113
+ # {
20114
+ # address_definition: "NonEmptyString",
20115
+ # },
20116
+ # ],
20117
+ # protocols: [1],
20118
+ # source_ports: [
20119
+ # {
20120
+ # from_port: 1,
20121
+ # to_port: 1,
20122
+ # },
20123
+ # ],
20124
+ # sources: [
20125
+ # {
20126
+ # address_definition: "NonEmptyString",
20127
+ # },
20128
+ # ],
20129
+ # tcp_flags: [
20130
+ # {
20131
+ # flags: ["NonEmptyString"],
20132
+ # masks: ["NonEmptyString"],
20133
+ # },
20134
+ # ],
20135
+ # },
20136
+ # },
20137
+ # },
20138
+ # ],
20139
+ # },
20140
+ # },
20141
+ # },
20142
+ # rule_group_arn: "NonEmptyString",
20143
+ # rule_group_id: "NonEmptyString",
20144
+ # rule_group_name: "NonEmptyString",
20145
+ # type: "NonEmptyString",
20146
+ # },
19273
20147
  # },
19274
20148
  # },
19275
20149
  # ],
@@ -19475,6 +20349,7 @@ module Aws::SecurityHub
19475
20349
  # },
19476
20350
  # types: ["NonEmptyString"],
19477
20351
  # },
20352
+ # sample: false,
19478
20353
  # }
19479
20354
  #
19480
20355
  # @!attribute [rw] schema_version
@@ -19749,6 +20624,10 @@ module Aws::SecurityHub
19749
20624
  # confidence, criticality, related findings, severity, and types.
19750
20625
  # @return [Types::FindingProviderFields]
19751
20626
  #
20627
+ # @!attribute [rw] sample
20628
+ # Indicates whether the finding is a sample finding.
20629
+ # @return [Boolean]
20630
+ #
19752
20631
  # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsSecurityFinding AWS API Documentation
19753
20632
  #
19754
20633
  class AwsSecurityFinding < Struct.new(
@@ -19790,7 +20669,8 @@ module Aws::SecurityHub
19790
20669
  :vulnerabilities,
19791
20670
  :patch_summary,
19792
20671
  :action,
19793
- :finding_provider_fields)
20672
+ :finding_provider_fields,
20673
+ :sample)
19794
20674
  SENSITIVE = []
19795
20675
  include Aws::Structure
19796
20676
  end
@@ -20421,6 +21301,11 @@ module Aws::SecurityHub
20421
21301
  # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
20422
21302
  # },
20423
21303
  # ],
21304
+ # sample: [
21305
+ # {
21306
+ # value: false,
21307
+ # },
21308
+ # ],
20424
21309
  # }
20425
21310
  #
20426
21311
  # @!attribute [rw] product_arn
@@ -20805,9 +21690,9 @@ module Aws::SecurityHub
20805
21690
  # Security Hub also resets the workflow status from `NOTIFIED` or
20806
21691
  # `RESOLVED` to `NEW` in the following cases:
20807
21692
  #
20808
- # * The record state changes from `ARCHIVED` to `ACTIVE`.
21693
+ # * `RecordState` changes from `ARCHIVED` to `ACTIVE`.
20809
21694
  #
20810
- # * The compliance status changes from `PASSED` to either `WARNING`,
21695
+ # * `Compliance.Status` changes from `PASSED` to either `WARNING`,
20811
21696
  # `FAILED`, or `NOT_AVAILABLE`.
20812
21697
  #
20813
21698
  # * `NOTIFIED` - Indicates that the resource owner has been notified
@@ -20815,11 +21700,36 @@ module Aws::SecurityHub
20815
21700
  # the resource owner, and needs intervention from the resource
20816
21701
  # owner.
20817
21702
  #
20818
- # * `SUPPRESSED` - The finding will not be reviewed again and will not
20819
- # be acted upon.
21703
+ # If one of the following occurs, the workflow status is changed
21704
+ # automatically from `NOTIFIED` to `NEW`\:
21705
+ #
21706
+ # * `RecordState` changes from `ARCHIVED` to `ACTIVE`.
21707
+ #
21708
+ # * `Compliance.Status` changes from `PASSED` to `FAILED`,
21709
+ # `WARNING`, or `NOT_AVAILABLE`.
21710
+ #
21711
+ # * `SUPPRESSED` - Indicates that you reviewed the finding and do not
21712
+ # believe that any action is needed.
21713
+ #
21714
+ # The workflow status of a `SUPPRESSED` finding does not change if
21715
+ # `RecordState` changes from `ARCHIVED` to `ACTIVE`.
20820
21716
  #
20821
21717
  # * `RESOLVED` - The finding was reviewed and remediated and is now
20822
21718
  # considered resolved.
21719
+ #
21720
+ # The finding remains `RESOLVED` unless one of the following occurs:
21721
+ #
21722
+ # * `RecordState` changes from `ARCHIVED` to `ACTIVE`.
21723
+ #
21724
+ # * `Compliance.Status` changes from `PASSED` to `FAILED`,
21725
+ # `WARNING`, or `NOT_AVAILABLE`.
21726
+ #
21727
+ # In those cases, the workflow status is automatically reset to
21728
+ # `NEW`.
21729
+ #
21730
+ # For findings from controls, if `Compliance.Status` is `PASSED`,
21731
+ # then Security Hub automatically sets the workflow status to
21732
+ # `RESOLVED`.
20823
21733
  # @return [Array<Types::StringFilter>]
20824
21734
  #
20825
21735
  # @!attribute [rw] record_state
@@ -20896,6 +21806,11 @@ module Aws::SecurityHub
20896
21806
  # Identifications
20897
21807
  # @return [Array<Types::StringFilter>]
20898
21808
  #
21809
+ # @!attribute [rw] sample
21810
+ # Indicates whether or not sample findings are included in the filter
21811
+ # results.
21812
+ # @return [Array<Types::BooleanFilter>]
21813
+ #
20899
21814
  # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsSecurityFindingFilters AWS API Documentation
20900
21815
  #
20901
21816
  class AwsSecurityFindingFilters < Struct.new(
@@ -20992,7 +21907,8 @@ module Aws::SecurityHub
20992
21907
  :finding_provider_fields_related_findings_product_arn,
20993
21908
  :finding_provider_fields_severity_label,
20994
21909
  :finding_provider_fields_severity_original,
20995
- :finding_provider_fields_types)
21910
+ :finding_provider_fields_types,
21911
+ :sample)
20996
21912
  SENSITIVE = []
20997
21913
  include Aws::Structure
20998
21914
  end
@@ -22102,6 +23018,34 @@ module Aws::SecurityHub
22102
23018
  # health_check_type: "NonEmptyString",
22103
23019
  # health_check_grace_period: 1,
22104
23020
  # created_time: "NonEmptyString",
23021
+ # mixed_instances_policy: {
23022
+ # instances_distribution: {
23023
+ # on_demand_allocation_strategy: "NonEmptyString",
23024
+ # on_demand_base_capacity: 1,
23025
+ # on_demand_percentage_above_base_capacity: 1,
23026
+ # spot_allocation_strategy: "NonEmptyString",
23027
+ # spot_instance_pools: 1,
23028
+ # spot_max_price: "NonEmptyString",
23029
+ # },
23030
+ # launch_template: {
23031
+ # launch_template_specification: {
23032
+ # launch_template_id: "NonEmptyString",
23033
+ # launch_template_name: "NonEmptyString",
23034
+ # version: "NonEmptyString",
23035
+ # },
23036
+ # overrides: [
23037
+ # {
23038
+ # instance_type: "NonEmptyString",
23039
+ # weighted_capacity: "NonEmptyString",
23040
+ # },
23041
+ # ],
23042
+ # },
23043
+ # },
23044
+ # availability_zones: [
23045
+ # {
23046
+ # value: "NonEmptyString",
23047
+ # },
23048
+ # ],
22105
23049
  # },
22106
23050
  # aws_code_build_project: {
22107
23051
  # encryption_key: "NonEmptyString",
@@ -22672,6 +23616,10 @@ module Aws::SecurityHub
22672
23616
  # },
22673
23617
  # ],
22674
23618
  # },
23619
+ # bucket_versioning_configuration: {
23620
+ # is_mfa_delete_enabled: false,
23621
+ # status: "NonEmptyString",
23622
+ # },
22675
23623
  # },
22676
23624
  # aws_s3_account_public_access_block: {
22677
23625
  # block_public_acls: false,
@@ -24086,6 +25034,11 @@ module Aws::SecurityHub
24086
25034
  # security_groups: ["NonEmptyString"],
24087
25035
  # spot_price: "NonEmptyString",
24088
25036
  # user_data: "NonEmptyString",
25037
+ # metadata_options: {
25038
+ # http_endpoint: "NonEmptyString",
25039
+ # http_put_response_hop_limit: 1,
25040
+ # http_tokens: "NonEmptyString",
25041
+ # },
24089
25042
  # },
24090
25043
  # aws_ec2_vpn_connection: {
24091
25044
  # vpn_connection_id: "NonEmptyString",
@@ -24295,6 +25248,157 @@ module Aws::SecurityHub
24295
25248
  # ],
24296
25249
  # },
24297
25250
  # },
25251
+ # aws_network_firewall_firewall_policy: {
25252
+ # firewall_policy: {
25253
+ # stateful_rule_group_references: [
25254
+ # {
25255
+ # resource_arn: "NonEmptyString",
25256
+ # },
25257
+ # ],
25258
+ # stateless_custom_actions: [
25259
+ # {
25260
+ # action_definition: {
25261
+ # publish_metric_action: {
25262
+ # dimensions: [
25263
+ # {
25264
+ # value: "NonEmptyString",
25265
+ # },
25266
+ # ],
25267
+ # },
25268
+ # },
25269
+ # action_name: "NonEmptyString",
25270
+ # },
25271
+ # ],
25272
+ # stateless_default_actions: ["NonEmptyString"],
25273
+ # stateless_fragment_default_actions: ["NonEmptyString"],
25274
+ # stateless_rule_group_references: [
25275
+ # {
25276
+ # priority: 1,
25277
+ # resource_arn: "NonEmptyString",
25278
+ # },
25279
+ # ],
25280
+ # },
25281
+ # firewall_policy_arn: "NonEmptyString",
25282
+ # firewall_policy_id: "NonEmptyString",
25283
+ # firewall_policy_name: "NonEmptyString",
25284
+ # description: "NonEmptyString",
25285
+ # },
25286
+ # aws_network_firewall_firewall: {
25287
+ # delete_protection: false,
25288
+ # description: "NonEmptyString",
25289
+ # firewall_arn: "NonEmptyString",
25290
+ # firewall_id: "NonEmptyString",
25291
+ # firewall_name: "NonEmptyString",
25292
+ # firewall_policy_arn: "NonEmptyString",
25293
+ # firewall_policy_change_protection: false,
25294
+ # subnet_change_protection: false,
25295
+ # subnet_mappings: [
25296
+ # {
25297
+ # subnet_id: "NonEmptyString",
25298
+ # },
25299
+ # ],
25300
+ # vpc_id: "NonEmptyString",
25301
+ # },
25302
+ # aws_network_firewall_rule_group: {
25303
+ # capacity: 1,
25304
+ # description: "NonEmptyString",
25305
+ # rule_group: {
25306
+ # rule_variables: {
25307
+ # ip_sets: {
25308
+ # definition: ["NonEmptyString"],
25309
+ # },
25310
+ # port_sets: {
25311
+ # definition: ["NonEmptyString"],
25312
+ # },
25313
+ # },
25314
+ # rules_source: {
25315
+ # rules_source_list: {
25316
+ # generated_rules_type: "NonEmptyString",
25317
+ # target_types: ["NonEmptyString"],
25318
+ # targets: ["NonEmptyString"],
25319
+ # },
25320
+ # rules_string: "NonEmptyString",
25321
+ # stateful_rules: [
25322
+ # {
25323
+ # action: "NonEmptyString",
25324
+ # header: {
25325
+ # destination: "NonEmptyString",
25326
+ # destination_port: "NonEmptyString",
25327
+ # direction: "NonEmptyString",
25328
+ # protocol: "NonEmptyString",
25329
+ # source: "NonEmptyString",
25330
+ # source_port: "NonEmptyString",
25331
+ # },
25332
+ # rule_options: [
25333
+ # {
25334
+ # keyword: "NonEmptyString",
25335
+ # settings: ["NonEmptyString"],
25336
+ # },
25337
+ # ],
25338
+ # },
25339
+ # ],
25340
+ # stateless_rules_and_custom_actions: {
25341
+ # custom_actions: [
25342
+ # {
25343
+ # action_definition: {
25344
+ # publish_metric_action: {
25345
+ # dimensions: [
25346
+ # {
25347
+ # value: "NonEmptyString",
25348
+ # },
25349
+ # ],
25350
+ # },
25351
+ # },
25352
+ # action_name: "NonEmptyString",
25353
+ # },
25354
+ # ],
25355
+ # stateless_rules: [
25356
+ # {
25357
+ # priority: 1,
25358
+ # rule_definition: {
25359
+ # actions: ["NonEmptyString"],
25360
+ # match_attributes: {
25361
+ # destination_ports: [
25362
+ # {
25363
+ # from_port: 1,
25364
+ # to_port: 1,
25365
+ # },
25366
+ # ],
25367
+ # destinations: [
25368
+ # {
25369
+ # address_definition: "NonEmptyString",
25370
+ # },
25371
+ # ],
25372
+ # protocols: [1],
25373
+ # source_ports: [
25374
+ # {
25375
+ # from_port: 1,
25376
+ # to_port: 1,
25377
+ # },
25378
+ # ],
25379
+ # sources: [
25380
+ # {
25381
+ # address_definition: "NonEmptyString",
25382
+ # },
25383
+ # ],
25384
+ # tcp_flags: [
25385
+ # {
25386
+ # flags: ["NonEmptyString"],
25387
+ # masks: ["NonEmptyString"],
25388
+ # },
25389
+ # ],
25390
+ # },
25391
+ # },
25392
+ # },
25393
+ # ],
25394
+ # },
25395
+ # },
25396
+ # },
25397
+ # rule_group_arn: "NonEmptyString",
25398
+ # rule_group_id: "NonEmptyString",
25399
+ # rule_group_name: "NonEmptyString",
25400
+ # type: "NonEmptyString",
25401
+ # },
24298
25402
  # },
24299
25403
  # },
24300
25404
  # ],
@@ -24500,6 +25604,7 @@ module Aws::SecurityHub
24500
25604
  # },
24501
25605
  # types: ["NonEmptyString"],
24502
25606
  # },
25607
+ # sample: false,
24503
25608
  # },
24504
25609
  # ],
24505
25610
  # }
@@ -24723,6 +25828,27 @@ module Aws::SecurityHub
24723
25828
  include Aws::Structure
24724
25829
  end
24725
25830
 
25831
+ # Boolean filter for querying findings.
25832
+ #
25833
+ # @note When making an API call, you may pass BooleanFilter
25834
+ # data as a hash:
25835
+ #
25836
+ # {
25837
+ # value: false,
25838
+ # }
25839
+ #
25840
+ # @!attribute [rw] value
25841
+ # The value of the boolean.
25842
+ # @return [Boolean]
25843
+ #
25844
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BooleanFilter AWS API Documentation
25845
+ #
25846
+ class BooleanFilter < Struct.new(
25847
+ :value)
25848
+ SENSITIVE = []
25849
+ include Aws::Structure
25850
+ end
25851
+
24726
25852
  # An occurrence of sensitive data detected in a Microsoft Excel
24727
25853
  # workbook, comma-separated value (CSV) file, or tab-separated value
24728
25854
  # (TSV) file.
@@ -25908,6 +27034,11 @@ module Aws::SecurityHub
25908
27034
  # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
25909
27035
  # },
25910
27036
  # ],
27037
+ # sample: [
27038
+ # {
27039
+ # value: false,
27040
+ # },
27041
+ # ],
25911
27042
  # },
25912
27043
  # group_by_attribute: "NonEmptyString", # required
25913
27044
  # }
@@ -27232,6 +28363,167 @@ module Aws::SecurityHub
27232
28363
  include Aws::Structure
27233
28364
  end
27234
28365
 
28366
+ # Defines the behavior of the firewall.
28367
+ #
28368
+ # @note When making an API call, you may pass FirewallPolicyDetails
28369
+ # data as a hash:
28370
+ #
28371
+ # {
28372
+ # stateful_rule_group_references: [
28373
+ # {
28374
+ # resource_arn: "NonEmptyString",
28375
+ # },
28376
+ # ],
28377
+ # stateless_custom_actions: [
28378
+ # {
28379
+ # action_definition: {
28380
+ # publish_metric_action: {
28381
+ # dimensions: [
28382
+ # {
28383
+ # value: "NonEmptyString",
28384
+ # },
28385
+ # ],
28386
+ # },
28387
+ # },
28388
+ # action_name: "NonEmptyString",
28389
+ # },
28390
+ # ],
28391
+ # stateless_default_actions: ["NonEmptyString"],
28392
+ # stateless_fragment_default_actions: ["NonEmptyString"],
28393
+ # stateless_rule_group_references: [
28394
+ # {
28395
+ # priority: 1,
28396
+ # resource_arn: "NonEmptyString",
28397
+ # },
28398
+ # ],
28399
+ # }
28400
+ #
28401
+ # @!attribute [rw] stateful_rule_group_references
28402
+ # The stateful rule groups that are used in the firewall policy.
28403
+ # @return [Array<Types::FirewallPolicyStatefulRuleGroupReferencesDetails>]
28404
+ #
28405
+ # @!attribute [rw] stateless_custom_actions
28406
+ # The custom action definitions that are available to use in the
28407
+ # firewall policy's `StatelessDefaultActions` setting.
28408
+ # @return [Array<Types::FirewallPolicyStatelessCustomActionsDetails>]
28409
+ #
28410
+ # @!attribute [rw] stateless_default_actions
28411
+ # The actions to take on a packet if it doesn't match any of the
28412
+ # stateless rules in the policy.
28413
+ #
28414
+ # You must specify a standard action (`aws:pass`, `aws:drop`,
28415
+ # `aws:forward_to_sfe`), and can optionally include a custom action
28416
+ # from `StatelessCustomActions`.
28417
+ # @return [Array<String>]
28418
+ #
28419
+ # @!attribute [rw] stateless_fragment_default_actions
28420
+ # The actions to take on a fragmented UDP packet if it doesn't match
28421
+ # any of the stateless rules in the policy.
28422
+ #
28423
+ # You must specify a standard action (`aws:pass`, `aws:drop`,
28424
+ # `aws:forward_to_sfe`), and can optionally include a custom action
28425
+ # from `StatelessCustomActions`.
28426
+ # @return [Array<String>]
28427
+ #
28428
+ # @!attribute [rw] stateless_rule_group_references
28429
+ # The stateless rule groups that are used in the firewall policy.
28430
+ # @return [Array<Types::FirewallPolicyStatelessRuleGroupReferencesDetails>]
28431
+ #
28432
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/FirewallPolicyDetails AWS API Documentation
28433
+ #
28434
+ class FirewallPolicyDetails < Struct.new(
28435
+ :stateful_rule_group_references,
28436
+ :stateless_custom_actions,
28437
+ :stateless_default_actions,
28438
+ :stateless_fragment_default_actions,
28439
+ :stateless_rule_group_references)
28440
+ SENSITIVE = []
28441
+ include Aws::Structure
28442
+ end
28443
+
28444
+ # A stateful rule group that is used by the firewall policy.
28445
+ #
28446
+ # @note When making an API call, you may pass FirewallPolicyStatefulRuleGroupReferencesDetails
28447
+ # data as a hash:
28448
+ #
28449
+ # {
28450
+ # resource_arn: "NonEmptyString",
28451
+ # }
28452
+ #
28453
+ # @!attribute [rw] resource_arn
28454
+ # The ARN of the stateful rule group.
28455
+ # @return [String]
28456
+ #
28457
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/FirewallPolicyStatefulRuleGroupReferencesDetails AWS API Documentation
28458
+ #
28459
+ class FirewallPolicyStatefulRuleGroupReferencesDetails < Struct.new(
28460
+ :resource_arn)
28461
+ SENSITIVE = []
28462
+ include Aws::Structure
28463
+ end
28464
+
28465
+ # A custom action that can be used for stateless packet handling.
28466
+ #
28467
+ # @note When making an API call, you may pass FirewallPolicyStatelessCustomActionsDetails
28468
+ # data as a hash:
28469
+ #
28470
+ # {
28471
+ # action_definition: {
28472
+ # publish_metric_action: {
28473
+ # dimensions: [
28474
+ # {
28475
+ # value: "NonEmptyString",
28476
+ # },
28477
+ # ],
28478
+ # },
28479
+ # },
28480
+ # action_name: "NonEmptyString",
28481
+ # }
28482
+ #
28483
+ # @!attribute [rw] action_definition
28484
+ # The definition of the custom action.
28485
+ # @return [Types::StatelessCustomActionDefinition]
28486
+ #
28487
+ # @!attribute [rw] action_name
28488
+ # The name of the custom action.
28489
+ # @return [String]
28490
+ #
28491
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/FirewallPolicyStatelessCustomActionsDetails AWS API Documentation
28492
+ #
28493
+ class FirewallPolicyStatelessCustomActionsDetails < Struct.new(
28494
+ :action_definition,
28495
+ :action_name)
28496
+ SENSITIVE = []
28497
+ include Aws::Structure
28498
+ end
28499
+
28500
+ # A stateless rule group that is used by the firewall policy.
28501
+ #
28502
+ # @note When making an API call, you may pass FirewallPolicyStatelessRuleGroupReferencesDetails
28503
+ # data as a hash:
28504
+ #
28505
+ # {
28506
+ # priority: 1,
28507
+ # resource_arn: "NonEmptyString",
28508
+ # }
28509
+ #
28510
+ # @!attribute [rw] priority
28511
+ # The order in which to run the stateless rule group.
28512
+ # @return [Integer]
28513
+ #
28514
+ # @!attribute [rw] resource_arn
28515
+ # The ARN of the stateless rule group.
28516
+ # @return [String]
28517
+ #
28518
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/FirewallPolicyStatelessRuleGroupReferencesDetails AWS API Documentation
28519
+ #
28520
+ class FirewallPolicyStatelessRuleGroupReferencesDetails < Struct.new(
28521
+ :priority,
28522
+ :resource_arn)
28523
+ SENSITIVE = []
28524
+ include Aws::Structure
28525
+ end
28526
+
27235
28527
  # Provides the latitude and longitude coordinates of a location.
27236
28528
  #
27237
28529
  # @note When making an API call, you may pass GeoLocation
@@ -28001,6 +29293,11 @@ module Aws::SecurityHub
28001
29293
  # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
28002
29294
  # },
28003
29295
  # ],
29296
+ # sample: [
29297
+ # {
29298
+ # value: false,
29299
+ # },
29300
+ # ],
28004
29301
  # },
28005
29302
  # sort_criteria: [
28006
29303
  # {
@@ -30408,6 +31705,34 @@ module Aws::SecurityHub
30408
31705
  # health_check_type: "NonEmptyString",
30409
31706
  # health_check_grace_period: 1,
30410
31707
  # created_time: "NonEmptyString",
31708
+ # mixed_instances_policy: {
31709
+ # instances_distribution: {
31710
+ # on_demand_allocation_strategy: "NonEmptyString",
31711
+ # on_demand_base_capacity: 1,
31712
+ # on_demand_percentage_above_base_capacity: 1,
31713
+ # spot_allocation_strategy: "NonEmptyString",
31714
+ # spot_instance_pools: 1,
31715
+ # spot_max_price: "NonEmptyString",
31716
+ # },
31717
+ # launch_template: {
31718
+ # launch_template_specification: {
31719
+ # launch_template_id: "NonEmptyString",
31720
+ # launch_template_name: "NonEmptyString",
31721
+ # version: "NonEmptyString",
31722
+ # },
31723
+ # overrides: [
31724
+ # {
31725
+ # instance_type: "NonEmptyString",
31726
+ # weighted_capacity: "NonEmptyString",
31727
+ # },
31728
+ # ],
31729
+ # },
31730
+ # },
31731
+ # availability_zones: [
31732
+ # {
31733
+ # value: "NonEmptyString",
31734
+ # },
31735
+ # ],
30411
31736
  # },
30412
31737
  # aws_code_build_project: {
30413
31738
  # encryption_key: "NonEmptyString",
@@ -30978,6 +32303,10 @@ module Aws::SecurityHub
30978
32303
  # },
30979
32304
  # ],
30980
32305
  # },
32306
+ # bucket_versioning_configuration: {
32307
+ # is_mfa_delete_enabled: false,
32308
+ # status: "NonEmptyString",
32309
+ # },
30981
32310
  # },
30982
32311
  # aws_s3_account_public_access_block: {
30983
32312
  # block_public_acls: false,
@@ -32392,6 +33721,11 @@ module Aws::SecurityHub
32392
33721
  # security_groups: ["NonEmptyString"],
32393
33722
  # spot_price: "NonEmptyString",
32394
33723
  # user_data: "NonEmptyString",
33724
+ # metadata_options: {
33725
+ # http_endpoint: "NonEmptyString",
33726
+ # http_put_response_hop_limit: 1,
33727
+ # http_tokens: "NonEmptyString",
33728
+ # },
32395
33729
  # },
32396
33730
  # aws_ec2_vpn_connection: {
32397
33731
  # vpn_connection_id: "NonEmptyString",
@@ -32601,6 +33935,157 @@ module Aws::SecurityHub
32601
33935
  # ],
32602
33936
  # },
32603
33937
  # },
33938
+ # aws_network_firewall_firewall_policy: {
33939
+ # firewall_policy: {
33940
+ # stateful_rule_group_references: [
33941
+ # {
33942
+ # resource_arn: "NonEmptyString",
33943
+ # },
33944
+ # ],
33945
+ # stateless_custom_actions: [
33946
+ # {
33947
+ # action_definition: {
33948
+ # publish_metric_action: {
33949
+ # dimensions: [
33950
+ # {
33951
+ # value: "NonEmptyString",
33952
+ # },
33953
+ # ],
33954
+ # },
33955
+ # },
33956
+ # action_name: "NonEmptyString",
33957
+ # },
33958
+ # ],
33959
+ # stateless_default_actions: ["NonEmptyString"],
33960
+ # stateless_fragment_default_actions: ["NonEmptyString"],
33961
+ # stateless_rule_group_references: [
33962
+ # {
33963
+ # priority: 1,
33964
+ # resource_arn: "NonEmptyString",
33965
+ # },
33966
+ # ],
33967
+ # },
33968
+ # firewall_policy_arn: "NonEmptyString",
33969
+ # firewall_policy_id: "NonEmptyString",
33970
+ # firewall_policy_name: "NonEmptyString",
33971
+ # description: "NonEmptyString",
33972
+ # },
33973
+ # aws_network_firewall_firewall: {
33974
+ # delete_protection: false,
33975
+ # description: "NonEmptyString",
33976
+ # firewall_arn: "NonEmptyString",
33977
+ # firewall_id: "NonEmptyString",
33978
+ # firewall_name: "NonEmptyString",
33979
+ # firewall_policy_arn: "NonEmptyString",
33980
+ # firewall_policy_change_protection: false,
33981
+ # subnet_change_protection: false,
33982
+ # subnet_mappings: [
33983
+ # {
33984
+ # subnet_id: "NonEmptyString",
33985
+ # },
33986
+ # ],
33987
+ # vpc_id: "NonEmptyString",
33988
+ # },
33989
+ # aws_network_firewall_rule_group: {
33990
+ # capacity: 1,
33991
+ # description: "NonEmptyString",
33992
+ # rule_group: {
33993
+ # rule_variables: {
33994
+ # ip_sets: {
33995
+ # definition: ["NonEmptyString"],
33996
+ # },
33997
+ # port_sets: {
33998
+ # definition: ["NonEmptyString"],
33999
+ # },
34000
+ # },
34001
+ # rules_source: {
34002
+ # rules_source_list: {
34003
+ # generated_rules_type: "NonEmptyString",
34004
+ # target_types: ["NonEmptyString"],
34005
+ # targets: ["NonEmptyString"],
34006
+ # },
34007
+ # rules_string: "NonEmptyString",
34008
+ # stateful_rules: [
34009
+ # {
34010
+ # action: "NonEmptyString",
34011
+ # header: {
34012
+ # destination: "NonEmptyString",
34013
+ # destination_port: "NonEmptyString",
34014
+ # direction: "NonEmptyString",
34015
+ # protocol: "NonEmptyString",
34016
+ # source: "NonEmptyString",
34017
+ # source_port: "NonEmptyString",
34018
+ # },
34019
+ # rule_options: [
34020
+ # {
34021
+ # keyword: "NonEmptyString",
34022
+ # settings: ["NonEmptyString"],
34023
+ # },
34024
+ # ],
34025
+ # },
34026
+ # ],
34027
+ # stateless_rules_and_custom_actions: {
34028
+ # custom_actions: [
34029
+ # {
34030
+ # action_definition: {
34031
+ # publish_metric_action: {
34032
+ # dimensions: [
34033
+ # {
34034
+ # value: "NonEmptyString",
34035
+ # },
34036
+ # ],
34037
+ # },
34038
+ # },
34039
+ # action_name: "NonEmptyString",
34040
+ # },
34041
+ # ],
34042
+ # stateless_rules: [
34043
+ # {
34044
+ # priority: 1,
34045
+ # rule_definition: {
34046
+ # actions: ["NonEmptyString"],
34047
+ # match_attributes: {
34048
+ # destination_ports: [
34049
+ # {
34050
+ # from_port: 1,
34051
+ # to_port: 1,
34052
+ # },
34053
+ # ],
34054
+ # destinations: [
34055
+ # {
34056
+ # address_definition: "NonEmptyString",
34057
+ # },
34058
+ # ],
34059
+ # protocols: [1],
34060
+ # source_ports: [
34061
+ # {
34062
+ # from_port: 1,
34063
+ # to_port: 1,
34064
+ # },
34065
+ # ],
34066
+ # sources: [
34067
+ # {
34068
+ # address_definition: "NonEmptyString",
34069
+ # },
34070
+ # ],
34071
+ # tcp_flags: [
34072
+ # {
34073
+ # flags: ["NonEmptyString"],
34074
+ # masks: ["NonEmptyString"],
34075
+ # },
34076
+ # ],
34077
+ # },
34078
+ # },
34079
+ # },
34080
+ # ],
34081
+ # },
34082
+ # },
34083
+ # },
34084
+ # rule_group_arn: "NonEmptyString",
34085
+ # rule_group_id: "NonEmptyString",
34086
+ # rule_group_name: "NonEmptyString",
34087
+ # type: "NonEmptyString",
34088
+ # },
32604
34089
  # },
32605
34090
  # }
32606
34091
  #
@@ -32703,6 +34188,34 @@ module Aws::SecurityHub
32703
34188
  # health_check_type: "NonEmptyString",
32704
34189
  # health_check_grace_period: 1,
32705
34190
  # created_time: "NonEmptyString",
34191
+ # mixed_instances_policy: {
34192
+ # instances_distribution: {
34193
+ # on_demand_allocation_strategy: "NonEmptyString",
34194
+ # on_demand_base_capacity: 1,
34195
+ # on_demand_percentage_above_base_capacity: 1,
34196
+ # spot_allocation_strategy: "NonEmptyString",
34197
+ # spot_instance_pools: 1,
34198
+ # spot_max_price: "NonEmptyString",
34199
+ # },
34200
+ # launch_template: {
34201
+ # launch_template_specification: {
34202
+ # launch_template_id: "NonEmptyString",
34203
+ # launch_template_name: "NonEmptyString",
34204
+ # version: "NonEmptyString",
34205
+ # },
34206
+ # overrides: [
34207
+ # {
34208
+ # instance_type: "NonEmptyString",
34209
+ # weighted_capacity: "NonEmptyString",
34210
+ # },
34211
+ # ],
34212
+ # },
34213
+ # },
34214
+ # availability_zones: [
34215
+ # {
34216
+ # value: "NonEmptyString",
34217
+ # },
34218
+ # ],
32706
34219
  # },
32707
34220
  # aws_code_build_project: {
32708
34221
  # encryption_key: "NonEmptyString",
@@ -33273,6 +34786,10 @@ module Aws::SecurityHub
33273
34786
  # },
33274
34787
  # ],
33275
34788
  # },
34789
+ # bucket_versioning_configuration: {
34790
+ # is_mfa_delete_enabled: false,
34791
+ # status: "NonEmptyString",
34792
+ # },
33276
34793
  # },
33277
34794
  # aws_s3_account_public_access_block: {
33278
34795
  # block_public_acls: false,
@@ -34687,6 +36204,11 @@ module Aws::SecurityHub
34687
36204
  # security_groups: ["NonEmptyString"],
34688
36205
  # spot_price: "NonEmptyString",
34689
36206
  # user_data: "NonEmptyString",
36207
+ # metadata_options: {
36208
+ # http_endpoint: "NonEmptyString",
36209
+ # http_put_response_hop_limit: 1,
36210
+ # http_tokens: "NonEmptyString",
36211
+ # },
34690
36212
  # },
34691
36213
  # aws_ec2_vpn_connection: {
34692
36214
  # vpn_connection_id: "NonEmptyString",
@@ -34896,6 +36418,157 @@ module Aws::SecurityHub
34896
36418
  # ],
34897
36419
  # },
34898
36420
  # },
36421
+ # aws_network_firewall_firewall_policy: {
36422
+ # firewall_policy: {
36423
+ # stateful_rule_group_references: [
36424
+ # {
36425
+ # resource_arn: "NonEmptyString",
36426
+ # },
36427
+ # ],
36428
+ # stateless_custom_actions: [
36429
+ # {
36430
+ # action_definition: {
36431
+ # publish_metric_action: {
36432
+ # dimensions: [
36433
+ # {
36434
+ # value: "NonEmptyString",
36435
+ # },
36436
+ # ],
36437
+ # },
36438
+ # },
36439
+ # action_name: "NonEmptyString",
36440
+ # },
36441
+ # ],
36442
+ # stateless_default_actions: ["NonEmptyString"],
36443
+ # stateless_fragment_default_actions: ["NonEmptyString"],
36444
+ # stateless_rule_group_references: [
36445
+ # {
36446
+ # priority: 1,
36447
+ # resource_arn: "NonEmptyString",
36448
+ # },
36449
+ # ],
36450
+ # },
36451
+ # firewall_policy_arn: "NonEmptyString",
36452
+ # firewall_policy_id: "NonEmptyString",
36453
+ # firewall_policy_name: "NonEmptyString",
36454
+ # description: "NonEmptyString",
36455
+ # },
36456
+ # aws_network_firewall_firewall: {
36457
+ # delete_protection: false,
36458
+ # description: "NonEmptyString",
36459
+ # firewall_arn: "NonEmptyString",
36460
+ # firewall_id: "NonEmptyString",
36461
+ # firewall_name: "NonEmptyString",
36462
+ # firewall_policy_arn: "NonEmptyString",
36463
+ # firewall_policy_change_protection: false,
36464
+ # subnet_change_protection: false,
36465
+ # subnet_mappings: [
36466
+ # {
36467
+ # subnet_id: "NonEmptyString",
36468
+ # },
36469
+ # ],
36470
+ # vpc_id: "NonEmptyString",
36471
+ # },
36472
+ # aws_network_firewall_rule_group: {
36473
+ # capacity: 1,
36474
+ # description: "NonEmptyString",
36475
+ # rule_group: {
36476
+ # rule_variables: {
36477
+ # ip_sets: {
36478
+ # definition: ["NonEmptyString"],
36479
+ # },
36480
+ # port_sets: {
36481
+ # definition: ["NonEmptyString"],
36482
+ # },
36483
+ # },
36484
+ # rules_source: {
36485
+ # rules_source_list: {
36486
+ # generated_rules_type: "NonEmptyString",
36487
+ # target_types: ["NonEmptyString"],
36488
+ # targets: ["NonEmptyString"],
36489
+ # },
36490
+ # rules_string: "NonEmptyString",
36491
+ # stateful_rules: [
36492
+ # {
36493
+ # action: "NonEmptyString",
36494
+ # header: {
36495
+ # destination: "NonEmptyString",
36496
+ # destination_port: "NonEmptyString",
36497
+ # direction: "NonEmptyString",
36498
+ # protocol: "NonEmptyString",
36499
+ # source: "NonEmptyString",
36500
+ # source_port: "NonEmptyString",
36501
+ # },
36502
+ # rule_options: [
36503
+ # {
36504
+ # keyword: "NonEmptyString",
36505
+ # settings: ["NonEmptyString"],
36506
+ # },
36507
+ # ],
36508
+ # },
36509
+ # ],
36510
+ # stateless_rules_and_custom_actions: {
36511
+ # custom_actions: [
36512
+ # {
36513
+ # action_definition: {
36514
+ # publish_metric_action: {
36515
+ # dimensions: [
36516
+ # {
36517
+ # value: "NonEmptyString",
36518
+ # },
36519
+ # ],
36520
+ # },
36521
+ # },
36522
+ # action_name: "NonEmptyString",
36523
+ # },
36524
+ # ],
36525
+ # stateless_rules: [
36526
+ # {
36527
+ # priority: 1,
36528
+ # rule_definition: {
36529
+ # actions: ["NonEmptyString"],
36530
+ # match_attributes: {
36531
+ # destination_ports: [
36532
+ # {
36533
+ # from_port: 1,
36534
+ # to_port: 1,
36535
+ # },
36536
+ # ],
36537
+ # destinations: [
36538
+ # {
36539
+ # address_definition: "NonEmptyString",
36540
+ # },
36541
+ # ],
36542
+ # protocols: [1],
36543
+ # source_ports: [
36544
+ # {
36545
+ # from_port: 1,
36546
+ # to_port: 1,
36547
+ # },
36548
+ # ],
36549
+ # sources: [
36550
+ # {
36551
+ # address_definition: "NonEmptyString",
36552
+ # },
36553
+ # ],
36554
+ # tcp_flags: [
36555
+ # {
36556
+ # flags: ["NonEmptyString"],
36557
+ # masks: ["NonEmptyString"],
36558
+ # },
36559
+ # ],
36560
+ # },
36561
+ # },
36562
+ # },
36563
+ # ],
36564
+ # },
36565
+ # },
36566
+ # },
36567
+ # rule_group_arn: "NonEmptyString",
36568
+ # rule_group_id: "NonEmptyString",
36569
+ # rule_group_name: "NonEmptyString",
36570
+ # type: "NonEmptyString",
36571
+ # },
34899
36572
  # }
34900
36573
  #
34901
36574
  # @!attribute [rw] aws_auto_scaling_auto_scaling_group
@@ -35149,6 +36822,18 @@ module Aws::SecurityHub
35149
36822
  # Details about an Amazon EKS cluster.
35150
36823
  # @return [Types::AwsEksClusterDetails]
35151
36824
  #
36825
+ # @!attribute [rw] aws_network_firewall_firewall_policy
36826
+ # Details about an Network Firewall firewall policy.
36827
+ # @return [Types::AwsNetworkFirewallFirewallPolicyDetails]
36828
+ #
36829
+ # @!attribute [rw] aws_network_firewall_firewall
36830
+ # Details about an Network Firewall firewall.
36831
+ # @return [Types::AwsNetworkFirewallFirewallDetails]
36832
+ #
36833
+ # @!attribute [rw] aws_network_firewall_rule_group
36834
+ # Details about an Network Firewall rule group.
36835
+ # @return [Types::AwsNetworkFirewallRuleGroupDetails]
36836
+ #
35152
36837
  # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ResourceDetails AWS API Documentation
35153
36838
  #
35154
36839
  class ResourceDetails < Struct.new(
@@ -35210,7 +36895,10 @@ module Aws::SecurityHub
35210
36895
  :aws_waf_rate_based_rule,
35211
36896
  :aws_waf_regional_rate_based_rule,
35212
36897
  :aws_ecr_repository,
35213
- :aws_eks_cluster)
36898
+ :aws_eks_cluster,
36899
+ :aws_network_firewall_firewall_policy,
36900
+ :aws_network_firewall_firewall,
36901
+ :aws_network_firewall_rule_group)
35214
36902
  SENSITIVE = []
35215
36903
  include Aws::Structure
35216
36904
  end
@@ -35253,6 +36941,931 @@ module Aws::SecurityHub
35253
36941
  include Aws::Structure
35254
36942
  end
35255
36943
 
36944
+ # Details about the rule group.
36945
+ #
36946
+ # @note When making an API call, you may pass RuleGroupDetails
36947
+ # data as a hash:
36948
+ #
36949
+ # {
36950
+ # rule_variables: {
36951
+ # ip_sets: {
36952
+ # definition: ["NonEmptyString"],
36953
+ # },
36954
+ # port_sets: {
36955
+ # definition: ["NonEmptyString"],
36956
+ # },
36957
+ # },
36958
+ # rules_source: {
36959
+ # rules_source_list: {
36960
+ # generated_rules_type: "NonEmptyString",
36961
+ # target_types: ["NonEmptyString"],
36962
+ # targets: ["NonEmptyString"],
36963
+ # },
36964
+ # rules_string: "NonEmptyString",
36965
+ # stateful_rules: [
36966
+ # {
36967
+ # action: "NonEmptyString",
36968
+ # header: {
36969
+ # destination: "NonEmptyString",
36970
+ # destination_port: "NonEmptyString",
36971
+ # direction: "NonEmptyString",
36972
+ # protocol: "NonEmptyString",
36973
+ # source: "NonEmptyString",
36974
+ # source_port: "NonEmptyString",
36975
+ # },
36976
+ # rule_options: [
36977
+ # {
36978
+ # keyword: "NonEmptyString",
36979
+ # settings: ["NonEmptyString"],
36980
+ # },
36981
+ # ],
36982
+ # },
36983
+ # ],
36984
+ # stateless_rules_and_custom_actions: {
36985
+ # custom_actions: [
36986
+ # {
36987
+ # action_definition: {
36988
+ # publish_metric_action: {
36989
+ # dimensions: [
36990
+ # {
36991
+ # value: "NonEmptyString",
36992
+ # },
36993
+ # ],
36994
+ # },
36995
+ # },
36996
+ # action_name: "NonEmptyString",
36997
+ # },
36998
+ # ],
36999
+ # stateless_rules: [
37000
+ # {
37001
+ # priority: 1,
37002
+ # rule_definition: {
37003
+ # actions: ["NonEmptyString"],
37004
+ # match_attributes: {
37005
+ # destination_ports: [
37006
+ # {
37007
+ # from_port: 1,
37008
+ # to_port: 1,
37009
+ # },
37010
+ # ],
37011
+ # destinations: [
37012
+ # {
37013
+ # address_definition: "NonEmptyString",
37014
+ # },
37015
+ # ],
37016
+ # protocols: [1],
37017
+ # source_ports: [
37018
+ # {
37019
+ # from_port: 1,
37020
+ # to_port: 1,
37021
+ # },
37022
+ # ],
37023
+ # sources: [
37024
+ # {
37025
+ # address_definition: "NonEmptyString",
37026
+ # },
37027
+ # ],
37028
+ # tcp_flags: [
37029
+ # {
37030
+ # flags: ["NonEmptyString"],
37031
+ # masks: ["NonEmptyString"],
37032
+ # },
37033
+ # ],
37034
+ # },
37035
+ # },
37036
+ # },
37037
+ # ],
37038
+ # },
37039
+ # },
37040
+ # }
37041
+ #
37042
+ # @!attribute [rw] rule_variables
37043
+ # Additional settings to use in the specified rules.
37044
+ # @return [Types::RuleGroupVariables]
37045
+ #
37046
+ # @!attribute [rw] rules_source
37047
+ # The rules and actions for the rule group.
37048
+ #
37049
+ # For stateful rule groups, can contain `RulesString`,
37050
+ # `RulesSourceList`, or `StatefulRules`.
37051
+ #
37052
+ # For stateless rule groups, contains
37053
+ # `StatelessRulesAndCustomActions`.
37054
+ # @return [Types::RuleGroupSource]
37055
+ #
37056
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/RuleGroupDetails AWS API Documentation
37057
+ #
37058
+ class RuleGroupDetails < Struct.new(
37059
+ :rule_variables,
37060
+ :rules_source)
37061
+ SENSITIVE = []
37062
+ include Aws::Structure
37063
+ end
37064
+
37065
+ # The rules and actions for the rule group.
37066
+ #
37067
+ # @note When making an API call, you may pass RuleGroupSource
37068
+ # data as a hash:
37069
+ #
37070
+ # {
37071
+ # rules_source_list: {
37072
+ # generated_rules_type: "NonEmptyString",
37073
+ # target_types: ["NonEmptyString"],
37074
+ # targets: ["NonEmptyString"],
37075
+ # },
37076
+ # rules_string: "NonEmptyString",
37077
+ # stateful_rules: [
37078
+ # {
37079
+ # action: "NonEmptyString",
37080
+ # header: {
37081
+ # destination: "NonEmptyString",
37082
+ # destination_port: "NonEmptyString",
37083
+ # direction: "NonEmptyString",
37084
+ # protocol: "NonEmptyString",
37085
+ # source: "NonEmptyString",
37086
+ # source_port: "NonEmptyString",
37087
+ # },
37088
+ # rule_options: [
37089
+ # {
37090
+ # keyword: "NonEmptyString",
37091
+ # settings: ["NonEmptyString"],
37092
+ # },
37093
+ # ],
37094
+ # },
37095
+ # ],
37096
+ # stateless_rules_and_custom_actions: {
37097
+ # custom_actions: [
37098
+ # {
37099
+ # action_definition: {
37100
+ # publish_metric_action: {
37101
+ # dimensions: [
37102
+ # {
37103
+ # value: "NonEmptyString",
37104
+ # },
37105
+ # ],
37106
+ # },
37107
+ # },
37108
+ # action_name: "NonEmptyString",
37109
+ # },
37110
+ # ],
37111
+ # stateless_rules: [
37112
+ # {
37113
+ # priority: 1,
37114
+ # rule_definition: {
37115
+ # actions: ["NonEmptyString"],
37116
+ # match_attributes: {
37117
+ # destination_ports: [
37118
+ # {
37119
+ # from_port: 1,
37120
+ # to_port: 1,
37121
+ # },
37122
+ # ],
37123
+ # destinations: [
37124
+ # {
37125
+ # address_definition: "NonEmptyString",
37126
+ # },
37127
+ # ],
37128
+ # protocols: [1],
37129
+ # source_ports: [
37130
+ # {
37131
+ # from_port: 1,
37132
+ # to_port: 1,
37133
+ # },
37134
+ # ],
37135
+ # sources: [
37136
+ # {
37137
+ # address_definition: "NonEmptyString",
37138
+ # },
37139
+ # ],
37140
+ # tcp_flags: [
37141
+ # {
37142
+ # flags: ["NonEmptyString"],
37143
+ # masks: ["NonEmptyString"],
37144
+ # },
37145
+ # ],
37146
+ # },
37147
+ # },
37148
+ # },
37149
+ # ],
37150
+ # },
37151
+ # }
37152
+ #
37153
+ # @!attribute [rw] rules_source_list
37154
+ # Stateful inspection criteria for a domain list rule group. A domain
37155
+ # list rule group determines access by specific protocols to specific
37156
+ # domains.
37157
+ # @return [Types::RuleGroupSourceListDetails]
37158
+ #
37159
+ # @!attribute [rw] rules_string
37160
+ # Stateful inspection criteria, provided in Suricata compatible
37161
+ # intrusion prevention system (IPS) rules.
37162
+ # @return [String]
37163
+ #
37164
+ # @!attribute [rw] stateful_rules
37165
+ # Suricata rule specifications.
37166
+ # @return [Array<Types::RuleGroupSourceStatefulRulesDetails>]
37167
+ #
37168
+ # @!attribute [rw] stateless_rules_and_custom_actions
37169
+ # The stateless rules and custom actions used by a stateless rule
37170
+ # group.
37171
+ # @return [Types::RuleGroupSourceStatelessRulesAndCustomActionsDetails]
37172
+ #
37173
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/RuleGroupSource AWS API Documentation
37174
+ #
37175
+ class RuleGroupSource < Struct.new(
37176
+ :rules_source_list,
37177
+ :rules_string,
37178
+ :stateful_rules,
37179
+ :stateless_rules_and_custom_actions)
37180
+ SENSITIVE = []
37181
+ include Aws::Structure
37182
+ end
37183
+
37184
+ # A custom action definition. A custom action is an optional,
37185
+ # non-standard action to use for stateless packet handling.
37186
+ #
37187
+ # @note When making an API call, you may pass RuleGroupSourceCustomActionsDetails
37188
+ # data as a hash:
37189
+ #
37190
+ # {
37191
+ # action_definition: {
37192
+ # publish_metric_action: {
37193
+ # dimensions: [
37194
+ # {
37195
+ # value: "NonEmptyString",
37196
+ # },
37197
+ # ],
37198
+ # },
37199
+ # },
37200
+ # action_name: "NonEmptyString",
37201
+ # }
37202
+ #
37203
+ # @!attribute [rw] action_definition
37204
+ # The definition of a custom action.
37205
+ # @return [Types::StatelessCustomActionDefinition]
37206
+ #
37207
+ # @!attribute [rw] action_name
37208
+ # A descriptive name of the custom action.
37209
+ # @return [String]
37210
+ #
37211
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/RuleGroupSourceCustomActionsDetails AWS API Documentation
37212
+ #
37213
+ class RuleGroupSourceCustomActionsDetails < Struct.new(
37214
+ :action_definition,
37215
+ :action_name)
37216
+ SENSITIVE = []
37217
+ include Aws::Structure
37218
+ end
37219
+
37220
+ # Stateful inspection criteria for a domain list rule group.
37221
+ #
37222
+ # @note When making an API call, you may pass RuleGroupSourceListDetails
37223
+ # data as a hash:
37224
+ #
37225
+ # {
37226
+ # generated_rules_type: "NonEmptyString",
37227
+ # target_types: ["NonEmptyString"],
37228
+ # targets: ["NonEmptyString"],
37229
+ # }
37230
+ #
37231
+ # @!attribute [rw] generated_rules_type
37232
+ # Indicates whether to allow or deny access to the domains listed in
37233
+ # `Targets`.
37234
+ # @return [String]
37235
+ #
37236
+ # @!attribute [rw] target_types
37237
+ # The protocols that you want to inspect. Specify `LS_SNI` for HTTPS.
37238
+ # Specify `HTTP_HOST` for HTTP. You can specify either or both.
37239
+ # @return [Array<String>]
37240
+ #
37241
+ # @!attribute [rw] targets
37242
+ # The domains that you want to inspect for in your traffic flows. You
37243
+ # can provide full domain names, or use the '.' prefix as a
37244
+ # wildcard. For example, `.example.com` matches all domains that end
37245
+ # with `example.com`.
37246
+ # @return [Array<String>]
37247
+ #
37248
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/RuleGroupSourceListDetails AWS API Documentation
37249
+ #
37250
+ class RuleGroupSourceListDetails < Struct.new(
37251
+ :generated_rules_type,
37252
+ :target_types,
37253
+ :targets)
37254
+ SENSITIVE = []
37255
+ include Aws::Structure
37256
+ end
37257
+
37258
+ # A Suricata rule specification.
37259
+ #
37260
+ # @note When making an API call, you may pass RuleGroupSourceStatefulRulesDetails
37261
+ # data as a hash:
37262
+ #
37263
+ # {
37264
+ # action: "NonEmptyString",
37265
+ # header: {
37266
+ # destination: "NonEmptyString",
37267
+ # destination_port: "NonEmptyString",
37268
+ # direction: "NonEmptyString",
37269
+ # protocol: "NonEmptyString",
37270
+ # source: "NonEmptyString",
37271
+ # source_port: "NonEmptyString",
37272
+ # },
37273
+ # rule_options: [
37274
+ # {
37275
+ # keyword: "NonEmptyString",
37276
+ # settings: ["NonEmptyString"],
37277
+ # },
37278
+ # ],
37279
+ # }
37280
+ #
37281
+ # @!attribute [rw] action
37282
+ # Defines what Network Firewall should do with the packets in a
37283
+ # traffic flow when the flow matches the stateful rule criteria.
37284
+ # @return [String]
37285
+ #
37286
+ # @!attribute [rw] header
37287
+ # The stateful inspection criteria for the rule.
37288
+ # @return [Types::RuleGroupSourceStatefulRulesHeaderDetails]
37289
+ #
37290
+ # @!attribute [rw] rule_options
37291
+ # Additional options for the rule.
37292
+ # @return [Array<Types::RuleGroupSourceStatefulRulesOptionsDetails>]
37293
+ #
37294
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/RuleGroupSourceStatefulRulesDetails AWS API Documentation
37295
+ #
37296
+ class RuleGroupSourceStatefulRulesDetails < Struct.new(
37297
+ :action,
37298
+ :header,
37299
+ :rule_options)
37300
+ SENSITIVE = []
37301
+ include Aws::Structure
37302
+ end
37303
+
37304
+ # The inspection criteria for a stateful rule.
37305
+ #
37306
+ # @note When making an API call, you may pass RuleGroupSourceStatefulRulesHeaderDetails
37307
+ # data as a hash:
37308
+ #
37309
+ # {
37310
+ # destination: "NonEmptyString",
37311
+ # destination_port: "NonEmptyString",
37312
+ # direction: "NonEmptyString",
37313
+ # protocol: "NonEmptyString",
37314
+ # source: "NonEmptyString",
37315
+ # source_port: "NonEmptyString",
37316
+ # }
37317
+ #
37318
+ # @!attribute [rw] destination
37319
+ # The destination IP address or address range to inspect for, in CIDR
37320
+ # notation. To match with any address, specify `ANY`.
37321
+ # @return [String]
37322
+ #
37323
+ # @!attribute [rw] destination_port
37324
+ # The destination port to inspect for. You can specify an individual
37325
+ # port, such as `1994`. You also can specify a port range, such as
37326
+ # `1990:1994`. To match with any port, specify `ANY`.
37327
+ # @return [String]
37328
+ #
37329
+ # @!attribute [rw] direction
37330
+ # The direction of traffic flow to inspect. If set to `ANY`, the
37331
+ # inspection matches bidirectional traffic, both from the source to
37332
+ # the destination and from the destination to the source. If set to
37333
+ # `FORWARD`, the inspection only matches traffic going from the source
37334
+ # to the destination.
37335
+ # @return [String]
37336
+ #
37337
+ # @!attribute [rw] protocol
37338
+ # The protocol to inspect for. To inspector for all protocols, use
37339
+ # `IP`.
37340
+ # @return [String]
37341
+ #
37342
+ # @!attribute [rw] source
37343
+ # The source IP address or address range to inspect for, in CIDR
37344
+ # notation. To match with any address, specify `ANY`.
37345
+ # @return [String]
37346
+ #
37347
+ # @!attribute [rw] source_port
37348
+ # The source port to inspect for. You can specify an individual port,
37349
+ # such as `1994`. You also can specify a port range, such as
37350
+ # `1990:1994`. To match with any port, specify `ANY`.
37351
+ # @return [String]
37352
+ #
37353
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/RuleGroupSourceStatefulRulesHeaderDetails AWS API Documentation
37354
+ #
37355
+ class RuleGroupSourceStatefulRulesHeaderDetails < Struct.new(
37356
+ :destination,
37357
+ :destination_port,
37358
+ :direction,
37359
+ :protocol,
37360
+ :source,
37361
+ :source_port)
37362
+ SENSITIVE = []
37363
+ include Aws::Structure
37364
+ end
37365
+
37366
+ # A rule option for a stateful rule.
37367
+ #
37368
+ # @note When making an API call, you may pass RuleGroupSourceStatefulRulesOptionsDetails
37369
+ # data as a hash:
37370
+ #
37371
+ # {
37372
+ # keyword: "NonEmptyString",
37373
+ # settings: ["NonEmptyString"],
37374
+ # }
37375
+ #
37376
+ # @!attribute [rw] keyword
37377
+ # A keyword to look for.
37378
+ # @return [String]
37379
+ #
37380
+ # @!attribute [rw] settings
37381
+ # A list of settings.
37382
+ # @return [Array<String>]
37383
+ #
37384
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/RuleGroupSourceStatefulRulesOptionsDetails AWS API Documentation
37385
+ #
37386
+ class RuleGroupSourceStatefulRulesOptionsDetails < Struct.new(
37387
+ :keyword,
37388
+ :settings)
37389
+ SENSITIVE = []
37390
+ include Aws::Structure
37391
+ end
37392
+
37393
+ # The definition of the stateless rule.
37394
+ #
37395
+ # @note When making an API call, you may pass RuleGroupSourceStatelessRuleDefinition
37396
+ # data as a hash:
37397
+ #
37398
+ # {
37399
+ # actions: ["NonEmptyString"],
37400
+ # match_attributes: {
37401
+ # destination_ports: [
37402
+ # {
37403
+ # from_port: 1,
37404
+ # to_port: 1,
37405
+ # },
37406
+ # ],
37407
+ # destinations: [
37408
+ # {
37409
+ # address_definition: "NonEmptyString",
37410
+ # },
37411
+ # ],
37412
+ # protocols: [1],
37413
+ # source_ports: [
37414
+ # {
37415
+ # from_port: 1,
37416
+ # to_port: 1,
37417
+ # },
37418
+ # ],
37419
+ # sources: [
37420
+ # {
37421
+ # address_definition: "NonEmptyString",
37422
+ # },
37423
+ # ],
37424
+ # tcp_flags: [
37425
+ # {
37426
+ # flags: ["NonEmptyString"],
37427
+ # masks: ["NonEmptyString"],
37428
+ # },
37429
+ # ],
37430
+ # },
37431
+ # }
37432
+ #
37433
+ # @!attribute [rw] actions
37434
+ # The actions to take on a packet that matches one of the stateless
37435
+ # rule definition's match attributes. You must specify a standard
37436
+ # action (`aws:pass`, `aws:drop`, or `aws:forward_to_sfe`). You can
37437
+ # then add custom actions.
37438
+ # @return [Array<String>]
37439
+ #
37440
+ # @!attribute [rw] match_attributes
37441
+ # The criteria for Network Firewall to use to inspect an individual
37442
+ # packet in a stateless rule inspection.
37443
+ # @return [Types::RuleGroupSourceStatelessRuleMatchAttributes]
37444
+ #
37445
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/RuleGroupSourceStatelessRuleDefinition AWS API Documentation
37446
+ #
37447
+ class RuleGroupSourceStatelessRuleDefinition < Struct.new(
37448
+ :actions,
37449
+ :match_attributes)
37450
+ SENSITIVE = []
37451
+ include Aws::Structure
37452
+ end
37453
+
37454
+ # Criteria for the stateless rule.
37455
+ #
37456
+ # @note When making an API call, you may pass RuleGroupSourceStatelessRuleMatchAttributes
37457
+ # data as a hash:
37458
+ #
37459
+ # {
37460
+ # destination_ports: [
37461
+ # {
37462
+ # from_port: 1,
37463
+ # to_port: 1,
37464
+ # },
37465
+ # ],
37466
+ # destinations: [
37467
+ # {
37468
+ # address_definition: "NonEmptyString",
37469
+ # },
37470
+ # ],
37471
+ # protocols: [1],
37472
+ # source_ports: [
37473
+ # {
37474
+ # from_port: 1,
37475
+ # to_port: 1,
37476
+ # },
37477
+ # ],
37478
+ # sources: [
37479
+ # {
37480
+ # address_definition: "NonEmptyString",
37481
+ # },
37482
+ # ],
37483
+ # tcp_flags: [
37484
+ # {
37485
+ # flags: ["NonEmptyString"],
37486
+ # masks: ["NonEmptyString"],
37487
+ # },
37488
+ # ],
37489
+ # }
37490
+ #
37491
+ # @!attribute [rw] destination_ports
37492
+ # A list of port ranges to specify the destination ports to inspect
37493
+ # for.
37494
+ # @return [Array<Types::RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts>]
37495
+ #
37496
+ # @!attribute [rw] destinations
37497
+ # The destination IP addresses and address ranges to inspect for, in
37498
+ # CIDR notation.
37499
+ # @return [Array<Types::RuleGroupSourceStatelessRuleMatchAttributesDestinations>]
37500
+ #
37501
+ # @!attribute [rw] protocols
37502
+ # The protocols to inspect for.
37503
+ # @return [Array<Integer>]
37504
+ #
37505
+ # @!attribute [rw] source_ports
37506
+ # A list of port ranges to specify the source ports to inspect for.
37507
+ # @return [Array<Types::RuleGroupSourceStatelessRuleMatchAttributesSourcePorts>]
37508
+ #
37509
+ # @!attribute [rw] sources
37510
+ # The source IP addresses and address ranges to inspect for, in CIDR
37511
+ # notation.
37512
+ # @return [Array<Types::RuleGroupSourceStatelessRuleMatchAttributesSources>]
37513
+ #
37514
+ # @!attribute [rw] tcp_flags
37515
+ # The TCP flags and masks to inspect for.
37516
+ # @return [Array<Types::RuleGroupSourceStatelessRuleMatchAttributesTcpFlags>]
37517
+ #
37518
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/RuleGroupSourceStatelessRuleMatchAttributes AWS API Documentation
37519
+ #
37520
+ class RuleGroupSourceStatelessRuleMatchAttributes < Struct.new(
37521
+ :destination_ports,
37522
+ :destinations,
37523
+ :protocols,
37524
+ :source_ports,
37525
+ :sources,
37526
+ :tcp_flags)
37527
+ SENSITIVE = []
37528
+ include Aws::Structure
37529
+ end
37530
+
37531
+ # A port range to specify the destination ports to inspect for.
37532
+ #
37533
+ # @note When making an API call, you may pass RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts
37534
+ # data as a hash:
37535
+ #
37536
+ # {
37537
+ # from_port: 1,
37538
+ # to_port: 1,
37539
+ # }
37540
+ #
37541
+ # @!attribute [rw] from_port
37542
+ # The starting port value for the port range.
37543
+ # @return [Integer]
37544
+ #
37545
+ # @!attribute [rw] to_port
37546
+ # The ending port value for the port range.
37547
+ # @return [Integer]
37548
+ #
37549
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts AWS API Documentation
37550
+ #
37551
+ class RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts < Struct.new(
37552
+ :from_port,
37553
+ :to_port)
37554
+ SENSITIVE = []
37555
+ include Aws::Structure
37556
+ end
37557
+
37558
+ # A destination IP address or range.
37559
+ #
37560
+ # @note When making an API call, you may pass RuleGroupSourceStatelessRuleMatchAttributesDestinations
37561
+ # data as a hash:
37562
+ #
37563
+ # {
37564
+ # address_definition: "NonEmptyString",
37565
+ # }
37566
+ #
37567
+ # @!attribute [rw] address_definition
37568
+ # An IP address or a block of IP addresses.
37569
+ # @return [String]
37570
+ #
37571
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/RuleGroupSourceStatelessRuleMatchAttributesDestinations AWS API Documentation
37572
+ #
37573
+ class RuleGroupSourceStatelessRuleMatchAttributesDestinations < Struct.new(
37574
+ :address_definition)
37575
+ SENSITIVE = []
37576
+ include Aws::Structure
37577
+ end
37578
+
37579
+ # A port range to specify the source ports to inspect for.
37580
+ #
37581
+ # @note When making an API call, you may pass RuleGroupSourceStatelessRuleMatchAttributesSourcePorts
37582
+ # data as a hash:
37583
+ #
37584
+ # {
37585
+ # from_port: 1,
37586
+ # to_port: 1,
37587
+ # }
37588
+ #
37589
+ # @!attribute [rw] from_port
37590
+ # The starting port value for the port range.
37591
+ # @return [Integer]
37592
+ #
37593
+ # @!attribute [rw] to_port
37594
+ # The ending port value for the port range.
37595
+ # @return [Integer]
37596
+ #
37597
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/RuleGroupSourceStatelessRuleMatchAttributesSourcePorts AWS API Documentation
37598
+ #
37599
+ class RuleGroupSourceStatelessRuleMatchAttributesSourcePorts < Struct.new(
37600
+ :from_port,
37601
+ :to_port)
37602
+ SENSITIVE = []
37603
+ include Aws::Structure
37604
+ end
37605
+
37606
+ # A source IP addresses and address range to inspect for.
37607
+ #
37608
+ # @note When making an API call, you may pass RuleGroupSourceStatelessRuleMatchAttributesSources
37609
+ # data as a hash:
37610
+ #
37611
+ # {
37612
+ # address_definition: "NonEmptyString",
37613
+ # }
37614
+ #
37615
+ # @!attribute [rw] address_definition
37616
+ # An IP address or a block of IP addresses.
37617
+ # @return [String]
37618
+ #
37619
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/RuleGroupSourceStatelessRuleMatchAttributesSources AWS API Documentation
37620
+ #
37621
+ class RuleGroupSourceStatelessRuleMatchAttributesSources < Struct.new(
37622
+ :address_definition)
37623
+ SENSITIVE = []
37624
+ include Aws::Structure
37625
+ end
37626
+
37627
+ # A set of TCP flags and masks to inspect for.
37628
+ #
37629
+ # @note When making an API call, you may pass RuleGroupSourceStatelessRuleMatchAttributesTcpFlags
37630
+ # data as a hash:
37631
+ #
37632
+ # {
37633
+ # flags: ["NonEmptyString"],
37634
+ # masks: ["NonEmptyString"],
37635
+ # }
37636
+ #
37637
+ # @!attribute [rw] flags
37638
+ # Defines the flags from the `Masks` setting that must be set in order
37639
+ # for the packet to match. Flags that are listed must be set. Flags
37640
+ # that are not listed must not be set.
37641
+ # @return [Array<String>]
37642
+ #
37643
+ # @!attribute [rw] masks
37644
+ # The set of flags to consider in the inspection. If not specified,
37645
+ # then all flags are inspected.
37646
+ # @return [Array<String>]
37647
+ #
37648
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/RuleGroupSourceStatelessRuleMatchAttributesTcpFlags AWS API Documentation
37649
+ #
37650
+ class RuleGroupSourceStatelessRuleMatchAttributesTcpFlags < Struct.new(
37651
+ :flags,
37652
+ :masks)
37653
+ SENSITIVE = []
37654
+ include Aws::Structure
37655
+ end
37656
+
37657
+ # Stateless rules and custom actions for a stateless rule group.
37658
+ #
37659
+ # @note When making an API call, you may pass RuleGroupSourceStatelessRulesAndCustomActionsDetails
37660
+ # data as a hash:
37661
+ #
37662
+ # {
37663
+ # custom_actions: [
37664
+ # {
37665
+ # action_definition: {
37666
+ # publish_metric_action: {
37667
+ # dimensions: [
37668
+ # {
37669
+ # value: "NonEmptyString",
37670
+ # },
37671
+ # ],
37672
+ # },
37673
+ # },
37674
+ # action_name: "NonEmptyString",
37675
+ # },
37676
+ # ],
37677
+ # stateless_rules: [
37678
+ # {
37679
+ # priority: 1,
37680
+ # rule_definition: {
37681
+ # actions: ["NonEmptyString"],
37682
+ # match_attributes: {
37683
+ # destination_ports: [
37684
+ # {
37685
+ # from_port: 1,
37686
+ # to_port: 1,
37687
+ # },
37688
+ # ],
37689
+ # destinations: [
37690
+ # {
37691
+ # address_definition: "NonEmptyString",
37692
+ # },
37693
+ # ],
37694
+ # protocols: [1],
37695
+ # source_ports: [
37696
+ # {
37697
+ # from_port: 1,
37698
+ # to_port: 1,
37699
+ # },
37700
+ # ],
37701
+ # sources: [
37702
+ # {
37703
+ # address_definition: "NonEmptyString",
37704
+ # },
37705
+ # ],
37706
+ # tcp_flags: [
37707
+ # {
37708
+ # flags: ["NonEmptyString"],
37709
+ # masks: ["NonEmptyString"],
37710
+ # },
37711
+ # ],
37712
+ # },
37713
+ # },
37714
+ # },
37715
+ # ],
37716
+ # }
37717
+ #
37718
+ # @!attribute [rw] custom_actions
37719
+ # Custom actions for the rule group.
37720
+ # @return [Array<Types::RuleGroupSourceCustomActionsDetails>]
37721
+ #
37722
+ # @!attribute [rw] stateless_rules
37723
+ # Stateless rules for the rule group.
37724
+ # @return [Array<Types::RuleGroupSourceStatelessRulesDetails>]
37725
+ #
37726
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/RuleGroupSourceStatelessRulesAndCustomActionsDetails AWS API Documentation
37727
+ #
37728
+ class RuleGroupSourceStatelessRulesAndCustomActionsDetails < Struct.new(
37729
+ :custom_actions,
37730
+ :stateless_rules)
37731
+ SENSITIVE = []
37732
+ include Aws::Structure
37733
+ end
37734
+
37735
+ # A stateless rule in the rule group.
37736
+ #
37737
+ # @note When making an API call, you may pass RuleGroupSourceStatelessRulesDetails
37738
+ # data as a hash:
37739
+ #
37740
+ # {
37741
+ # priority: 1,
37742
+ # rule_definition: {
37743
+ # actions: ["NonEmptyString"],
37744
+ # match_attributes: {
37745
+ # destination_ports: [
37746
+ # {
37747
+ # from_port: 1,
37748
+ # to_port: 1,
37749
+ # },
37750
+ # ],
37751
+ # destinations: [
37752
+ # {
37753
+ # address_definition: "NonEmptyString",
37754
+ # },
37755
+ # ],
37756
+ # protocols: [1],
37757
+ # source_ports: [
37758
+ # {
37759
+ # from_port: 1,
37760
+ # to_port: 1,
37761
+ # },
37762
+ # ],
37763
+ # sources: [
37764
+ # {
37765
+ # address_definition: "NonEmptyString",
37766
+ # },
37767
+ # ],
37768
+ # tcp_flags: [
37769
+ # {
37770
+ # flags: ["NonEmptyString"],
37771
+ # masks: ["NonEmptyString"],
37772
+ # },
37773
+ # ],
37774
+ # },
37775
+ # },
37776
+ # }
37777
+ #
37778
+ # @!attribute [rw] priority
37779
+ # Indicates the order in which to run this rule relative to all of the
37780
+ # rules in the stateless rule group.
37781
+ # @return [Integer]
37782
+ #
37783
+ # @!attribute [rw] rule_definition
37784
+ # Provides the definition of the stateless rule.
37785
+ # @return [Types::RuleGroupSourceStatelessRuleDefinition]
37786
+ #
37787
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/RuleGroupSourceStatelessRulesDetails AWS API Documentation
37788
+ #
37789
+ class RuleGroupSourceStatelessRulesDetails < Struct.new(
37790
+ :priority,
37791
+ :rule_definition)
37792
+ SENSITIVE = []
37793
+ include Aws::Structure
37794
+ end
37795
+
37796
+ # Additional settings to use in the specified rules.
37797
+ #
37798
+ # @note When making an API call, you may pass RuleGroupVariables
37799
+ # data as a hash:
37800
+ #
37801
+ # {
37802
+ # ip_sets: {
37803
+ # definition: ["NonEmptyString"],
37804
+ # },
37805
+ # port_sets: {
37806
+ # definition: ["NonEmptyString"],
37807
+ # },
37808
+ # }
37809
+ #
37810
+ # @!attribute [rw] ip_sets
37811
+ # A list of IP addresses and address ranges, in CIDR notation.
37812
+ # @return [Types::RuleGroupVariablesIpSetsDetails]
37813
+ #
37814
+ # @!attribute [rw] port_sets
37815
+ # A list of port ranges.
37816
+ # @return [Types::RuleGroupVariablesPortSetsDetails]
37817
+ #
37818
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/RuleGroupVariables AWS API Documentation
37819
+ #
37820
+ class RuleGroupVariables < Struct.new(
37821
+ :ip_sets,
37822
+ :port_sets)
37823
+ SENSITIVE = []
37824
+ include Aws::Structure
37825
+ end
37826
+
37827
+ # A list of IP addresses and address ranges, in CIDR notation.
37828
+ #
37829
+ # @note When making an API call, you may pass RuleGroupVariablesIpSetsDetails
37830
+ # data as a hash:
37831
+ #
37832
+ # {
37833
+ # definition: ["NonEmptyString"],
37834
+ # }
37835
+ #
37836
+ # @!attribute [rw] definition
37837
+ # The list of IP addresses and ranges.
37838
+ # @return [Array<String>]
37839
+ #
37840
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/RuleGroupVariablesIpSetsDetails AWS API Documentation
37841
+ #
37842
+ class RuleGroupVariablesIpSetsDetails < Struct.new(
37843
+ :definition)
37844
+ SENSITIVE = []
37845
+ include Aws::Structure
37846
+ end
37847
+
37848
+ # A list of port ranges.
37849
+ #
37850
+ # @note When making an API call, you may pass RuleGroupVariablesPortSetsDetails
37851
+ # data as a hash:
37852
+ #
37853
+ # {
37854
+ # definition: ["NonEmptyString"],
37855
+ # }
37856
+ #
37857
+ # @!attribute [rw] definition
37858
+ # The list of port ranges.
37859
+ # @return [Array<String>]
37860
+ #
37861
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/RuleGroupVariablesPortSetsDetails AWS API Documentation
37862
+ #
37863
+ class RuleGroupVariablesPortSetsDetails < Struct.new(
37864
+ :definition)
37865
+ SENSITIVE = []
37866
+ include Aws::Structure
37867
+ end
37868
+
35256
37869
  # The list of detected instances of sensitive data.
35257
37870
  #
35258
37871
  # @note When making an API call, you may pass SensitiveDataDetections
@@ -35761,6 +38374,21 @@ module Aws::SecurityHub
35761
38374
  include Aws::Structure
35762
38375
  end
35763
38376
 
38377
+ # The reason for the current status of a standard subscription.
38378
+ #
38379
+ # @!attribute [rw] status_reason_code
38380
+ # The reason code that represents the reason for the current status of
38381
+ # a standard subscription.
38382
+ # @return [String]
38383
+ #
38384
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/StandardsStatusReason AWS API Documentation
38385
+ #
38386
+ class StandardsStatusReason < Struct.new(
38387
+ :status_reason_code)
38388
+ SENSITIVE = []
38389
+ include Aws::Structure
38390
+ end
38391
+
35764
38392
  # A resource that represents your subscription to a supported standard.
35765
38393
  #
35766
38394
  # @!attribute [rw] standards_subscription_arn
@@ -35793,13 +38421,18 @@ module Aws::SecurityHub
35793
38421
  # * `FAILED` - Standard could not be disabled.
35794
38422
  # @return [String]
35795
38423
  #
38424
+ # @!attribute [rw] standards_status_reason
38425
+ # The reason for the current status.
38426
+ # @return [Types::StandardsStatusReason]
38427
+ #
35796
38428
  # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/StandardsSubscription AWS API Documentation
35797
38429
  #
35798
38430
  class StandardsSubscription < Struct.new(
35799
38431
  :standards_subscription_arn,
35800
38432
  :standards_arn,
35801
38433
  :standards_input,
35802
- :standards_status)
38434
+ :standards_status,
38435
+ :standards_status_reason)
35803
38436
  SENSITIVE = []
35804
38437
  include Aws::Structure
35805
38438
  end
@@ -35835,6 +38468,80 @@ module Aws::SecurityHub
35835
38468
  include Aws::Structure
35836
38469
  end
35837
38470
 
38471
+ # The definition of a custom action that can be used for stateless
38472
+ # packet handling.
38473
+ #
38474
+ # @note When making an API call, you may pass StatelessCustomActionDefinition
38475
+ # data as a hash:
38476
+ #
38477
+ # {
38478
+ # publish_metric_action: {
38479
+ # dimensions: [
38480
+ # {
38481
+ # value: "NonEmptyString",
38482
+ # },
38483
+ # ],
38484
+ # },
38485
+ # }
38486
+ #
38487
+ # @!attribute [rw] publish_metric_action
38488
+ # Information about metrics to publish to CloudWatch.
38489
+ # @return [Types::StatelessCustomPublishMetricAction]
38490
+ #
38491
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/StatelessCustomActionDefinition AWS API Documentation
38492
+ #
38493
+ class StatelessCustomActionDefinition < Struct.new(
38494
+ :publish_metric_action)
38495
+ SENSITIVE = []
38496
+ include Aws::Structure
38497
+ end
38498
+
38499
+ # Information about metrics to publish to CloudWatch.
38500
+ #
38501
+ # @note When making an API call, you may pass StatelessCustomPublishMetricAction
38502
+ # data as a hash:
38503
+ #
38504
+ # {
38505
+ # dimensions: [
38506
+ # {
38507
+ # value: "NonEmptyString",
38508
+ # },
38509
+ # ],
38510
+ # }
38511
+ #
38512
+ # @!attribute [rw] dimensions
38513
+ # Defines CloudWatch dimension values to publish.
38514
+ # @return [Array<Types::StatelessCustomPublishMetricActionDimension>]
38515
+ #
38516
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/StatelessCustomPublishMetricAction AWS API Documentation
38517
+ #
38518
+ class StatelessCustomPublishMetricAction < Struct.new(
38519
+ :dimensions)
38520
+ SENSITIVE = []
38521
+ include Aws::Structure
38522
+ end
38523
+
38524
+ # Defines a CloudWatch dimension value to publish.
38525
+ #
38526
+ # @note When making an API call, you may pass StatelessCustomPublishMetricActionDimension
38527
+ # data as a hash:
38528
+ #
38529
+ # {
38530
+ # value: "NonEmptyString",
38531
+ # }
38532
+ #
38533
+ # @!attribute [rw] value
38534
+ # The value to use for the custom metric dimension.
38535
+ # @return [String]
38536
+ #
38537
+ # @see http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/StatelessCustomPublishMetricActionDimension AWS API Documentation
38538
+ #
38539
+ class StatelessCustomPublishMetricActionDimension < Struct.new(
38540
+ :value)
38541
+ SENSITIVE = []
38542
+ include Aws::Structure
38543
+ end
38544
+
35838
38545
  # Provides additional context for the value of `Compliance.Status`.
35839
38546
  #
35840
38547
  # @note When making an API call, you may pass StatusReason
@@ -36834,6 +39541,11 @@ module Aws::SecurityHub
36834
39541
  # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
36835
39542
  # },
36836
39543
  # ],
39544
+ # sample: [
39545
+ # {
39546
+ # value: false,
39547
+ # },
39548
+ # ],
36837
39549
  # },
36838
39550
  # note: {
36839
39551
  # text: "NonEmptyString", # required
@@ -37491,6 +40203,11 @@ module Aws::SecurityHub
37491
40203
  # comparison: "EQUALS", # accepts EQUALS, PREFIX, NOT_EQUALS, PREFIX_NOT_EQUALS
37492
40204
  # },
37493
40205
  # ],
40206
+ # sample: [
40207
+ # {
40208
+ # value: false,
40209
+ # },
40210
+ # ],
37494
40211
  # },
37495
40212
  # group_by_attribute: "NonEmptyString",
37496
40213
  # }