Skip to content

Commit 607f25c

Browse files
tas50claude
andcommitted
✨ Add EC2 launch configuration resource and CloudFront logging field
Add aws.ec2.launchconfiguration resource with typed sub-resources for block device mappings, EBS configuration, and metadata options (IMDSv2). Add typed reference from aws.autoscaling.group. Add lazy-loaded logging sub-resource on aws.cloudfront.distribution via GetDistribution API. Bump AWS provider to 13.6.0. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent f902a01 commit 607f25c

File tree

7 files changed

+1186
-1
lines changed

7 files changed

+1186
-1
lines changed

providers/aws/config/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414
var Config = plugin.Provider{
1515
Name: "aws",
1616
ID: "go.mondoo.com/cnquery/v9/providers/aws",
17-
Version: "13.5.1",
17+
Version: "13.6.0",
1818
ConnectionTypes: []string{provider.DefaultConnectionType, string(awsec2ebsconn.EBSConnectionType)},
1919
Connectors: []plugin.Connector{
2020
{

providers/aws/resources/aws.lr

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2054,6 +2054,8 @@ private aws.autoscaling.group @defaults("name region minSize maxSize") {
20542054
defaultCooldown int
20552055
// Launch configuration name
20562056
launchConfigurationName string
2057+
// Launch configuration associated with the group
2058+
launchConfiguration() aws.ec2.launchconfiguration
20572059
// Grace period in seconds before an instance with a failing health check is replaced
20582060
healthCheckGracePeriod int
20592061
// Time when the autoscaling group was created
@@ -3447,6 +3449,20 @@ private aws.cloudfront.distribution @defaults("domainName status") {
34473449
lastModifiedAt time
34483450
// User-provided comment or description for the distribution
34493451
comment string
3452+
// Logging configuration for the distribution
3453+
logging() aws.cloudfront.distribution.loggingConfig
3454+
}
3455+
3456+
// Amazon CloudFront distribution logging configuration
3457+
private aws.cloudfront.distribution.loggingConfig {
3458+
// Whether logging is enabled
3459+
enabled bool
3460+
// S3 bucket for storing access logs
3461+
bucket string
3462+
// Optional prefix for log filenames
3463+
prefix string
3464+
// Whether cookies are included in access logs
3465+
includeCookies bool
34503466
}
34513467

34523468
// Amazon CloudFront distribution origin
@@ -5630,6 +5646,8 @@ aws.ec2 {
56305646
transitGateways() []aws.ec2.transitgateway
56315647
// List of launch templates
56325648
launchTemplates() []aws.ec2.launchtemplate
5649+
// List of launch configurations (legacy, used by Auto Scaling)
5650+
launchConfigurations() []aws.ec2.launchconfiguration
56335651
}
56345652

56355653
// Amazon Elastic IP (EIP)
@@ -5903,6 +5921,82 @@ private aws.ec2.launchtemplate @defaults("name region") {
59035921
userData() string
59045922
}
59055923

5924+
// Amazon EC2 launch configuration (legacy, used by Auto Scaling)
5925+
private aws.ec2.launchconfiguration @defaults("name region") {
5926+
// ARN of the launch configuration
5927+
arn string
5928+
// Name of the launch configuration
5929+
name string
5930+
// Region for the launch configuration
5931+
region string
5932+
// AMI ID used by the launch configuration
5933+
imageId string
5934+
// Instance type
5935+
instanceType string
5936+
// Name of the key pair
5937+
keyName string
5938+
// Security groups associated with the launch configuration
5939+
securityGroups() []aws.ec2.securitygroup
5940+
// Whether instances are launched with a public IP address
5941+
associatePublicIpAddress bool
5942+
// Whether EBS volumes are optimized
5943+
ebsOptimized bool
5944+
// Block device mappings
5945+
blockDeviceMappings []aws.ec2.launchconfiguration.blockDeviceMapping
5946+
// Whether detailed monitoring is enabled
5947+
detailedMonitoringEnabled bool
5948+
// IAM instance profile ARN or name
5949+
iamInstanceProfile string
5950+
// Spot price for instances
5951+
spotPrice string
5952+
// Placement tenancy
5953+
placementTenancy string
5954+
// Instance metadata options (for IMDSv2 checks)
5955+
metadataOptions aws.ec2.launchconfiguration.metadataOptions
5956+
// Time the launch configuration was created
5957+
createdAt time
5958+
}
5959+
5960+
// Block device mapping for a launch configuration
5961+
private aws.ec2.launchconfiguration.blockDeviceMapping @defaults("deviceName") {
5962+
// Device name (e.g., /dev/sda1, /dev/xvda)
5963+
deviceName string
5964+
// Virtual device name for instance store (ephemeral0, ephemeral1, etc.)
5965+
virtualName string
5966+
// Whether to suppress this device mapping
5967+
noDevice bool
5968+
// EBS volume configuration (null for instance store volumes)
5969+
ebs aws.ec2.launchconfiguration.ebsBlockDevice
5970+
}
5971+
5972+
// EBS block device configuration for a launch configuration
5973+
private aws.ec2.launchconfiguration.ebsBlockDevice @defaults("volumeSize volumeType encrypted") {
5974+
// Whether the volume is encrypted
5975+
encrypted bool
5976+
// ID of the snapshot used to create the volume
5977+
snapshotId string
5978+
// Size of the volume in GiB
5979+
volumeSize int
5980+
// Volume type (gp2, gp3, io1, io2, etc.)
5981+
volumeType string
5982+
// IOPS for the volume
5983+
iops int
5984+
// Throughput in MiB/s
5985+
throughput int
5986+
// Whether to delete on instance termination
5987+
deleteOnTermination bool
5988+
}
5989+
5990+
// Instance metadata options for a launch configuration (IMDSv2 settings)
5991+
private aws.ec2.launchconfiguration.metadataOptions {
5992+
// Whether IMDSv2 is required ("optional" or "required")
5993+
httpTokens string
5994+
// Whether the metadata service is enabled ("enabled" or "disabled")
5995+
httpEndpoint string
5996+
// Maximum number of hops for the metadata token
5997+
httpPutResponseHopLimit int
5998+
}
5999+
59066000
// Amazon EC2 (EBS) snapshot
59076001
private aws.ec2.snapshot @defaults("id region volumeSize state") {
59086002
// ARN for the snapshot

0 commit comments

Comments
 (0)