Skip to content

Commit 7aba4f7

Browse files
tas50claude
andcommitted
⭐ Add SageMaker clusters, feature groups, model packages, model cards, spaces, user profiles
Add 8 new SageMaker sub-resources and expand existing resources with typed cross-references and missing fields from the SDK (v1.239.0). New resources: - aws.sagemaker.cluster (HyperPod) with nodes sub-resource - aws.sagemaker.clusterNode - aws.sagemaker.featureGroup - aws.sagemaker.modelPackage with modelPackageGroup() cross-ref - aws.sagemaker.modelPackageGroup - aws.sagemaker.modelCard - aws.sagemaker.space with domain() cross-ref - aws.sagemaker.userProfile with domain() cross-ref New fields on existing resources: - notebookinstance: instanceType, lifecycleConfigName, code repos - notebookinstancedetails: iamRole, securityGroups, ipAddressType, platformIdentifier, volumeSizeInGB, failureReason - domain: subnets, defaultExecutionRole, securityGroupIdForDomainBoundary, appSecurityGroupManagement, tagPropagation, singleSignOnApplicationArn, failureReason - inferenceComponent: failureReason - model/trainingjob/processingjob/cluster: vpcSecurityGroups, vpcSubnets Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent eac34e1 commit 7aba4f7

File tree

5 files changed

+4608
-43
lines changed

5 files changed

+4608
-43
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.10.0",
17+
Version: "13.10.1",
1818
ConnectionTypes: []string{provider.DefaultConnectionType, string(awsec2ebsconn.EBSConnectionType)},
1919
Connectors: []plugin.Connector{
2020
{

providers/aws/resources/aws.lr

Lines changed: 302 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1641,6 +1641,20 @@ aws.sagemaker {
16411641
domains() []aws.sagemaker.domain
16421642
// List of SageMaker inference components
16431643
inferenceComponents() []aws.sagemaker.inferenceComponent
1644+
// List of SageMaker HyperPod clusters
1645+
clusters() []aws.sagemaker.cluster
1646+
// List of SageMaker feature groups
1647+
featureGroups() []aws.sagemaker.featureGroup
1648+
// List of SageMaker model packages
1649+
modelPackages() []aws.sagemaker.modelPackage
1650+
// List of SageMaker model package groups
1651+
modelPackageGroups() []aws.sagemaker.modelPackageGroup
1652+
// List of SageMaker model cards
1653+
modelCards() []aws.sagemaker.modelCard
1654+
// List of SageMaker spaces
1655+
spaces() []aws.sagemaker.space
1656+
// List of SageMaker user profiles
1657+
userProfiles() []aws.sagemaker.userProfile
16441658
}
16451659

16461660
// AWS SageMaker notebook instance
@@ -1663,6 +1677,14 @@ private aws.sagemaker.notebookinstance @defaults("arn name") {
16631677
status string
16641678
// URL to connect to the Jupyter notebook
16651679
url string
1680+
// ML compute instance type
1681+
instanceType string
1682+
// Name of the lifecycle configuration associated with the notebook instance
1683+
lifecycleConfigName string
1684+
// Default Git repository associated with the notebook instance
1685+
defaultCodeRepository string
1686+
// Additional Git repositories associated with the notebook instance
1687+
additionalCodeRepositories []string
16661688
}
16671689

16681690
// AWS SageMaker notebook instance details
@@ -1679,6 +1701,18 @@ private aws.sagemaker.notebookinstancedetails @defaults("arn") {
16791701
minimumInstanceMetadataServiceVersion string
16801702
// VPC subnet the notebook instance is deployed in
16811703
subnet() aws.vpc.subnet
1704+
// IP address type: ipv4 or dualstack
1705+
ipAddressType string
1706+
// Platform identifier of the notebook instance runtime environment
1707+
platformIdentifier string
1708+
// Size (in GB) of the ML storage volume attached to the instance
1709+
volumeSizeInGB int
1710+
// Failure reason if the notebook instance is in a failed state
1711+
failureReason string
1712+
// IAM role associated with the instance
1713+
iamRole() aws.iam.role
1714+
// VPC security groups associated with the instance
1715+
securityGroups() []aws.ec2.securitygroup
16821716
}
16831717

16841718
// AWS SageMaker endpoint
@@ -1721,6 +1755,10 @@ private aws.sagemaker.model @defaults("arn name") {
17211755
primaryContainer() dict
17221756
// VPC configuration
17231757
vpcConfig() dict
1758+
// VPC security groups from VPC configuration
1759+
vpcSecurityGroups() []aws.ec2.securitygroup
1760+
// VPC subnets from VPC configuration
1761+
vpcSubnets() []aws.vpc.subnet
17241762
}
17251763

17261764
// AWS SageMaker training job
@@ -1757,6 +1795,10 @@ private aws.sagemaker.trainingjob @defaults("arn name status") {
17571795
billableTimeInSeconds() int
17581796
// VPC configuration
17591797
vpcConfig() dict
1798+
// VPC security groups from VPC configuration
1799+
vpcSecurityGroups() []aws.ec2.securitygroup
1800+
// VPC subnets from VPC configuration
1801+
vpcSubnets() []aws.vpc.subnet
17601802
// Output data configuration
17611803
outputDataConfig() dict
17621804
// Resource configuration (instanceType, instanceCount, volumeSizeInGB)
@@ -1795,6 +1837,10 @@ private aws.sagemaker.processingjob @defaults("arn name status") {
17951837
enableInterContainerTrafficEncryption() bool
17961838
// VPC configuration
17971839
vpcConfig() dict
1840+
// VPC security groups from VPC configuration
1841+
vpcSecurityGroups() []aws.ec2.securitygroup
1842+
// VPC subnets from VPC configuration
1843+
vpcSubnets() []aws.vpc.subnet
17981844
// Processing resources configuration
17991845
processingResources() dict
18001846
// Environment variables
@@ -1863,6 +1909,20 @@ private aws.sagemaker.domain @defaults("arn name status") {
18631909
homeEfsFileSystemId() string
18641910
// Default user settings
18651911
defaultUserSettings() dict
1912+
// Security group ID for domain boundary
1913+
securityGroupIdForDomainBoundary() string
1914+
// Who manages security groups for inter-app communication: Service or Customer
1915+
appSecurityGroupManagement() string
1916+
// Whether custom tag propagation is supported
1917+
tagPropagation() string
1918+
// IAM Identity Center application ARN
1919+
singleSignOnApplicationArn() string
1920+
// Failure reason if the domain is in a failed state
1921+
failureReason() string
1922+
// VPC subnets the domain uses for communication
1923+
subnets() []aws.vpc.subnet
1924+
// Default execution role from user settings
1925+
defaultExecutionRole() aws.iam.role
18661926
}
18671927

18681928
// AWS SageMaker inference component
@@ -1897,6 +1957,248 @@ private aws.sagemaker.inferenceComponent @defaults("arn name status") {
18971957
runtimeConfig() dict
18981958
// Compute resource requirements specification
18991959
specification() dict
1960+
// Failure reason if the inference component is in a failed state
1961+
failureReason() string
1962+
}
1963+
1964+
// AWS SageMaker HyperPod cluster
1965+
private aws.sagemaker.cluster @defaults("arn name status") {
1966+
// ARN of the cluster
1967+
arn string
1968+
// Name of the cluster
1969+
name string
1970+
// Region where the cluster exists
1971+
region string
1972+
// Status: InService, Creating, Updating, Failed, Deleting, RollingBack, SystemUpdating
1973+
status string
1974+
// Time when the cluster was created
1975+
createdAt time
1976+
// Tags for the cluster
1977+
tags() map[string]string
1978+
// IAM role used for cluster operations
1979+
iamRole() aws.iam.role
1980+
// Cluster instance groups
1981+
instanceGroups() []dict
1982+
// Orchestrator type (EKS or Slurm configuration)
1983+
orchestrator() dict
1984+
// VPC configuration (security groups and subnets)
1985+
vpcConfig() dict
1986+
// VPC security groups from VPC configuration
1987+
vpcSecurityGroups() []aws.ec2.securitygroup
1988+
// VPC subnets from VPC configuration
1989+
vpcSubnets() []aws.vpc.subnet
1990+
// Node recovery mode
1991+
nodeRecovery() string
1992+
// Node provisioning mode
1993+
nodeProvisioningMode() string
1994+
// Failure message if the cluster is in a failed state
1995+
failureMessage() string
1996+
// Nodes in the cluster
1997+
nodes() []aws.sagemaker.clusterNode
1998+
}
1999+
2000+
// AWS SageMaker HyperPod cluster node
2001+
private aws.sagemaker.clusterNode @defaults("instanceId instanceGroupName instanceType") {
2002+
// Instance ID of the node
2003+
instanceId string
2004+
// Instance group name the node belongs to
2005+
instanceGroupName string
2006+
// Instance type of the node
2007+
instanceType string
2008+
// Status of the node
2009+
status string
2010+
// Status message for the node
2011+
statusMessage string
2012+
// Time when the node was launched
2013+
launchTime time
2014+
// Private DNS hostname of the node
2015+
privateDnsHostname string
2016+
// Private primary IP address
2017+
privatePrimaryIp string
2018+
// Region where the node exists
2019+
region string
2020+
}
2021+
2022+
// AWS SageMaker feature group
2023+
private aws.sagemaker.featureGroup @defaults("arn name status") {
2024+
// ARN of the feature group
2025+
arn string
2026+
// Name of the feature group
2027+
name string
2028+
// Region where the feature group exists
2029+
region string
2030+
// Status: Creating, Created, CreateFailed, Deleting, DeleteFailed
2031+
status string
2032+
// Time when the feature group was created
2033+
createdAt time
2034+
// Tags for the feature group
2035+
tags() map[string]string
2036+
// IAM execution role for offline store persistence
2037+
iamRole() aws.iam.role
2038+
// Description of the feature group
2039+
description() string
2040+
// Feature definitions (name, type pairs)
2041+
featureDefinitions() []dict
2042+
// Name of the feature used as event time
2043+
eventTimeFeatureName() string
2044+
// Name of the feature used as record identifier
2045+
recordIdentifierFeatureName() string
2046+
// Offline store configuration (S3, Glue catalog, encryption)
2047+
offlineStoreConfig() dict
2048+
// Online store configuration (encryption, storage type, TTL)
2049+
onlineStoreConfig() dict
2050+
// Failure reason if the feature group failed
2051+
failureReason() string
2052+
// Offline store replication status: Active or Blocked
2053+
offlineStoreStatus() string
2054+
// Size of the online store in bytes
2055+
onlineStoreTotalSizeBytes() int
2056+
}
2057+
2058+
// AWS SageMaker model package
2059+
private aws.sagemaker.modelPackage @defaults("arn name approvalStatus") {
2060+
// ARN of the model package
2061+
arn string
2062+
// Name of the model package
2063+
name string
2064+
// Region where the model package exists
2065+
region string
2066+
// Status: Pending, InProgress, Completed, Failed, Deleting
2067+
status string
2068+
// Approval status: Approved, Rejected, PendingManualApproval
2069+
approvalStatus string
2070+
// Time when the model package was created
2071+
createdAt time
2072+
// Tags for the model package
2073+
tags() map[string]string
2074+
// Description of the model package
2075+
description string
2076+
// Name of the model package group this belongs to
2077+
modelPackageGroupName string
2078+
// Model package group this belongs to
2079+
modelPackageGroup() aws.sagemaker.modelPackageGroup
2080+
// Version number within the model package group
2081+
modelPackageVersion int
2082+
// Whether the model package is certified for AWS Marketplace
2083+
certifyForMarketplace() bool
2084+
// KMS key used for encryption
2085+
kmsKey() aws.kms.key
2086+
// Inference specification (containers, supported instance types)
2087+
inferenceSpecification() dict
2088+
// Approval description
2089+
approvalDescription() string
2090+
// Model metrics
2091+
modelMetrics() dict
2092+
// Source URI
2093+
sourceUri() string
2094+
// Customer metadata properties
2095+
customerMetadataProperties() map[string]string
2096+
// Whether to skip model validation: All or None
2097+
skipModelValidation() string
2098+
// Time when the model package was last modified
2099+
lastModifiedTime() time
2100+
}
2101+
2102+
// AWS SageMaker model package group
2103+
private aws.sagemaker.modelPackageGroup @defaults("arn name status") {
2104+
// ARN of the model package group
2105+
arn string
2106+
// Name of the model package group
2107+
name string
2108+
// Region where the model package group exists
2109+
region string
2110+
// Status: Pending, InProgress, Completed, Failed, Deleting, DeleteFailed
2111+
status string
2112+
// Time when the group was created
2113+
createdAt time
2114+
// Tags for the model package group
2115+
tags() map[string]string
2116+
// Description of the model package group
2117+
description() string
2118+
}
2119+
2120+
// AWS SageMaker model card
2121+
private aws.sagemaker.modelCard @defaults("arn name modelCardStatus") {
2122+
// ARN of the model card
2123+
arn string
2124+
// Name of the model card
2125+
name string
2126+
// Region where the model card exists
2127+
region string
2128+
// Approval status: Draft, PendingReview, Approved, Archived
2129+
modelCardStatus string
2130+
// Time when the model card was created
2131+
createdAt time
2132+
// Time when the model card was last modified
2133+
lastModifiedAt time
2134+
// Tags for the model card
2135+
tags() map[string]string
2136+
// KMS key used for encryption
2137+
kmsKey() aws.kms.key
2138+
// Model card content (JSON string)
2139+
content() string
2140+
// Model card version number
2141+
modelCardVersion() int
2142+
// Processing status of model card deletion
2143+
modelCardProcessingStatus() string
2144+
}
2145+
2146+
// AWS SageMaker space
2147+
private aws.sagemaker.space @defaults("arn name status") {
2148+
// ARN of the space
2149+
arn string
2150+
// Name of the space
2151+
name string
2152+
// Region where the space exists
2153+
region string
2154+
// Status: Creating, Created, Deleting, Failed, Updating, Pending
2155+
status string
2156+
// Display name of the space
2157+
displayName string
2158+
// Time when the space was created
2159+
createdAt time
2160+
// Time when the space was last modified
2161+
lastModifiedAt time
2162+
// Tags for the space
2163+
tags() map[string]string
2164+
// Domain the space belongs to
2165+
domain() aws.sagemaker.domain
2166+
// Owner user profile name
2167+
ownerUserProfileName() string
2168+
// Sharing type of the space
2169+
sharingType() string
2170+
// URL of the space
2171+
spaceUrl() string
2172+
// Space settings (app type, storage, app configurations)
2173+
settings() dict
2174+
// Failure reason if the space is in a failed state
2175+
failureReason() string
2176+
}
2177+
2178+
// AWS SageMaker user profile
2179+
private aws.sagemaker.userProfile @defaults("arn name status") {
2180+
// ARN of the user profile
2181+
arn string
2182+
// Name of the user profile
2183+
name string
2184+
// Region where the user profile exists
2185+
region string
2186+
// Status: Deleting, Failed, InService, Pending, Updating, Update_Failed, Delete_Failed
2187+
status string
2188+
// Time when the user profile was created
2189+
createdAt time
2190+
// Time when the user profile was last modified
2191+
lastModifiedAt time
2192+
// Tags for the user profile
2193+
tags() map[string]string
2194+
// Domain the user profile belongs to
2195+
domain() aws.sagemaker.domain
2196+
// Failure reason if the user profile is in a failed state
2197+
failureReason() string
2198+
// IAM Identity Center user identifier
2199+
singleSignOnUserIdentifier() string
2200+
// IAM Identity Center user value
2201+
singleSignOnUserValue() string
19002202
}
19012203

19022204
// AWS Simple Notification Service (SNS)

0 commit comments

Comments
 (0)