Skip to content

Commit 79952dd

Browse files
tas50claude
andcommitted
⭐ Add SSM, CloudWatch Logs, and VPC PrivateLink resources
Expand AWS provider coverage with new resources for Systems Manager, CloudWatch Logs, and VPC endpoint service configurations. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 8aa1d30 commit 79952dd

File tree

9 files changed

+3899
-6
lines changed

9 files changed

+3899
-6
lines changed

providers/aws/resources/aws.lr

Lines changed: 292 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,14 @@ private aws.vpc.endpoint @defaults("id type region") {
328328
networkInterfaces() []aws.ec2.networkinterface
329329
// DNS entries for the endpoint
330330
dnsEntries []dict
331+
// Tags on the endpoint
332+
tags map[string]string
333+
// IP address type: ipv4, ipv6, dualstack
334+
ipAddressType string
335+
// Owner of the endpoint
336+
ownerId string
337+
// Whether the endpoint is requester-managed
338+
requesterManaged bool
331339
}
332340

333341
// Amazon Virtual Private Cloud (VPC) flow log
@@ -3367,6 +3375,12 @@ aws.cloudwatch {
33673375
alarms() []aws.cloudwatch.metricsalarm
33683376
// List of CloudWatch metrics
33693377
metrics() []aws.cloudwatch.metric
3378+
// List of CloudWatch Logs resource policies
3379+
resourcePolicies() []aws.cloudwatch.resourcepolicy
3380+
// List of CloudWatch Logs cross-account destinations
3381+
logDestinations() []aws.cloudwatch.logDestination
3382+
// List of CloudWatch Logs Insights saved queries
3383+
logInsightQueries() []aws.cloudwatch.logInsightQuery
33703384
}
33713385

33723386
// Amazon CloudWatch metrics alarm
@@ -3460,6 +3474,10 @@ private aws.cloudwatch.loggroup @defaults("arn") {
34603474
name string
34613475
// List of metric filters associated with the log group
34623476
metricsFilters() []aws.cloudwatch.loggroup.metricsfilter
3477+
// List of subscription filters associated with the log group
3478+
subscriptionFilters() []aws.cloudwatch.loggroup.subscriptionfilter
3479+
// List of log streams in the log group
3480+
logStreams() []aws.cloudwatch.loggroup.logstream
34633481
// KMS key used for log encryption
34643482
kmsKey() aws.kms.key
34653483
// Region where the log group is stored
@@ -3472,6 +3490,10 @@ private aws.cloudwatch.loggroup @defaults("arn") {
34723490
dataProtectionStatus string
34733491
// Whether deletion protection is enabled for the log group
34743492
deletionProtectionEnabled bool
3493+
// Log class: STANDARD or INFREQUENT_ACCESS
3494+
logGroupClass string
3495+
// Number of bytes stored in the log group
3496+
storedBytes int
34753497
}
34763498

34773499
// Amazon CloudWatch log group metrics filter
@@ -3486,6 +3508,62 @@ private aws.cloudwatch.loggroup.metricsfilter @defaults("id") {
34863508
metrics []aws.cloudwatch.metric
34873509
}
34883510

3511+
// Amazon CloudWatch log group subscription filter
3512+
private aws.cloudwatch.loggroup.subscriptionfilter @defaults("filterName destinationArn") {
3513+
// Unique ID for the subscription filter
3514+
id string
3515+
// Name of the subscription filter
3516+
filterName string
3517+
// Filter pattern used to match log events
3518+
filterPattern string
3519+
// ARN of the destination (Kinesis, Lambda, or Firehose)
3520+
destinationArn string
3521+
// ARN of the IAM role used to write to the destination
3522+
roleArn string
3523+
// Method used to distribute log data to the destination (Random, ByLogStream)
3524+
distribution string
3525+
// Whether the filter is applied on transformed log events
3526+
applyOnTransformedLogs bool
3527+
// Creation time of the subscription filter
3528+
createdAt time
3529+
// Region where the subscription filter exists
3530+
region string
3531+
}
3532+
3533+
// Amazon CloudWatch log group log stream
3534+
private aws.cloudwatch.loggroup.logstream @defaults("arn") {
3535+
// ARN of the log stream
3536+
arn string
3537+
// Name of the log stream
3538+
name string
3539+
// Creation time of the log stream
3540+
createdAt time
3541+
// Time of the first event in the log stream
3542+
firstEventTimestamp time
3543+
// Time of the most recent log event in the log stream
3544+
lastEventTimestamp time
3545+
// Most recent ingestion time for the log stream
3546+
lastIngestionTime time
3547+
// Region where the log stream exists
3548+
region string
3549+
}
3550+
3551+
// Amazon CloudWatch Logs resource policy
3552+
private aws.cloudwatch.resourcepolicy @defaults("policyName") {
3553+
// Name of the resource policy
3554+
policyName string
3555+
// JSON IAM policy document
3556+
policyDocument string
3557+
// Timestamp showing when this policy was last updated
3558+
lastUpdatedTime time
3559+
// Scope of the resource policy (ACCOUNT, RESOURCE)
3560+
scope string
3561+
// ARN of the resource the policy is attached to (only for resource-scoped policies)
3562+
resourceArn string
3563+
// Region where the resource policy exists
3564+
region string
3565+
}
3566+
34893567
// Amazon CloudFront
34903568
aws.cloudfront @defaults("distributions functions") {
34913569
// List of CloudFront distributions
@@ -5678,6 +5756,16 @@ aws.ssm @defaults("instances") {
56785756
instances() []aws.ssm.instance
56795757
// List of SSM parameters
56805758
parameters() []aws.ssm.parameter
5759+
// List of SSM documents
5760+
documents() []aws.ssm.document
5761+
// List of SSM patch baselines
5762+
patchBaselines() []aws.ssm.patchBaseline
5763+
// List of SSM maintenance windows
5764+
maintenanceWindows() []aws.ssm.maintenanceWindow
5765+
// List of SSM State Manager associations
5766+
associations() []aws.ssm.association
5767+
// List of SSM compliance summaries
5768+
complianceSummaries() []aws.ssm.complianceSummary
56815769
}
56825770

56835771

@@ -6298,6 +6386,14 @@ private aws.ec2.vpcEndpointServiceConfiguration @defaults("id name state") {
62986386
supportedIpAddressTypes []string
62996387
// Tags on the service configuration
63006388
tags map[string]string
6389+
// Network load balancers backing this service (typed references)
6390+
networkLoadBalancers() []aws.elb.loadbalancer
6391+
// Gateway load balancers backing this service (typed references)
6392+
gatewayLoadBalancers() []aws.elb.loadbalancer
6393+
// Principals allowed to discover the service
6394+
allowedPrincipals() []string
6395+
// VPC endpoint connections (consumers connected to this service)
6396+
connections() []aws.ec2.vpcEndpointServiceConfiguration.connection
63016397
}
63026398

63036399
// Amazon EC2 launch template
@@ -9752,3 +9848,199 @@ private aws.keyspaces.table.clusteringKey @defaults("name orderBy") {
97529848
// Sort order: ASC or DESC
97539849
orderBy string
97549850
}
9851+
9852+
// Amazon SSM document (runbooks, automation, command, policy, session, package)
9853+
private aws.ssm.document @defaults("name documentType") {
9854+
// ARN of the document
9855+
arn string
9856+
// Name of the document
9857+
name string
9858+
// Region where the document exists
9859+
region string
9860+
// Document type: Command, Automation, Policy, Session, Package, etc.
9861+
documentType string
9862+
// Document format: JSON or YAML
9863+
documentFormat string
9864+
// Document version
9865+
documentVersion string
9866+
// Description of the document
9867+
description() string
9868+
// Owner of the document (account ID or Amazon)
9869+
owner string
9870+
// Status of the document: Active, Creating, Deleting, Updating
9871+
status() string
9872+
// Platform types the document supports: Windows, Linux, MacOS
9873+
platformTypes []string
9874+
// Tags on the document
9875+
tags map[string]string
9876+
// Document content (JSON/YAML body), lazy-loaded
9877+
content() string
9878+
// Review status: Approved, Pending, Rejected, Not reviewed
9879+
reviewStatus string
9880+
// Creation date of the document
9881+
createdAt time
9882+
// Account sharing permissions for the document
9883+
permissions() []dict
9884+
}
9885+
9886+
// Amazon SSM patch baseline
9887+
private aws.ssm.patchBaseline @defaults("id name operatingSystem") {
9888+
// Patch baseline ID
9889+
id string
9890+
// ARN of the patch baseline
9891+
arn string
9892+
// Name of the patch baseline
9893+
name string
9894+
// Region where the patch baseline exists
9895+
region string
9896+
// Description of the patch baseline
9897+
description string
9898+
// Operating system: WINDOWS, AMAZON_LINUX_2, AMAZON_LINUX_2023, UBUNTU, REDHAT_ENTERPRISE_LINUX, etc.
9899+
operatingSystem string
9900+
// Whether this is the default baseline for its operating system
9901+
isDefault bool
9902+
// Approval rules for the patch baseline
9903+
approvalRules []dict
9904+
// List of explicitly approved patches
9905+
approvedPatches []string
9906+
// Compliance level for approved patches: CRITICAL, HIGH, MEDIUM, LOW, INFORMATIONAL, UNSPECIFIED
9907+
approvedPatchesComplianceLevel string
9908+
// List of explicitly rejected patches
9909+
rejectedPatches []string
9910+
// Action for rejected patches: ALLOW_AS_DEPENDENCY or BLOCK
9911+
rejectedPatchesAction string
9912+
// Global filters for the patch baseline
9913+
globalFilters []dict
9914+
// Patch sources
9915+
sources []dict
9916+
// Creation date
9917+
createdAt time
9918+
// Last modified date
9919+
modifiedAt time
9920+
// Tags on the patch baseline
9921+
tags() map[string]string
9922+
}
9923+
9924+
// Amazon SSM maintenance window
9925+
private aws.ssm.maintenanceWindow @defaults("id name") {
9926+
// Maintenance window ID
9927+
id string
9928+
// ARN of the maintenance window
9929+
arn string
9930+
// Name of the maintenance window
9931+
name string
9932+
// Region where the maintenance window exists
9933+
region string
9934+
// Description of the maintenance window
9935+
description string
9936+
// Whether the maintenance window is enabled
9937+
enabled bool
9938+
// Cron or rate schedule expression
9939+
schedule string
9940+
// Timezone for the schedule
9941+
scheduleTimezone string
9942+
// Duration in hours
9943+
duration int
9944+
// Hours before the end of the window to stop scheduling new tasks
9945+
cutoff int
9946+
// Whether targets that are not associated with the window can be run
9947+
allowUnassociatedTargets() bool
9948+
// Tags on the maintenance window
9949+
tags() map[string]string
9950+
}
9951+
9952+
// Amazon SSM State Manager association
9953+
private aws.ssm.association @defaults("associationId name") {
9954+
// Association ID
9955+
associationId string
9956+
// Document name
9957+
name string
9958+
// Region where the association exists
9959+
region string
9960+
// Targets for the association
9961+
targets []dict
9962+
// Cron or rate schedule expression
9963+
schedule string
9964+
// Last execution date
9965+
lastExecutionDate time
9966+
// Overview of the association execution status (status, detailedStatus, associationStatusAggregatedCount)
9967+
overview dict
9968+
}
9969+
9970+
// Amazon SSM compliance summary per resource
9971+
private aws.ssm.complianceSummary @defaults("complianceType resourceId status") {
9972+
// Compliance type: Patch, Association, Custom:*
9973+
complianceType string
9974+
// Resource ID (instance ID)
9975+
resourceId string
9976+
// Resource type (e.g., ManagedInstance)
9977+
resourceType string
9978+
// Region where the resource exists
9979+
region string
9980+
// Compliance status: COMPLIANT, NON_COMPLIANT
9981+
status string
9982+
// Count of compliant items
9983+
compliantCount int
9984+
// Count of non-compliant items
9985+
nonCompliantCount int
9986+
// Execution summary
9987+
executionSummary dict
9988+
}
9989+
9990+
// Amazon CloudWatch Logs cross-account destination
9991+
private aws.cloudwatch.logDestination @defaults("name arn") {
9992+
// Destination name
9993+
name string
9994+
// ARN of the destination
9995+
arn string
9996+
// Region where the destination exists
9997+
region string
9998+
// ARN of the target (Kinesis stream or Firehose delivery stream)
9999+
targetArn string
10000+
// ARN of the IAM role used to write to the target
10001+
roleArn string
10002+
// Access policy controlling who can write to this destination
10003+
accessPolicy string
10004+
// Creation time of the destination
10005+
createdAt time
10006+
}
10007+
10008+
// Amazon CloudWatch Logs Insights saved query
10009+
private aws.cloudwatch.logInsightQuery @defaults("name") {
10010+
// Query ID
10011+
id string
10012+
// Name of the saved query
10013+
name string
10014+
// Region where the query exists
10015+
region string
10016+
// Query string
10017+
queryString string
10018+
// Log group names the query is associated with
10019+
logGroupNames []string
10020+
// Creation time of the query
10021+
createdAt time
10022+
}
10023+
10024+
// Amazon VPC Endpoint Service connection (consumer connected to an endpoint service)
10025+
private aws.ec2.vpcEndpointServiceConfiguration.connection @defaults("endpointId endpointState") {
10026+
// Unique ID for the connection
10027+
id string
10028+
// VPC endpoint ID of the consumer
10029+
endpointId string
10030+
// Owner of the consumer endpoint
10031+
endpointOwner string
10032+
// Region of the consumer
10033+
endpointRegion string
10034+
// Connection state: pendingAcceptance, pending, available, deleting, deleted, rejected, failed, expired
10035+
endpointState string
10036+
// IP address type of the connection: ipv4, ipv6, dualstack
10037+
ipAddressType string
10038+
// DNS entries for this connection
10039+
dnsEntries []dict
10040+
// Network load balancer ARNs in use
10041+
networkLoadBalancerArns []string
10042+
// Gateway load balancer ARNs in use
10043+
gatewayLoadBalancerArns []string
10044+
// Creation time
10045+
createdAt time
10046+
}

0 commit comments

Comments
 (0)