diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt index 9fc7238a2c..325d1248ae 100644 --- a/.github/actions/spelling/expect.txt +++ b/.github/actions/spelling/expect.txt @@ -46,6 +46,7 @@ cpe cryptokey ctx customresources +cwes cyclonedx dast databricks @@ -94,7 +95,9 @@ gotestsum gpu groupname gvnic +HADOOP headerorder +hec Hns horizontalpodautoscaler hostedzone @@ -179,6 +182,7 @@ pipefail portgroup posix postgre +processingjob POWERUSER priorityclass psc @@ -216,9 +220,11 @@ signin singlequeryargument sizeconstraintstatement Snat +SNYK softdep spdx sph +splunk spo sqli sqlimatchstatement @@ -233,6 +239,7 @@ testutils timestream toplevel tpu +trainingjob transitgateway udid uefi diff --git a/providers/aws/resources/aws.lr b/providers/aws/resources/aws.lr index 77a0d5aef3..4c13cb55bd 100644 --- a/providers/aws/resources/aws.lr +++ b/providers/aws/resources/aws.lr @@ -79,6 +79,40 @@ aws.organization @defaults("id masterAccountEmail") { accounts() []aws.account // Organization ID id string + // List of delegated administrator accounts in the organization + delegatedAdministrators() []aws.organization.delegatedAdministrator +} + +// AWS Organization delegated administrator +private aws.organization.delegatedAdministrator @defaults("name email") { + // ARN of the delegated administrator account + arn string + // Account ID of the delegated administrator + accountId string + // Friendly name of the account + name string + // Email address associated with the account + email string + // Account status: ACTIVE, SUSPENDED, or PENDING_CLOSURE + status string + // Method the account joined the organization: INVITED or CREATED + joinedMethod string + // Date the account joined the organization + joinedTimestamp time + // Date the account was made a delegated administrator + delegationEnabledDate time + // AWS services for which this account is a delegated administrator + delegatedServices() []aws.organization.delegatedService + // The account resource + account() aws.account +} + +// AWS Organization delegated service +private aws.organization.delegatedService @defaults("servicePrincipal") { + // Service principal name (e.g., "guardduty.amazonaws.com") + servicePrincipal string + // Date the account became a delegated administrator for this service + delegationEnabledDate time } // Amazon Virtual Private Cloud (VPC) @@ -1450,6 +1484,8 @@ aws.iam.accessAnalyzer @defaults("analyzers") { analyzers() []aws.iam.accessanalyzer.analyzer // List of all active findings for all analyzers and regions findings() []aws.iam.accessanalyzer.finding + // List of all archived findings for all analyzers and regions + archivedFindings() []aws.iam.accessanalyzer.finding } // AWS IAM Access Analyzer resource (provides an object representing an individual AWS IAM Access Analyzer configuration) @@ -1508,6 +1544,16 @@ aws.sagemaker { endpoints() []aws.sagemaker.endpoint // List of SageMaker notebook instances notebookInstances() []aws.sagemaker.notebookinstance + // List of SageMaker models + models() []aws.sagemaker.model + // List of SageMaker training jobs + trainingJobs() []aws.sagemaker.trainingjob + // List of SageMaker processing jobs + processingJobs() []aws.sagemaker.processingjob + // List of SageMaker pipelines + pipelines() []aws.sagemaker.pipeline + // List of SageMaker domains + domains() []aws.sagemaker.domain } // AWS SageMaker notebook instance @@ -1568,6 +1614,170 @@ private aws.sagemaker.endpoint @defaults("arn name") { status string } +// AWS SageMaker model +private aws.sagemaker.model @defaults("arn name") { + // ARN for the model + arn string + // Name of the model + name string + // Region where the model exists + region string + // Time when the model was created + createdAt time + // Tags for the model + tags() map[string]string + // Whether network isolation is enabled for the model + enableNetworkIsolation() bool + // IAM execution role for the model + iamRole() aws.iam.role + // Primary container definition + primaryContainer() dict + // VPC configuration + vpcConfig() dict +} + +// AWS SageMaker training job +private aws.sagemaker.trainingjob @defaults("arn name status") { + // ARN for the training job + arn string + // Name of the training job + name string + // Region where the training job exists + region string + // Status: InProgress, Completed, Failed, Stopping, Stopped + status string + // Time when the training job was created + createdAt time + // Time when the training job was last modified + lastModifiedAt time + // Time when the training job ended + trainingEndTime time + // Tags for the training job + tags() map[string]string + // IAM role for the training job + iamRole() aws.iam.role + // Algorithm specification + algorithmSpecification() dict + // Hyperparameters for the training job + hyperParameters() map[string]string + // Whether network isolation is enabled + enableNetworkIsolation() bool + // Whether inter-container traffic encryption is enabled + enableInterContainerTrafficEncryption() bool + // Failure reason if the job failed + failureReason() string + // Billable time in seconds + billableTimeInSeconds() int + // VPC configuration + vpcConfig() dict + // Output data configuration + outputDataConfig() dict + // Resource configuration (instanceType, instanceCount, volumeSizeInGB) + resourceConfig() dict + // Stopping condition + stoppingCondition() dict +} + +// AWS SageMaker processing job +private aws.sagemaker.processingjob @defaults("arn name status") { + // ARN for the processing job + arn string + // Name of the processing job + name string + // Region where the processing job exists + region string + // Status: InProgress, Completed, Failed, Stopping, Stopped + status string + // Time when the processing job was created + createdAt time + // Time when the processing job was last modified + lastModifiedAt time + // Time when the processing job completed + processingEndTime time + // Failure reason if the job failed + failureReason string + // Exit message from the processing container + exitMessage string + // Tags for the processing job + tags() map[string]string + // IAM role for the processing job + iamRole() aws.iam.role + // Whether network isolation is enabled + enableNetworkIsolation() bool + // Whether inter-container traffic encryption is enabled + enableInterContainerTrafficEncryption() bool + // VPC configuration + vpcConfig() dict + // Processing resources configuration + processingResources() dict + // Environment variables + environment() map[string]string +} + +// AWS SageMaker pipeline +private aws.sagemaker.pipeline @defaults("arn name") { + // ARN for the pipeline + arn string + // Name of the pipeline + name string + // Display name of the pipeline + displayName string + // Description of the pipeline + description string + // Region where the pipeline exists + region string + // Time when the pipeline was created + createdAt time + // Time when the pipeline was last modified + lastModifiedAt time + // Time of the last pipeline execution + lastExecutionTime time + // Tags for the pipeline + tags() map[string]string + // IAM role the pipeline uses for execution + iamRole() aws.iam.role + // Status of the pipeline: Active or Deleting + pipelineStatus() string + // Pipeline definition (JSON string) + definition() string + // Maximum parallelism for pipeline steps + parallelismConfiguration() dict +} + +// AWS SageMaker domain +private aws.sagemaker.domain @defaults("arn name status") { + // ARN for the domain + arn string + // Domain ID + domainId string + // Domain name + name string + // Region where the domain exists + region string + // Status: Deleting, Failed, InService, Pending, Updating, Update_Failed, Delete_Failed + status string + // URL of the domain + url string + // Time when the domain was created + createdAt time + // Time when the domain was last modified + lastModifiedAt time + // Tags for the domain + tags() map[string]string + // Authentication mode: SSO or IAM + authMode() string + // App network access type: PublicInternetOnly or VpcOnly + appNetworkAccessType() string + // VPC the domain uses for communication + vpc() aws.vpc + // KMS key used to encrypt the EFS volume + kmsKey() aws.kms.key + // Home EFS file system ID + homeEfsFileSystemId() string + // Default user settings + defaultUserSettings() dict +} + // AWS Simple Notification Service (SNS) aws.sns { // List of SNS topics @@ -2294,6 +2504,10 @@ aws.shield @defaults("subscriptionState") { protections() []aws.shield.protection // List of Shield Advanced protection groups protectionGroups() []aws.shield.protectionGroup + // DRT (Shield Response Team) access configuration + drtAccess() aws.shield.drtAccess + // Emergency contacts for proactive engagement + emergencyContacts() []aws.shield.emergencyContact } // AWS Shield Advanced subscription @@ -2346,6 +2560,24 @@ private aws.shield.protectionGroup @defaults("id aggregation pattern") { members []string } +// AWS Shield Advanced DRT (Shield Response Team) access configuration +private aws.shield.drtAccess @defaults("iamRole") { + // IAM role for the SRT to access the account + iamRole() aws.iam.role + // S3 log buckets the SRT can access + logBucketList []string +} + +// AWS Shield Advanced emergency contact +private aws.shield.emergencyContact @defaults("emailAddress") { + // Email address for the contact + emailAddress string + // Phone number for the contact + phoneNumber string + // Additional notes regarding the contact + contactNotes string +} + // AWS Secrets Manager aws.secretsmanager { // List of secrets @@ -2908,8 +3140,10 @@ private aws.eventbridge.rule @defaults("arn name state") { eventPattern string // Schedule expression (cron or rate) scheduleExpression string - // ARN of the IAM role associated with the rule + // Deprecated: Use iamRole instead roleArn string + // IAM role associated with the rule + iamRole() aws.iam.role // Tags for the rule tags() map[string]string // Targets for this rule @@ -5534,6 +5768,8 @@ private aws.ec2.volume @defaults("id region volumeType size encrypted state") { aws.inspector { // List of coverage results for the AWS account coverages() []aws.inspector.coverage + // List of all findings from Inspector across all regions + findings() []aws.inspector.finding } // Amazon Inspector environment coverage @@ -5596,6 +5832,138 @@ private aws.inspector.coverage.repository { region string } +// Amazon Inspector finding +private aws.inspector.finding @defaults("arn severity status type title") { + // ARN of the finding + arn string + // AWS account ID associated with the finding + accountId string + // Title of the finding + title string + // Description of the finding + description string + // Severity: INFORMATIONAL, LOW, MEDIUM, HIGH, CRITICAL, UNTRIAGED + severity string + // Status: ACTIVE, SUPPRESSED, CLOSED + status string + // Finding type: NETWORK_REACHABILITY, PACKAGE_VULNERABILITY, CODE_VULNERABILITY + type string + // Date/time the finding was first observed + firstObservedAt time + // Date/time the finding was last observed + lastObservedAt time + // Date/time the finding was last updated + updatedAt time + // Amazon Inspector score (0-10) + inspectorScore float + // Whether an exploit is available: YES, NO + exploitAvailable string + // Whether a fix is available: YES, NO, PARTIAL + fixAvailable string + // Region where the finding was discovered + region string + // Remediation recommendation text + remediation() string + // Remediation recommendation URL + remediationUrl() string + // Package vulnerability details (null if type is not PACKAGE_VULNERABILITY) + packageVulnerability() aws.inspector.finding.packageVulnerability + // Network reachability details (null if type is not NETWORK_REACHABILITY) + networkReachability() aws.inspector.finding.networkReachability + // Code vulnerability details (null if type is not CODE_VULNERABILITY) + codeVulnerability() aws.inspector.finding.codeVulnerability +} + +// Amazon Inspector finding package vulnerability details +private aws.inspector.finding.packageVulnerability @defaults("vulnerabilityId source") { + // Vulnerability ID (CVE ID, e.g., CVE-2021-44228) + vulnerabilityId string + // Source of vulnerability info (e.g., NVD, UBUNTU_CVE) + source string + // URL to the source + sourceUrl string + // Vendor-assigned severity + vendorSeverity string + // Date vendor first published the vulnerability + vendorCreatedAt time + // Date vendor last updated the vulnerability + vendorUpdatedAt time + // CVSS scores + cvssScores []aws.inspector.finding.packageVulnerability.cvssScore + // Reference URLs for more information + referenceUrls []string + // Related vulnerability IDs + relatedVulnerabilities []string + // Affected packages + vulnerablePackages []aws.inspector.finding.vulnerablePackage +} + +// Amazon Inspector CVSS score +private aws.inspector.finding.packageVulnerability.cvssScore @defaults("baseScore version source") { + // Base CVSS score + baseScore float + // CVSS vector string + scoringVector string + // Source of the score (e.g., NVD, SNYK) + source string + // CVSS version (e.g., 2.0, 3.0, 3.1) + version string +} + +// Amazon Inspector finding vulnerable package +private aws.inspector.finding.vulnerablePackage @defaults("name version") { + // Package name + name string + // Installed version + version string + // Architecture (e.g., x86_64, amd64) + arch string + // Epoch + epoch int + // Package manager (e.g., OS, BUNDLER, PIP, NPM) + packageManager string + // File path of the vulnerable package + filePath string + // Version containing the fix (empty if no fix) + fixedInVersion string + // Remediation command + remediation string + // Release string + release string +} + +// Amazon Inspector finding network reachability details +private aws.inspector.finding.networkReachability @defaults("protocol openPortStart openPortEnd") { + // Protocol: TCP, UDP + protocol string + // Open port range start + openPortStart int + // Open port range end + openPortEnd int + // Network path steps + networkPath []dict +} + +// Amazon Inspector finding code vulnerability details +private aws.inspector.finding.codeVulnerability @defaults("detectorName") { + // CWE IDs associated with the vulnerability + cwes []string + // CodeGuru detector ID + detectorId string + // CodeGuru detector name + detectorName string + // Detector tags + detectorTags []string + // File path where the vulnerability was found + filePath dict + // Reference URLs + referenceUrls []string + // Rule ID + ruleId string + // Source Lambda layer ARN (if applicable) + sourceLambdaLayerArn string +} + // Amazon EC2 instance private aws.ec2.instance @defaults("instanceId region state instanceType architecture platformDetails") { // ARN for the instance @@ -5977,8 +6345,10 @@ private aws.config.rule @defaults("name id region state") { private aws.config.recorder @defaults("name region") { // Name of the recorder name string - // ARN of the IAM role used to describe the AWS resources associated with the account + // Deprecated: Use iamRole instead roleArn string + // IAM role used to describe the AWS resources associated with the account + iamRole() aws.iam.role // Whether the recorder records config changes for every supported type of regional resource allSupported bool // Whether the recorder records all supported types of global resources @@ -7315,7 +7685,7 @@ private aws.kinesis.firehoseDeliveryStream @defaults("name status region") { // Source configuration if the stream reads from a Kinesis data stream source dict // Destinations for the delivery stream - destinations []dict + destinations() []aws.kinesis.firehoseDeliveryStream.destination // Date and time the delivery stream was created createdAt time // Region where the delivery stream exists @@ -7324,6 +7694,200 @@ private aws.kinesis.firehoseDeliveryStream @defaults("name status region") { tags() map[string]string } +// Amazon Kinesis Firehose delivery stream destination +private aws.kinesis.firehoseDeliveryStream.destination @defaults("destinationId type") { + // Destination ID + destinationId string + // Type of destination: s3, redshift, elasticsearch, opensearch, splunk, httpEndpoint + type string + // Region where the parent delivery stream exists + region string + // S3 (Extended) destination configuration (null if not S3 type) + s3() aws.kinesis.firehoseDeliveryStream.destination.s3 + // Redshift destination configuration (null if not Redshift type) + redshift() aws.kinesis.firehoseDeliveryStream.destination.redshift + // Elasticsearch destination configuration (null if not Elasticsearch type) + elasticsearch() aws.kinesis.firehoseDeliveryStream.destination.elasticsearch + // OpenSearch Service destination configuration (null if not OpenSearch type) + opensearch() aws.kinesis.firehoseDeliveryStream.destination.opensearch + // Splunk destination configuration (null if not Splunk type) + splunk() aws.kinesis.firehoseDeliveryStream.destination.splunk + // HTTP endpoint destination configuration (null if not HTTP endpoint type) + httpEndpoint() aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint +} + +// Amazon Kinesis Firehose CloudWatch logging options +private aws.kinesis.firehoseDeliveryStream.cloudWatchLogging @defaults("enabled logGroupName") { + // Whether CloudWatch logging is enabled + enabled bool + // CloudWatch log group name + logGroupName string + // CloudWatch log stream name + logStreamName string +} + +// Amazon Kinesis Firehose S3 (Extended) destination +private aws.kinesis.firehoseDeliveryStream.destination.s3 @defaults("bucketArn compressionFormat") { + // ARN of the S3 bucket + bucketArn string + // IAM role for delivery + iamRole() aws.iam.role + // Compression format: UNCOMPRESSED, GZIP, ZIP, Snappy, HADOOP_SNAPPY + compressionFormat string + // Prefix for delivered S3 objects + prefix string + // Prefix for failed records + errorOutputPrefix string + // File extension override + fileExtension string + // Buffering size in MBs + bufferingSizeInMBs int + // Buffering interval in seconds + bufferingIntervalInSeconds int + // S3 backup mode: Disabled or Enabled + s3BackupMode string + // CloudWatch logging options + cloudWatchLogging aws.kinesis.firehoseDeliveryStream.cloudWatchLogging + // Data format conversion configuration + dataFormatConversion dict + // Dynamic partitioning configuration + dynamicPartitioning dict + // Data processing configuration + processingConfiguration dict + // Region + region string +} + +// Amazon Kinesis Firehose Redshift destination +private aws.kinesis.firehoseDeliveryStream.destination.redshift @defaults("clusterJdbcUrl") { + // Cluster JDBC URL + clusterJdbcUrl string + // IAM role for delivery + iamRole() aws.iam.role + // Username + username string + // COPY command table name + copyCommandTableName string + // COPY command options + copyCommandOptions string + // S3 backup mode: Disabled or Enabled + s3BackupMode string + // CloudWatch logging options + cloudWatchLogging aws.kinesis.firehoseDeliveryStream.cloudWatchLogging + // Data processing configuration + processingConfiguration dict + // Retry duration in seconds + retryDurationInSeconds int + // Region + region string +} + +// Amazon Kinesis Firehose Elasticsearch destination +private aws.kinesis.firehoseDeliveryStream.destination.elasticsearch @defaults("domainArn indexName") { + // Domain ARN + domainArn string + // Cluster endpoint + clusterEndpoint string + // Index name + indexName string + // Index rotation period: NoRotation, OneHour, OneDay, OneWeek, OneMonth + indexRotationPeriod string + // IAM role for delivery + iamRole() aws.iam.role + // S3 backup mode: FailedDocumentsOnly or AllDocuments + s3BackupMode string + // Buffering size in MBs + bufferingSizeInMBs int + // Buffering interval in seconds + bufferingIntervalInSeconds int + // CloudWatch logging options + cloudWatchLogging aws.kinesis.firehoseDeliveryStream.cloudWatchLogging + // Data processing configuration + processingConfiguration dict + // Retry duration in seconds + retryDurationInSeconds int + // Region + region string +} + +// Amazon Kinesis Firehose OpenSearch Service destination +private aws.kinesis.firehoseDeliveryStream.destination.opensearch @defaults("domainArn indexName") { + // Domain ARN + domainArn string + // Cluster endpoint + clusterEndpoint string + // Index name + indexName string + // Index rotation period: NoRotation, OneHour, OneDay, OneWeek, OneMonth + indexRotationPeriod string + // IAM role for delivery + iamRole() aws.iam.role + // S3 backup mode: FailedDocumentsOnly or AllDocuments + s3BackupMode string + // Buffering size in MBs + bufferingSizeInMBs int + // Buffering interval in seconds + bufferingIntervalInSeconds int + // CloudWatch logging options + cloudWatchLogging aws.kinesis.firehoseDeliveryStream.cloudWatchLogging + // Data processing configuration + processingConfiguration dict + // Retry duration in seconds + retryDurationInSeconds int + // Region + region string +} + +// Amazon Kinesis Firehose Splunk destination +private aws.kinesis.firehoseDeliveryStream.destination.splunk @defaults("hecEndpoint hecEndpointType") { + // HEC endpoint URL + hecEndpoint string + // HEC endpoint type: Raw or Event + hecEndpointType string + // HEC acknowledgment timeout in seconds + hecAcknowledgmentTimeoutInSeconds int + // S3 backup mode: FailedEventsOnly or AllEvents + s3BackupMode string + // Buffering size in MBs + bufferingSizeInMBs int + // Buffering interval in seconds + bufferingIntervalInSeconds int + // CloudWatch logging options + cloudWatchLogging aws.kinesis.firehoseDeliveryStream.cloudWatchLogging + // Data processing configuration + processingConfiguration dict + // Retry duration in seconds + retryDurationInSeconds int + // Region + region string +} + +// Amazon Kinesis Firehose HTTP endpoint destination +private aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint @defaults("endpointUrl endpointName") { + // Endpoint URL + endpointUrl string + // Endpoint name + endpointName string + // IAM role for delivery + iamRole() aws.iam.role + // S3 backup mode: FailedDataOnly or AllData + s3BackupMode string + // Buffering size in MBs + bufferingSizeInMBs int + // Buffering interval in seconds + bufferingIntervalInSeconds int + // CloudWatch logging options + cloudWatchLogging aws.kinesis.firehoseDeliveryStream.cloudWatchLogging + // Data processing configuration + processingConfiguration dict + // Request configuration + requestConfiguration dict + // Retry duration in seconds + retryDurationInSeconds int + // Region + region string +} + // Amazon MemoryDB aws.memorydb @defaults("clusters") { // List of MemoryDB clusters diff --git a/providers/aws/resources/aws.lr.go b/providers/aws/resources/aws.lr.go index 7b439534a7..e3d6b07663 100644 --- a/providers/aws/resources/aws.lr.go +++ b/providers/aws/resources/aws.lr.go @@ -21,6 +21,8 @@ const ( ResourceAwsAccount string = "aws.account" ResourceAwsAccountAlternateContact string = "aws.account.alternateContact" ResourceAwsOrganization string = "aws.organization" + ResourceAwsOrganizationDelegatedAdministrator string = "aws.organization.delegatedAdministrator" + ResourceAwsOrganizationDelegatedService string = "aws.organization.delegatedService" ResourceAwsVpc string = "aws.vpc" ResourceAwsVpcRoutetable string = "aws.vpc.routetable" ResourceAwsVpcRoutetableRoute string = "aws.vpc.routetable.route" @@ -100,6 +102,11 @@ const ( ResourceAwsSagemakerNotebookinstance string = "aws.sagemaker.notebookinstance" ResourceAwsSagemakerNotebookinstancedetails string = "aws.sagemaker.notebookinstancedetails" ResourceAwsSagemakerEndpoint string = "aws.sagemaker.endpoint" + ResourceAwsSagemakerModel string = "aws.sagemaker.model" + ResourceAwsSagemakerTrainingjob string = "aws.sagemaker.trainingjob" + ResourceAwsSagemakerProcessingjob string = "aws.sagemaker.processingjob" + ResourceAwsSagemakerPipeline string = "aws.sagemaker.pipeline" + ResourceAwsSagemakerDomain string = "aws.sagemaker.domain" ResourceAwsSns string = "aws.sns" ResourceAwsSnsTopic string = "aws.sns.topic" ResourceAwsSnsSubscription string = "aws.sns.subscription" @@ -134,6 +141,8 @@ const ( ResourceAwsShieldSubscription string = "aws.shield.subscription" ResourceAwsShieldProtection string = "aws.shield.protection" ResourceAwsShieldProtectionGroup string = "aws.shield.protectionGroup" + ResourceAwsShieldDrtAccess string = "aws.shield.drtAccess" + ResourceAwsShieldEmergencyContact string = "aws.shield.emergencyContact" ResourceAwsSecretsmanager string = "aws.secretsmanager" ResourceAwsSecretsmanagerSecret string = "aws.secretsmanager.secret" ResourceAwsSecretsmanagerSecretRotationRules string = "aws.secretsmanager.secret.rotationRules" @@ -284,6 +293,12 @@ const ( ResourceAwsInspectorCoverageInstance string = "aws.inspector.coverage.instance" ResourceAwsInspectorCoverageImage string = "aws.inspector.coverage.image" ResourceAwsInspectorCoverageRepository string = "aws.inspector.coverage.repository" + ResourceAwsInspectorFinding string = "aws.inspector.finding" + ResourceAwsInspectorFindingPackageVulnerability string = "aws.inspector.finding.packageVulnerability" + ResourceAwsInspectorFindingPackageVulnerabilityCvssScore string = "aws.inspector.finding.packageVulnerability.cvssScore" + ResourceAwsInspectorFindingVulnerablePackage string = "aws.inspector.finding.vulnerablePackage" + ResourceAwsInspectorFindingNetworkReachability string = "aws.inspector.finding.networkReachability" + ResourceAwsInspectorFindingCodeVulnerability string = "aws.inspector.finding.codeVulnerability" ResourceAwsEc2Instance string = "aws.ec2.instance" ResourceAwsEc2Networkinterface string = "aws.ec2.networkinterface" ResourceAwsEc2Keypair string = "aws.ec2.keypair" @@ -349,6 +364,14 @@ const ( ResourceAwsKinesisStream string = "aws.kinesis.stream" ResourceAwsKinesisStreamConsumer string = "aws.kinesis.streamConsumer" ResourceAwsKinesisFirehoseDeliveryStream string = "aws.kinesis.firehoseDeliveryStream" + ResourceAwsKinesisFirehoseDeliveryStreamDestination string = "aws.kinesis.firehoseDeliveryStream.destination" + ResourceAwsKinesisFirehoseDeliveryStreamCloudWatchLogging string = "aws.kinesis.firehoseDeliveryStream.cloudWatchLogging" + ResourceAwsKinesisFirehoseDeliveryStreamDestinationS3 string = "aws.kinesis.firehoseDeliveryStream.destination.s3" + ResourceAwsKinesisFirehoseDeliveryStreamDestinationRedshift string = "aws.kinesis.firehoseDeliveryStream.destination.redshift" + ResourceAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch string = "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch" + ResourceAwsKinesisFirehoseDeliveryStreamDestinationOpensearch string = "aws.kinesis.firehoseDeliveryStream.destination.opensearch" + ResourceAwsKinesisFirehoseDeliveryStreamDestinationSplunk string = "aws.kinesis.firehoseDeliveryStream.destination.splunk" + ResourceAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint string = "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint" ResourceAwsMemorydb string = "aws.memorydb" ResourceAwsMemorydbCluster string = "aws.memorydb.cluster" ResourceAwsMemorydbAcl string = "aws.memorydb.acl" @@ -395,6 +418,14 @@ func init() { // to override args, implement: initAwsOrganization(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) Create: createAwsOrganization, }, + "aws.organization.delegatedAdministrator": { + // to override args, implement: initAwsOrganizationDelegatedAdministrator(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsOrganizationDelegatedAdministrator, + }, + "aws.organization.delegatedService": { + // to override args, implement: initAwsOrganizationDelegatedService(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsOrganizationDelegatedService, + }, "aws.vpc": { Init: initAwsVpc, Create: createAwsVpc, @@ -711,6 +742,26 @@ func init() { // to override args, implement: initAwsSagemakerEndpoint(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) Create: createAwsSagemakerEndpoint, }, + "aws.sagemaker.model": { + // to override args, implement: initAwsSagemakerModel(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsSagemakerModel, + }, + "aws.sagemaker.trainingjob": { + // to override args, implement: initAwsSagemakerTrainingjob(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsSagemakerTrainingjob, + }, + "aws.sagemaker.processingjob": { + // to override args, implement: initAwsSagemakerProcessingjob(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsSagemakerProcessingjob, + }, + "aws.sagemaker.pipeline": { + // to override args, implement: initAwsSagemakerPipeline(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsSagemakerPipeline, + }, + "aws.sagemaker.domain": { + // to override args, implement: initAwsSagemakerDomain(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsSagemakerDomain, + }, "aws.sns": { // to override args, implement: initAwsSns(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) Create: createAwsSns, @@ -847,6 +898,14 @@ func init() { // to override args, implement: initAwsShieldProtectionGroup(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) Create: createAwsShieldProtectionGroup, }, + "aws.shield.drtAccess": { + // to override args, implement: initAwsShieldDrtAccess(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsShieldDrtAccess, + }, + "aws.shield.emergencyContact": { + // to override args, implement: initAwsShieldEmergencyContact(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsShieldEmergencyContact, + }, "aws.secretsmanager": { // to override args, implement: initAwsSecretsmanager(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) Create: createAwsSecretsmanager, @@ -1447,6 +1506,30 @@ func init() { // to override args, implement: initAwsInspectorCoverageRepository(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) Create: createAwsInspectorCoverageRepository, }, + "aws.inspector.finding": { + // to override args, implement: initAwsInspectorFinding(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsInspectorFinding, + }, + "aws.inspector.finding.packageVulnerability": { + // to override args, implement: initAwsInspectorFindingPackageVulnerability(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsInspectorFindingPackageVulnerability, + }, + "aws.inspector.finding.packageVulnerability.cvssScore": { + // to override args, implement: initAwsInspectorFindingPackageVulnerabilityCvssScore(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsInspectorFindingPackageVulnerabilityCvssScore, + }, + "aws.inspector.finding.vulnerablePackage": { + // to override args, implement: initAwsInspectorFindingVulnerablePackage(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsInspectorFindingVulnerablePackage, + }, + "aws.inspector.finding.networkReachability": { + // to override args, implement: initAwsInspectorFindingNetworkReachability(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsInspectorFindingNetworkReachability, + }, + "aws.inspector.finding.codeVulnerability": { + // to override args, implement: initAwsInspectorFindingCodeVulnerability(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsInspectorFindingCodeVulnerability, + }, "aws.ec2.instance": { Init: initAwsEc2Instance, Create: createAwsEc2Instance, @@ -1707,6 +1790,38 @@ func init() { // to override args, implement: initAwsKinesisFirehoseDeliveryStream(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) Create: createAwsKinesisFirehoseDeliveryStream, }, + "aws.kinesis.firehoseDeliveryStream.destination": { + // to override args, implement: initAwsKinesisFirehoseDeliveryStreamDestination(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsKinesisFirehoseDeliveryStreamDestination, + }, + "aws.kinesis.firehoseDeliveryStream.cloudWatchLogging": { + // to override args, implement: initAwsKinesisFirehoseDeliveryStreamCloudWatchLogging(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsKinesisFirehoseDeliveryStreamCloudWatchLogging, + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3": { + // to override args, implement: initAwsKinesisFirehoseDeliveryStreamDestinationS3(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsKinesisFirehoseDeliveryStreamDestinationS3, + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift": { + // to override args, implement: initAwsKinesisFirehoseDeliveryStreamDestinationRedshift(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsKinesisFirehoseDeliveryStreamDestinationRedshift, + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch": { + // to override args, implement: initAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch, + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch": { + // to override args, implement: initAwsKinesisFirehoseDeliveryStreamDestinationOpensearch(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsKinesisFirehoseDeliveryStreamDestinationOpensearch, + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk": { + // to override args, implement: initAwsKinesisFirehoseDeliveryStreamDestinationSplunk(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsKinesisFirehoseDeliveryStreamDestinationSplunk, + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint": { + // to override args, implement: initAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) + Create: createAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint, + }, "aws.memorydb": { // to override args, implement: initAwsMemorydb(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) Create: createAwsMemorydb, @@ -1955,6 +2070,45 @@ var getDataFields = map[string]func(r plugin.Resource) *plugin.DataRes{ "aws.organization.id": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsOrganization).GetId()).ToDataRes(types.String) }, + "aws.organization.delegatedAdministrators": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsOrganization).GetDelegatedAdministrators()).ToDataRes(types.Array(types.Resource("aws.organization.delegatedAdministrator"))) + }, + "aws.organization.delegatedAdministrator.arn": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsOrganizationDelegatedAdministrator).GetArn()).ToDataRes(types.String) + }, + "aws.organization.delegatedAdministrator.accountId": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsOrganizationDelegatedAdministrator).GetAccountId()).ToDataRes(types.String) + }, + "aws.organization.delegatedAdministrator.name": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsOrganizationDelegatedAdministrator).GetName()).ToDataRes(types.String) + }, + "aws.organization.delegatedAdministrator.email": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsOrganizationDelegatedAdministrator).GetEmail()).ToDataRes(types.String) + }, + "aws.organization.delegatedAdministrator.status": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsOrganizationDelegatedAdministrator).GetStatus()).ToDataRes(types.String) + }, + "aws.organization.delegatedAdministrator.joinedMethod": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsOrganizationDelegatedAdministrator).GetJoinedMethod()).ToDataRes(types.String) + }, + "aws.organization.delegatedAdministrator.joinedTimestamp": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsOrganizationDelegatedAdministrator).GetJoinedTimestamp()).ToDataRes(types.Time) + }, + "aws.organization.delegatedAdministrator.delegationEnabledDate": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsOrganizationDelegatedAdministrator).GetDelegationEnabledDate()).ToDataRes(types.Time) + }, + "aws.organization.delegatedAdministrator.delegatedServices": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsOrganizationDelegatedAdministrator).GetDelegatedServices()).ToDataRes(types.Array(types.Resource("aws.organization.delegatedService"))) + }, + "aws.organization.delegatedAdministrator.account": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsOrganizationDelegatedAdministrator).GetAccount()).ToDataRes(types.Resource("aws.account")) + }, + "aws.organization.delegatedService.servicePrincipal": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsOrganizationDelegatedService).GetServicePrincipal()).ToDataRes(types.String) + }, + "aws.organization.delegatedService.delegationEnabledDate": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsOrganizationDelegatedService).GetDelegationEnabledDate()).ToDataRes(types.Time) + }, "aws.vpc.arn": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsVpc).GetArn()).ToDataRes(types.String) }, @@ -3557,6 +3711,9 @@ var getDataFields = map[string]func(r plugin.Resource) *plugin.DataRes{ "aws.iam.accessAnalyzer.findings": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsIamAccessAnalyzer).GetFindings()).ToDataRes(types.Array(types.Resource("aws.iam.accessanalyzer.finding"))) }, + "aws.iam.accessAnalyzer.archivedFindings": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsIamAccessAnalyzer).GetArchivedFindings()).ToDataRes(types.Array(types.Resource("aws.iam.accessanalyzer.finding"))) + }, "aws.iam.accessanalyzer.analyzer.arn": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsIamAccessanalyzerAnalyzer).GetArn()).ToDataRes(types.String) }, @@ -3626,6 +3783,21 @@ var getDataFields = map[string]func(r plugin.Resource) *plugin.DataRes{ "aws.sagemaker.notebookInstances": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsSagemaker).GetNotebookInstances()).ToDataRes(types.Array(types.Resource("aws.sagemaker.notebookinstance"))) }, + "aws.sagemaker.models": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemaker).GetModels()).ToDataRes(types.Array(types.Resource("aws.sagemaker.model"))) + }, + "aws.sagemaker.trainingJobs": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemaker).GetTrainingJobs()).ToDataRes(types.Array(types.Resource("aws.sagemaker.trainingjob"))) + }, + "aws.sagemaker.processingJobs": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemaker).GetProcessingJobs()).ToDataRes(types.Array(types.Resource("aws.sagemaker.processingjob"))) + }, + "aws.sagemaker.pipelines": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemaker).GetPipelines()).ToDataRes(types.Array(types.Resource("aws.sagemaker.pipeline"))) + }, + "aws.sagemaker.domains": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemaker).GetDomains()).ToDataRes(types.Array(types.Resource("aws.sagemaker.domain"))) + }, "aws.sagemaker.notebookinstance.arn": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsSagemakerNotebookinstance).GetArn()).ToDataRes(types.String) }, @@ -3695,6 +3867,222 @@ var getDataFields = map[string]func(r plugin.Resource) *plugin.DataRes{ "aws.sagemaker.endpoint.status": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsSagemakerEndpoint).GetStatus()).ToDataRes(types.String) }, + "aws.sagemaker.model.arn": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerModel).GetArn()).ToDataRes(types.String) + }, + "aws.sagemaker.model.name": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerModel).GetName()).ToDataRes(types.String) + }, + "aws.sagemaker.model.region": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerModel).GetRegion()).ToDataRes(types.String) + }, + "aws.sagemaker.model.createdAt": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerModel).GetCreatedAt()).ToDataRes(types.Time) + }, + "aws.sagemaker.model.tags": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerModel).GetTags()).ToDataRes(types.Map(types.String, types.String)) + }, + "aws.sagemaker.model.enableNetworkIsolation": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerModel).GetEnableNetworkIsolation()).ToDataRes(types.Bool) + }, + "aws.sagemaker.model.iamRole": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerModel).GetIamRole()).ToDataRes(types.Resource("aws.iam.role")) + }, + "aws.sagemaker.model.primaryContainer": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerModel).GetPrimaryContainer()).ToDataRes(types.Dict) + }, + "aws.sagemaker.model.vpcConfig": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerModel).GetVpcConfig()).ToDataRes(types.Dict) + }, + "aws.sagemaker.trainingjob.arn": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerTrainingjob).GetArn()).ToDataRes(types.String) + }, + "aws.sagemaker.trainingjob.name": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerTrainingjob).GetName()).ToDataRes(types.String) + }, + "aws.sagemaker.trainingjob.region": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerTrainingjob).GetRegion()).ToDataRes(types.String) + }, + "aws.sagemaker.trainingjob.status": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerTrainingjob).GetStatus()).ToDataRes(types.String) + }, + "aws.sagemaker.trainingjob.createdAt": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerTrainingjob).GetCreatedAt()).ToDataRes(types.Time) + }, + "aws.sagemaker.trainingjob.lastModifiedAt": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerTrainingjob).GetLastModifiedAt()).ToDataRes(types.Time) + }, + "aws.sagemaker.trainingjob.trainingEndTime": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerTrainingjob).GetTrainingEndTime()).ToDataRes(types.Time) + }, + "aws.sagemaker.trainingjob.tags": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerTrainingjob).GetTags()).ToDataRes(types.Map(types.String, types.String)) + }, + "aws.sagemaker.trainingjob.iamRole": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerTrainingjob).GetIamRole()).ToDataRes(types.Resource("aws.iam.role")) + }, + "aws.sagemaker.trainingjob.algorithmSpecification": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerTrainingjob).GetAlgorithmSpecification()).ToDataRes(types.Dict) + }, + "aws.sagemaker.trainingjob.hyperParameters": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerTrainingjob).GetHyperParameters()).ToDataRes(types.Map(types.String, types.String)) + }, + "aws.sagemaker.trainingjob.enableNetworkIsolation": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerTrainingjob).GetEnableNetworkIsolation()).ToDataRes(types.Bool) + }, + "aws.sagemaker.trainingjob.enableInterContainerTrafficEncryption": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerTrainingjob).GetEnableInterContainerTrafficEncryption()).ToDataRes(types.Bool) + }, + "aws.sagemaker.trainingjob.failureReason": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerTrainingjob).GetFailureReason()).ToDataRes(types.String) + }, + "aws.sagemaker.trainingjob.billableTimeInSeconds": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerTrainingjob).GetBillableTimeInSeconds()).ToDataRes(types.Int) + }, + "aws.sagemaker.trainingjob.vpcConfig": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerTrainingjob).GetVpcConfig()).ToDataRes(types.Dict) + }, + "aws.sagemaker.trainingjob.outputDataConfig": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerTrainingjob).GetOutputDataConfig()).ToDataRes(types.Dict) + }, + "aws.sagemaker.trainingjob.resourceConfig": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerTrainingjob).GetResourceConfig()).ToDataRes(types.Dict) + }, + "aws.sagemaker.trainingjob.stoppingCondition": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerTrainingjob).GetStoppingCondition()).ToDataRes(types.Dict) + }, + "aws.sagemaker.processingjob.arn": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerProcessingjob).GetArn()).ToDataRes(types.String) + }, + "aws.sagemaker.processingjob.name": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerProcessingjob).GetName()).ToDataRes(types.String) + }, + "aws.sagemaker.processingjob.region": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerProcessingjob).GetRegion()).ToDataRes(types.String) + }, + "aws.sagemaker.processingjob.status": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerProcessingjob).GetStatus()).ToDataRes(types.String) + }, + "aws.sagemaker.processingjob.createdAt": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerProcessingjob).GetCreatedAt()).ToDataRes(types.Time) + }, + "aws.sagemaker.processingjob.lastModifiedAt": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerProcessingjob).GetLastModifiedAt()).ToDataRes(types.Time) + }, + "aws.sagemaker.processingjob.processingEndTime": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerProcessingjob).GetProcessingEndTime()).ToDataRes(types.Time) + }, + "aws.sagemaker.processingjob.failureReason": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerProcessingjob).GetFailureReason()).ToDataRes(types.String) + }, + "aws.sagemaker.processingjob.exitMessage": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerProcessingjob).GetExitMessage()).ToDataRes(types.String) + }, + "aws.sagemaker.processingjob.tags": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerProcessingjob).GetTags()).ToDataRes(types.Map(types.String, types.String)) + }, + "aws.sagemaker.processingjob.iamRole": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerProcessingjob).GetIamRole()).ToDataRes(types.Resource("aws.iam.role")) + }, + "aws.sagemaker.processingjob.enableNetworkIsolation": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerProcessingjob).GetEnableNetworkIsolation()).ToDataRes(types.Bool) + }, + "aws.sagemaker.processingjob.enableInterContainerTrafficEncryption": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerProcessingjob).GetEnableInterContainerTrafficEncryption()).ToDataRes(types.Bool) + }, + "aws.sagemaker.processingjob.vpcConfig": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerProcessingjob).GetVpcConfig()).ToDataRes(types.Dict) + }, + "aws.sagemaker.processingjob.processingResources": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerProcessingjob).GetProcessingResources()).ToDataRes(types.Dict) + }, + "aws.sagemaker.processingjob.environment": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerProcessingjob).GetEnvironment()).ToDataRes(types.Map(types.String, types.String)) + }, + "aws.sagemaker.pipeline.arn": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerPipeline).GetArn()).ToDataRes(types.String) + }, + "aws.sagemaker.pipeline.name": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerPipeline).GetName()).ToDataRes(types.String) + }, + "aws.sagemaker.pipeline.displayName": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerPipeline).GetDisplayName()).ToDataRes(types.String) + }, + "aws.sagemaker.pipeline.description": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerPipeline).GetDescription()).ToDataRes(types.String) + }, + "aws.sagemaker.pipeline.region": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerPipeline).GetRegion()).ToDataRes(types.String) + }, + "aws.sagemaker.pipeline.createdAt": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerPipeline).GetCreatedAt()).ToDataRes(types.Time) + }, + "aws.sagemaker.pipeline.lastModifiedAt": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerPipeline).GetLastModifiedAt()).ToDataRes(types.Time) + }, + "aws.sagemaker.pipeline.lastExecutionTime": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerPipeline).GetLastExecutionTime()).ToDataRes(types.Time) + }, + "aws.sagemaker.pipeline.tags": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerPipeline).GetTags()).ToDataRes(types.Map(types.String, types.String)) + }, + "aws.sagemaker.pipeline.iamRole": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerPipeline).GetIamRole()).ToDataRes(types.Resource("aws.iam.role")) + }, + "aws.sagemaker.pipeline.pipelineStatus": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerPipeline).GetPipelineStatus()).ToDataRes(types.String) + }, + "aws.sagemaker.pipeline.definition": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerPipeline).GetDefinition()).ToDataRes(types.String) + }, + "aws.sagemaker.pipeline.parallelismConfiguration": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerPipeline).GetParallelismConfiguration()).ToDataRes(types.Dict) + }, + "aws.sagemaker.domain.arn": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerDomain).GetArn()).ToDataRes(types.String) + }, + "aws.sagemaker.domain.domainId": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerDomain).GetDomainId()).ToDataRes(types.String) + }, + "aws.sagemaker.domain.name": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerDomain).GetName()).ToDataRes(types.String) + }, + "aws.sagemaker.domain.region": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerDomain).GetRegion()).ToDataRes(types.String) + }, + "aws.sagemaker.domain.status": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerDomain).GetStatus()).ToDataRes(types.String) + }, + "aws.sagemaker.domain.url": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerDomain).GetUrl()).ToDataRes(types.String) + }, + "aws.sagemaker.domain.createdAt": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerDomain).GetCreatedAt()).ToDataRes(types.Time) + }, + "aws.sagemaker.domain.lastModifiedAt": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerDomain).GetLastModifiedAt()).ToDataRes(types.Time) + }, + "aws.sagemaker.domain.tags": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerDomain).GetTags()).ToDataRes(types.Map(types.String, types.String)) + }, + "aws.sagemaker.domain.authMode": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerDomain).GetAuthMode()).ToDataRes(types.String) + }, + "aws.sagemaker.domain.appNetworkAccessType": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerDomain).GetAppNetworkAccessType()).ToDataRes(types.String) + }, + "aws.sagemaker.domain.vpc": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerDomain).GetVpc()).ToDataRes(types.Resource("aws.vpc")) + }, + "aws.sagemaker.domain.kmsKey": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerDomain).GetKmsKey()).ToDataRes(types.Resource("aws.kms.key")) + }, + "aws.sagemaker.domain.homeEfsFileSystemId": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerDomain).GetHomeEfsFileSystemId()).ToDataRes(types.String) + }, + "aws.sagemaker.domain.defaultUserSettings": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsSagemakerDomain).GetDefaultUserSettings()).ToDataRes(types.Dict) + }, "aws.sns.topics": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsSns).GetTopics()).ToDataRes(types.Array(types.Resource("aws.sns.topic"))) }, @@ -4598,6 +4986,12 @@ var getDataFields = map[string]func(r plugin.Resource) *plugin.DataRes{ "aws.shield.protectionGroups": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsShield).GetProtectionGroups()).ToDataRes(types.Array(types.Resource("aws.shield.protectionGroup"))) }, + "aws.shield.drtAccess": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsShield).GetDrtAccess()).ToDataRes(types.Resource("aws.shield.drtAccess")) + }, + "aws.shield.emergencyContacts": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsShield).GetEmergencyContacts()).ToDataRes(types.Array(types.Resource("aws.shield.emergencyContact"))) + }, "aws.shield.subscription.arn": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsShieldSubscription).GetArn()).ToDataRes(types.String) }, @@ -4655,6 +5049,21 @@ var getDataFields = map[string]func(r plugin.Resource) *plugin.DataRes{ "aws.shield.protectionGroup.members": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsShieldProtectionGroup).GetMembers()).ToDataRes(types.Array(types.String)) }, + "aws.shield.drtAccess.iamRole": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsShieldDrtAccess).GetIamRole()).ToDataRes(types.Resource("aws.iam.role")) + }, + "aws.shield.drtAccess.logBucketList": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsShieldDrtAccess).GetLogBucketList()).ToDataRes(types.Array(types.String)) + }, + "aws.shield.emergencyContact.emailAddress": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsShieldEmergencyContact).GetEmailAddress()).ToDataRes(types.String) + }, + "aws.shield.emergencyContact.phoneNumber": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsShieldEmergencyContact).GetPhoneNumber()).ToDataRes(types.String) + }, + "aws.shield.emergencyContact.contactNotes": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsShieldEmergencyContact).GetContactNotes()).ToDataRes(types.String) + }, "aws.secretsmanager.secrets": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsSecretsmanager).GetSecrets()).ToDataRes(types.Array(types.Resource("aws.secretsmanager.secret"))) }, @@ -5303,6 +5712,9 @@ var getDataFields = map[string]func(r plugin.Resource) *plugin.DataRes{ "aws.eventbridge.rule.roleArn": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsEventbridgeRule).GetRoleArn()).ToDataRes(types.String) }, + "aws.eventbridge.rule.iamRole": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsEventbridgeRule).GetIamRole()).ToDataRes(types.Resource("aws.iam.role")) + }, "aws.eventbridge.rule.tags": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsEventbridgeRule).GetTags()).ToDataRes(types.Map(types.String, types.String)) }, @@ -8561,6 +8973,9 @@ var getDataFields = map[string]func(r plugin.Resource) *plugin.DataRes{ "aws.inspector.coverages": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsInspector).GetCoverages()).ToDataRes(types.Array(types.Resource("aws.inspector.coverage"))) }, + "aws.inspector.findings": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspector).GetFindings()).ToDataRes(types.Array(types.Resource("aws.inspector.finding"))) + }, "aws.inspector.coverage.accountId": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsInspectorCoverage).GetAccountId()).ToDataRes(types.String) }, @@ -8627,6 +9042,168 @@ var getDataFields = map[string]func(r plugin.Resource) *plugin.DataRes{ "aws.inspector.coverage.repository.region": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsInspectorCoverageRepository).GetRegion()).ToDataRes(types.String) }, + "aws.inspector.finding.arn": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFinding).GetArn()).ToDataRes(types.String) + }, + "aws.inspector.finding.accountId": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFinding).GetAccountId()).ToDataRes(types.String) + }, + "aws.inspector.finding.title": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFinding).GetTitle()).ToDataRes(types.String) + }, + "aws.inspector.finding.description": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFinding).GetDescription()).ToDataRes(types.String) + }, + "aws.inspector.finding.severity": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFinding).GetSeverity()).ToDataRes(types.String) + }, + "aws.inspector.finding.status": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFinding).GetStatus()).ToDataRes(types.String) + }, + "aws.inspector.finding.type": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFinding).GetType()).ToDataRes(types.String) + }, + "aws.inspector.finding.firstObservedAt": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFinding).GetFirstObservedAt()).ToDataRes(types.Time) + }, + "aws.inspector.finding.lastObservedAt": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFinding).GetLastObservedAt()).ToDataRes(types.Time) + }, + "aws.inspector.finding.updatedAt": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFinding).GetUpdatedAt()).ToDataRes(types.Time) + }, + "aws.inspector.finding.inspectorScore": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFinding).GetInspectorScore()).ToDataRes(types.Float) + }, + "aws.inspector.finding.exploitAvailable": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFinding).GetExploitAvailable()).ToDataRes(types.String) + }, + "aws.inspector.finding.fixAvailable": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFinding).GetFixAvailable()).ToDataRes(types.String) + }, + "aws.inspector.finding.region": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFinding).GetRegion()).ToDataRes(types.String) + }, + "aws.inspector.finding.remediation": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFinding).GetRemediation()).ToDataRes(types.String) + }, + "aws.inspector.finding.remediationUrl": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFinding).GetRemediationUrl()).ToDataRes(types.String) + }, + "aws.inspector.finding.packageVulnerability": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFinding).GetPackageVulnerability()).ToDataRes(types.Resource("aws.inspector.finding.packageVulnerability")) + }, + "aws.inspector.finding.networkReachability": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFinding).GetNetworkReachability()).ToDataRes(types.Resource("aws.inspector.finding.networkReachability")) + }, + "aws.inspector.finding.codeVulnerability": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFinding).GetCodeVulnerability()).ToDataRes(types.Resource("aws.inspector.finding.codeVulnerability")) + }, + "aws.inspector.finding.packageVulnerability.vulnerabilityId": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingPackageVulnerability).GetVulnerabilityId()).ToDataRes(types.String) + }, + "aws.inspector.finding.packageVulnerability.source": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingPackageVulnerability).GetSource()).ToDataRes(types.String) + }, + "aws.inspector.finding.packageVulnerability.sourceUrl": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingPackageVulnerability).GetSourceUrl()).ToDataRes(types.String) + }, + "aws.inspector.finding.packageVulnerability.vendorSeverity": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingPackageVulnerability).GetVendorSeverity()).ToDataRes(types.String) + }, + "aws.inspector.finding.packageVulnerability.vendorCreatedAt": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingPackageVulnerability).GetVendorCreatedAt()).ToDataRes(types.Time) + }, + "aws.inspector.finding.packageVulnerability.vendorUpdatedAt": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingPackageVulnerability).GetVendorUpdatedAt()).ToDataRes(types.Time) + }, + "aws.inspector.finding.packageVulnerability.cvssScores": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingPackageVulnerability).GetCvssScores()).ToDataRes(types.Array(types.Resource("aws.inspector.finding.packageVulnerability.cvssScore"))) + }, + "aws.inspector.finding.packageVulnerability.referenceUrls": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingPackageVulnerability).GetReferenceUrls()).ToDataRes(types.Array(types.String)) + }, + "aws.inspector.finding.packageVulnerability.relatedVulnerabilities": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingPackageVulnerability).GetRelatedVulnerabilities()).ToDataRes(types.Array(types.String)) + }, + "aws.inspector.finding.packageVulnerability.vulnerablePackages": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingPackageVulnerability).GetVulnerablePackages()).ToDataRes(types.Array(types.Resource("aws.inspector.finding.vulnerablePackage"))) + }, + "aws.inspector.finding.packageVulnerability.cvssScore.baseScore": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingPackageVulnerabilityCvssScore).GetBaseScore()).ToDataRes(types.Float) + }, + "aws.inspector.finding.packageVulnerability.cvssScore.scoringVector": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingPackageVulnerabilityCvssScore).GetScoringVector()).ToDataRes(types.String) + }, + "aws.inspector.finding.packageVulnerability.cvssScore.source": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingPackageVulnerabilityCvssScore).GetSource()).ToDataRes(types.String) + }, + "aws.inspector.finding.packageVulnerability.cvssScore.version": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingPackageVulnerabilityCvssScore).GetVersion()).ToDataRes(types.String) + }, + "aws.inspector.finding.vulnerablePackage.name": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingVulnerablePackage).GetName()).ToDataRes(types.String) + }, + "aws.inspector.finding.vulnerablePackage.version": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingVulnerablePackage).GetVersion()).ToDataRes(types.String) + }, + "aws.inspector.finding.vulnerablePackage.arch": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingVulnerablePackage).GetArch()).ToDataRes(types.String) + }, + "aws.inspector.finding.vulnerablePackage.epoch": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingVulnerablePackage).GetEpoch()).ToDataRes(types.Int) + }, + "aws.inspector.finding.vulnerablePackage.packageManager": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingVulnerablePackage).GetPackageManager()).ToDataRes(types.String) + }, + "aws.inspector.finding.vulnerablePackage.filePath": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingVulnerablePackage).GetFilePath()).ToDataRes(types.String) + }, + "aws.inspector.finding.vulnerablePackage.fixedInVersion": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingVulnerablePackage).GetFixedInVersion()).ToDataRes(types.String) + }, + "aws.inspector.finding.vulnerablePackage.remediation": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingVulnerablePackage).GetRemediation()).ToDataRes(types.String) + }, + "aws.inspector.finding.vulnerablePackage.release": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingVulnerablePackage).GetRelease()).ToDataRes(types.String) + }, + "aws.inspector.finding.networkReachability.protocol": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingNetworkReachability).GetProtocol()).ToDataRes(types.String) + }, + "aws.inspector.finding.networkReachability.openPortStart": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingNetworkReachability).GetOpenPortStart()).ToDataRes(types.Int) + }, + "aws.inspector.finding.networkReachability.openPortEnd": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingNetworkReachability).GetOpenPortEnd()).ToDataRes(types.Int) + }, + "aws.inspector.finding.networkReachability.networkPath": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingNetworkReachability).GetNetworkPath()).ToDataRes(types.Array(types.Dict)) + }, + "aws.inspector.finding.codeVulnerability.cwes": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingCodeVulnerability).GetCwes()).ToDataRes(types.Array(types.String)) + }, + "aws.inspector.finding.codeVulnerability.detectorId": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingCodeVulnerability).GetDetectorId()).ToDataRes(types.String) + }, + "aws.inspector.finding.codeVulnerability.detectorName": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingCodeVulnerability).GetDetectorName()).ToDataRes(types.String) + }, + "aws.inspector.finding.codeVulnerability.detectorTags": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingCodeVulnerability).GetDetectorTags()).ToDataRes(types.Array(types.String)) + }, + "aws.inspector.finding.codeVulnerability.filePath": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingCodeVulnerability).GetFilePath()).ToDataRes(types.Dict) + }, + "aws.inspector.finding.codeVulnerability.referenceUrls": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingCodeVulnerability).GetReferenceUrls()).ToDataRes(types.Array(types.String)) + }, + "aws.inspector.finding.codeVulnerability.ruleId": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingCodeVulnerability).GetRuleId()).ToDataRes(types.String) + }, + "aws.inspector.finding.codeVulnerability.sourceLambdaLayerArn": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsInspectorFindingCodeVulnerability).GetSourceLambdaLayerArn()).ToDataRes(types.String) + }, "aws.ec2.instance.arn": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsEc2Instance).GetArn()).ToDataRes(types.String) }, @@ -9119,6 +9696,9 @@ var getDataFields = map[string]func(r plugin.Resource) *plugin.DataRes{ "aws.config.recorder.roleArn": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsConfigRecorder).GetRoleArn()).ToDataRes(types.String) }, + "aws.config.recorder.iamRole": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsConfigRecorder).GetIamRole()).ToDataRes(types.Resource("aws.iam.role")) + }, "aws.config.recorder.allSupported": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsConfigRecorder).GetAllSupported()).ToDataRes(types.Bool) }, @@ -10812,7 +11392,7 @@ var getDataFields = map[string]func(r plugin.Resource) *plugin.DataRes{ return (r.(*mqlAwsKinesisFirehoseDeliveryStream).GetSource()).ToDataRes(types.Dict) }, "aws.kinesis.firehoseDeliveryStream.destinations": func(r plugin.Resource) *plugin.DataRes { - return (r.(*mqlAwsKinesisFirehoseDeliveryStream).GetDestinations()).ToDataRes(types.Array(types.Dict)) + return (r.(*mqlAwsKinesisFirehoseDeliveryStream).GetDestinations()).ToDataRes(types.Array(types.Resource("aws.kinesis.firehoseDeliveryStream.destination"))) }, "aws.kinesis.firehoseDeliveryStream.createdAt": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsKinesisFirehoseDeliveryStream).GetCreatedAt()).ToDataRes(types.Time) @@ -10823,6 +11403,249 @@ var getDataFields = map[string]func(r plugin.Resource) *plugin.DataRes{ "aws.kinesis.firehoseDeliveryStream.tags": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsKinesisFirehoseDeliveryStream).GetTags()).ToDataRes(types.Map(types.String, types.String)) }, + "aws.kinesis.firehoseDeliveryStream.destination.destinationId": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).GetDestinationId()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.type": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).GetType()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.region": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).GetRegion()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).GetS3()).ToDataRes(types.Resource("aws.kinesis.firehoseDeliveryStream.destination.s3")) + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).GetRedshift()).ToDataRes(types.Resource("aws.kinesis.firehoseDeliveryStream.destination.redshift")) + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).GetElasticsearch()).ToDataRes(types.Resource("aws.kinesis.firehoseDeliveryStream.destination.elasticsearch")) + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).GetOpensearch()).ToDataRes(types.Resource("aws.kinesis.firehoseDeliveryStream.destination.opensearch")) + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).GetSplunk()).ToDataRes(types.Resource("aws.kinesis.firehoseDeliveryStream.destination.splunk")) + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).GetHttpEndpoint()).ToDataRes(types.Resource("aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint")) + }, + "aws.kinesis.firehoseDeliveryStream.cloudWatchLogging.enabled": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging).GetEnabled()).ToDataRes(types.Bool) + }, + "aws.kinesis.firehoseDeliveryStream.cloudWatchLogging.logGroupName": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging).GetLogGroupName()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.cloudWatchLogging.logStreamName": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging).GetLogStreamName()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.bucketArn": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).GetBucketArn()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.iamRole": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).GetIamRole()).ToDataRes(types.Resource("aws.iam.role")) + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.compressionFormat": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).GetCompressionFormat()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.prefix": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).GetPrefix()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.errorOutputPrefix": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).GetErrorOutputPrefix()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.fileExtension": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).GetFileExtension()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.bufferingSizeInMBs": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).GetBufferingSizeInMBs()).ToDataRes(types.Int) + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.bufferingIntervalInSeconds": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).GetBufferingIntervalInSeconds()).ToDataRes(types.Int) + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.s3BackupMode": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).GetS3BackupMode()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.cloudWatchLogging": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).GetCloudWatchLogging()).ToDataRes(types.Resource("aws.kinesis.firehoseDeliveryStream.cloudWatchLogging")) + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.dataFormatConversion": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).GetDataFormatConversion()).ToDataRes(types.Dict) + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.dynamicPartitioning": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).GetDynamicPartitioning()).ToDataRes(types.Dict) + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.processingConfiguration": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).GetProcessingConfiguration()).ToDataRes(types.Dict) + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.region": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).GetRegion()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.clusterJdbcUrl": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).GetClusterJdbcUrl()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.iamRole": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).GetIamRole()).ToDataRes(types.Resource("aws.iam.role")) + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.username": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).GetUsername()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.copyCommandTableName": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).GetCopyCommandTableName()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.copyCommandOptions": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).GetCopyCommandOptions()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.s3BackupMode": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).GetS3BackupMode()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.cloudWatchLogging": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).GetCloudWatchLogging()).ToDataRes(types.Resource("aws.kinesis.firehoseDeliveryStream.cloudWatchLogging")) + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.processingConfiguration": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).GetProcessingConfiguration()).ToDataRes(types.Dict) + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.retryDurationInSeconds": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).GetRetryDurationInSeconds()).ToDataRes(types.Int) + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.region": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).GetRegion()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.domainArn": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).GetDomainArn()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.clusterEndpoint": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).GetClusterEndpoint()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.indexName": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).GetIndexName()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.indexRotationPeriod": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).GetIndexRotationPeriod()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.iamRole": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).GetIamRole()).ToDataRes(types.Resource("aws.iam.role")) + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.s3BackupMode": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).GetS3BackupMode()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.bufferingSizeInMBs": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).GetBufferingSizeInMBs()).ToDataRes(types.Int) + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.bufferingIntervalInSeconds": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).GetBufferingIntervalInSeconds()).ToDataRes(types.Int) + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.cloudWatchLogging": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).GetCloudWatchLogging()).ToDataRes(types.Resource("aws.kinesis.firehoseDeliveryStream.cloudWatchLogging")) + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.processingConfiguration": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).GetProcessingConfiguration()).ToDataRes(types.Dict) + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.retryDurationInSeconds": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).GetRetryDurationInSeconds()).ToDataRes(types.Int) + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.region": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).GetRegion()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.domainArn": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).GetDomainArn()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.clusterEndpoint": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).GetClusterEndpoint()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.indexName": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).GetIndexName()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.indexRotationPeriod": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).GetIndexRotationPeriod()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.iamRole": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).GetIamRole()).ToDataRes(types.Resource("aws.iam.role")) + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.s3BackupMode": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).GetS3BackupMode()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.bufferingSizeInMBs": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).GetBufferingSizeInMBs()).ToDataRes(types.Int) + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.bufferingIntervalInSeconds": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).GetBufferingIntervalInSeconds()).ToDataRes(types.Int) + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.cloudWatchLogging": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).GetCloudWatchLogging()).ToDataRes(types.Resource("aws.kinesis.firehoseDeliveryStream.cloudWatchLogging")) + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.processingConfiguration": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).GetProcessingConfiguration()).ToDataRes(types.Dict) + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.retryDurationInSeconds": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).GetRetryDurationInSeconds()).ToDataRes(types.Int) + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.region": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).GetRegion()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.hecEndpoint": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).GetHecEndpoint()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.hecEndpointType": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).GetHecEndpointType()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.hecAcknowledgmentTimeoutInSeconds": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).GetHecAcknowledgmentTimeoutInSeconds()).ToDataRes(types.Int) + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.s3BackupMode": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).GetS3BackupMode()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.bufferingSizeInMBs": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).GetBufferingSizeInMBs()).ToDataRes(types.Int) + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.bufferingIntervalInSeconds": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).GetBufferingIntervalInSeconds()).ToDataRes(types.Int) + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.cloudWatchLogging": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).GetCloudWatchLogging()).ToDataRes(types.Resource("aws.kinesis.firehoseDeliveryStream.cloudWatchLogging")) + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.processingConfiguration": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).GetProcessingConfiguration()).ToDataRes(types.Dict) + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.retryDurationInSeconds": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).GetRetryDurationInSeconds()).ToDataRes(types.Int) + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.region": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).GetRegion()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.endpointUrl": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).GetEndpointUrl()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.endpointName": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).GetEndpointName()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.iamRole": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).GetIamRole()).ToDataRes(types.Resource("aws.iam.role")) + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.s3BackupMode": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).GetS3BackupMode()).ToDataRes(types.String) + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.bufferingSizeInMBs": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).GetBufferingSizeInMBs()).ToDataRes(types.Int) + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.bufferingIntervalInSeconds": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).GetBufferingIntervalInSeconds()).ToDataRes(types.Int) + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.cloudWatchLogging": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).GetCloudWatchLogging()).ToDataRes(types.Resource("aws.kinesis.firehoseDeliveryStream.cloudWatchLogging")) + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.processingConfiguration": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).GetProcessingConfiguration()).ToDataRes(types.Dict) + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.requestConfiguration": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).GetRequestConfiguration()).ToDataRes(types.Dict) + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.retryDurationInSeconds": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).GetRetryDurationInSeconds()).ToDataRes(types.Int) + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.region": func(r plugin.Resource) *plugin.DataRes { + return (r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).GetRegion()).ToDataRes(types.String) + }, "aws.memorydb.clusters": func(r plugin.Resource) *plugin.DataRes { return (r.(*mqlAwsMemorydb).GetClusters()).ToDataRes(types.Array(types.Resource("aws.memorydb.cluster"))) }, @@ -11784,6 +12607,66 @@ var setDataFields = map[string]func(r plugin.Resource, v *llx.RawData) bool{ r.(*mqlAwsOrganization).Id, ok = plugin.RawToTValue[string](v.Value, v.Error) return }, + "aws.organization.delegatedAdministrators": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsOrganization).DelegatedAdministrators, ok = plugin.RawToTValue[[]any](v.Value, v.Error) + return + }, + "aws.organization.delegatedAdministrator.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsOrganizationDelegatedAdministrator).__id, ok = v.Value.(string) + return + }, + "aws.organization.delegatedAdministrator.arn": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsOrganizationDelegatedAdministrator).Arn, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.organization.delegatedAdministrator.accountId": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsOrganizationDelegatedAdministrator).AccountId, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.organization.delegatedAdministrator.name": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsOrganizationDelegatedAdministrator).Name, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.organization.delegatedAdministrator.email": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsOrganizationDelegatedAdministrator).Email, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.organization.delegatedAdministrator.status": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsOrganizationDelegatedAdministrator).Status, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.organization.delegatedAdministrator.joinedMethod": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsOrganizationDelegatedAdministrator).JoinedMethod, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.organization.delegatedAdministrator.joinedTimestamp": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsOrganizationDelegatedAdministrator).JoinedTimestamp, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, + "aws.organization.delegatedAdministrator.delegationEnabledDate": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsOrganizationDelegatedAdministrator).DelegationEnabledDate, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, + "aws.organization.delegatedAdministrator.delegatedServices": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsOrganizationDelegatedAdministrator).DelegatedServices, ok = plugin.RawToTValue[[]any](v.Value, v.Error) + return + }, + "aws.organization.delegatedAdministrator.account": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsOrganizationDelegatedAdministrator).Account, ok = plugin.RawToTValue[*mqlAwsAccount](v.Value, v.Error) + return + }, + "aws.organization.delegatedService.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsOrganizationDelegatedService).__id, ok = v.Value.(string) + return + }, + "aws.organization.delegatedService.servicePrincipal": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsOrganizationDelegatedService).ServicePrincipal, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.organization.delegatedService.delegationEnabledDate": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsOrganizationDelegatedService).DelegationEnabledDate, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, "aws.vpc.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { r.(*mqlAwsVpc).__id, ok = v.Value.(string) return @@ -14212,6 +15095,10 @@ var setDataFields = map[string]func(r plugin.Resource, v *llx.RawData) bool{ r.(*mqlAwsIamAccessAnalyzer).Findings, ok = plugin.RawToTValue[[]any](v.Value, v.Error) return }, + "aws.iam.accessAnalyzer.archivedFindings": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsIamAccessAnalyzer).ArchivedFindings, ok = plugin.RawToTValue[[]any](v.Value, v.Error) + return + }, "aws.iam.accessanalyzer.analyzer.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { r.(*mqlAwsIamAccessanalyzerAnalyzer).__id, ok = v.Value.(string) return @@ -14316,6 +15203,26 @@ var setDataFields = map[string]func(r plugin.Resource, v *llx.RawData) bool{ r.(*mqlAwsSagemaker).NotebookInstances, ok = plugin.RawToTValue[[]any](v.Value, v.Error) return }, + "aws.sagemaker.models": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemaker).Models, ok = plugin.RawToTValue[[]any](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingJobs": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemaker).TrainingJobs, ok = plugin.RawToTValue[[]any](v.Value, v.Error) + return + }, + "aws.sagemaker.processingJobs": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemaker).ProcessingJobs, ok = plugin.RawToTValue[[]any](v.Value, v.Error) + return + }, + "aws.sagemaker.pipelines": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemaker).Pipelines, ok = plugin.RawToTValue[[]any](v.Value, v.Error) + return + }, + "aws.sagemaker.domains": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemaker).Domains, ok = plugin.RawToTValue[[]any](v.Value, v.Error) + return + }, "aws.sagemaker.notebookinstance.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { r.(*mqlAwsSagemakerNotebookinstance).__id, ok = v.Value.(string) return @@ -14420,6 +15327,314 @@ var setDataFields = map[string]func(r plugin.Resource, v *llx.RawData) bool{ r.(*mqlAwsSagemakerEndpoint).Status, ok = plugin.RawToTValue[string](v.Value, v.Error) return }, + "aws.sagemaker.model.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerModel).__id, ok = v.Value.(string) + return + }, + "aws.sagemaker.model.arn": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerModel).Arn, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.model.name": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerModel).Name, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.model.region": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerModel).Region, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.model.createdAt": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerModel).CreatedAt, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, + "aws.sagemaker.model.tags": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerModel).Tags, ok = plugin.RawToTValue[map[string]any](v.Value, v.Error) + return + }, + "aws.sagemaker.model.enableNetworkIsolation": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerModel).EnableNetworkIsolation, ok = plugin.RawToTValue[bool](v.Value, v.Error) + return + }, + "aws.sagemaker.model.iamRole": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerModel).IamRole, ok = plugin.RawToTValue[*mqlAwsIamRole](v.Value, v.Error) + return + }, + "aws.sagemaker.model.primaryContainer": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerModel).PrimaryContainer, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.sagemaker.model.vpcConfig": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerModel).VpcConfig, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingjob.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).__id, ok = v.Value.(string) + return + }, + "aws.sagemaker.trainingjob.arn": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).Arn, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingjob.name": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).Name, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingjob.region": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).Region, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingjob.status": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).Status, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingjob.createdAt": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).CreatedAt, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingjob.lastModifiedAt": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).LastModifiedAt, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingjob.trainingEndTime": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).TrainingEndTime, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingjob.tags": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).Tags, ok = plugin.RawToTValue[map[string]any](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingjob.iamRole": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).IamRole, ok = plugin.RawToTValue[*mqlAwsIamRole](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingjob.algorithmSpecification": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).AlgorithmSpecification, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingjob.hyperParameters": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).HyperParameters, ok = plugin.RawToTValue[map[string]any](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingjob.enableNetworkIsolation": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).EnableNetworkIsolation, ok = plugin.RawToTValue[bool](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingjob.enableInterContainerTrafficEncryption": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).EnableInterContainerTrafficEncryption, ok = plugin.RawToTValue[bool](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingjob.failureReason": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).FailureReason, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingjob.billableTimeInSeconds": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).BillableTimeInSeconds, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingjob.vpcConfig": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).VpcConfig, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingjob.outputDataConfig": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).OutputDataConfig, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingjob.resourceConfig": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).ResourceConfig, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.sagemaker.trainingjob.stoppingCondition": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerTrainingjob).StoppingCondition, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.sagemaker.processingjob.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerProcessingjob).__id, ok = v.Value.(string) + return + }, + "aws.sagemaker.processingjob.arn": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerProcessingjob).Arn, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.processingjob.name": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerProcessingjob).Name, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.processingjob.region": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerProcessingjob).Region, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.processingjob.status": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerProcessingjob).Status, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.processingjob.createdAt": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerProcessingjob).CreatedAt, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, + "aws.sagemaker.processingjob.lastModifiedAt": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerProcessingjob).LastModifiedAt, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, + "aws.sagemaker.processingjob.processingEndTime": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerProcessingjob).ProcessingEndTime, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, + "aws.sagemaker.processingjob.failureReason": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerProcessingjob).FailureReason, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.processingjob.exitMessage": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerProcessingjob).ExitMessage, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.processingjob.tags": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerProcessingjob).Tags, ok = plugin.RawToTValue[map[string]any](v.Value, v.Error) + return + }, + "aws.sagemaker.processingjob.iamRole": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerProcessingjob).IamRole, ok = plugin.RawToTValue[*mqlAwsIamRole](v.Value, v.Error) + return + }, + "aws.sagemaker.processingjob.enableNetworkIsolation": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerProcessingjob).EnableNetworkIsolation, ok = plugin.RawToTValue[bool](v.Value, v.Error) + return + }, + "aws.sagemaker.processingjob.enableInterContainerTrafficEncryption": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerProcessingjob).EnableInterContainerTrafficEncryption, ok = plugin.RawToTValue[bool](v.Value, v.Error) + return + }, + "aws.sagemaker.processingjob.vpcConfig": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerProcessingjob).VpcConfig, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.sagemaker.processingjob.processingResources": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerProcessingjob).ProcessingResources, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.sagemaker.processingjob.environment": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerProcessingjob).Environment, ok = plugin.RawToTValue[map[string]any](v.Value, v.Error) + return + }, + "aws.sagemaker.pipeline.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerPipeline).__id, ok = v.Value.(string) + return + }, + "aws.sagemaker.pipeline.arn": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerPipeline).Arn, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.pipeline.name": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerPipeline).Name, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.pipeline.displayName": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerPipeline).DisplayName, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.pipeline.description": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerPipeline).Description, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.pipeline.region": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerPipeline).Region, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.pipeline.createdAt": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerPipeline).CreatedAt, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, + "aws.sagemaker.pipeline.lastModifiedAt": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerPipeline).LastModifiedAt, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, + "aws.sagemaker.pipeline.lastExecutionTime": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerPipeline).LastExecutionTime, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, + "aws.sagemaker.pipeline.tags": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerPipeline).Tags, ok = plugin.RawToTValue[map[string]any](v.Value, v.Error) + return + }, + "aws.sagemaker.pipeline.iamRole": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerPipeline).IamRole, ok = plugin.RawToTValue[*mqlAwsIamRole](v.Value, v.Error) + return + }, + "aws.sagemaker.pipeline.pipelineStatus": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerPipeline).PipelineStatus, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.pipeline.definition": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerPipeline).Definition, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.pipeline.parallelismConfiguration": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerPipeline).ParallelismConfiguration, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.sagemaker.domain.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerDomain).__id, ok = v.Value.(string) + return + }, + "aws.sagemaker.domain.arn": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerDomain).Arn, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.domain.domainId": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerDomain).DomainId, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.domain.name": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerDomain).Name, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.domain.region": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerDomain).Region, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.domain.status": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerDomain).Status, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.domain.url": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerDomain).Url, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.domain.createdAt": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerDomain).CreatedAt, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, + "aws.sagemaker.domain.lastModifiedAt": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerDomain).LastModifiedAt, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, + "aws.sagemaker.domain.tags": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerDomain).Tags, ok = plugin.RawToTValue[map[string]any](v.Value, v.Error) + return + }, + "aws.sagemaker.domain.authMode": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerDomain).AuthMode, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.domain.appNetworkAccessType": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerDomain).AppNetworkAccessType, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.domain.vpc": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerDomain).Vpc, ok = plugin.RawToTValue[*mqlAwsVpc](v.Value, v.Error) + return + }, + "aws.sagemaker.domain.kmsKey": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerDomain).KmsKey, ok = plugin.RawToTValue[*mqlAwsKmsKey](v.Value, v.Error) + return + }, + "aws.sagemaker.domain.homeEfsFileSystemId": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerDomain).HomeEfsFileSystemId, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.sagemaker.domain.defaultUserSettings": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsSagemakerDomain).DefaultUserSettings, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, "aws.sns.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { r.(*mqlAwsSns).__id, ok = v.Value.(string) return @@ -15748,6 +16963,14 @@ var setDataFields = map[string]func(r plugin.Resource, v *llx.RawData) bool{ r.(*mqlAwsShield).ProtectionGroups, ok = plugin.RawToTValue[[]any](v.Value, v.Error) return }, + "aws.shield.drtAccess": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsShield).DrtAccess, ok = plugin.RawToTValue[*mqlAwsShieldDrtAccess](v.Value, v.Error) + return + }, + "aws.shield.emergencyContacts": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsShield).EmergencyContacts, ok = plugin.RawToTValue[[]any](v.Value, v.Error) + return + }, "aws.shield.subscription.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { r.(*mqlAwsShieldSubscription).__id, ok = v.Value.(string) return @@ -15836,6 +17059,34 @@ var setDataFields = map[string]func(r plugin.Resource, v *llx.RawData) bool{ r.(*mqlAwsShieldProtectionGroup).Members, ok = plugin.RawToTValue[[]any](v.Value, v.Error) return }, + "aws.shield.drtAccess.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsShieldDrtAccess).__id, ok = v.Value.(string) + return + }, + "aws.shield.drtAccess.iamRole": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsShieldDrtAccess).IamRole, ok = plugin.RawToTValue[*mqlAwsIamRole](v.Value, v.Error) + return + }, + "aws.shield.drtAccess.logBucketList": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsShieldDrtAccess).LogBucketList, ok = plugin.RawToTValue[[]any](v.Value, v.Error) + return + }, + "aws.shield.emergencyContact.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsShieldEmergencyContact).__id, ok = v.Value.(string) + return + }, + "aws.shield.emergencyContact.emailAddress": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsShieldEmergencyContact).EmailAddress, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.shield.emergencyContact.phoneNumber": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsShieldEmergencyContact).PhoneNumber, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.shield.emergencyContact.contactNotes": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsShieldEmergencyContact).ContactNotes, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, "aws.secretsmanager.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { r.(*mqlAwsSecretsmanager).__id, ok = v.Value.(string) return @@ -16832,6 +18083,10 @@ var setDataFields = map[string]func(r plugin.Resource, v *llx.RawData) bool{ r.(*mqlAwsEventbridgeRule).RoleArn, ok = plugin.RawToTValue[string](v.Value, v.Error) return }, + "aws.eventbridge.rule.iamRole": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsEventbridgeRule).IamRole, ok = plugin.RawToTValue[*mqlAwsIamRole](v.Value, v.Error) + return + }, "aws.eventbridge.rule.tags": func(r plugin.Resource, v *llx.RawData) (ok bool) { r.(*mqlAwsEventbridgeRule).Tags, ok = plugin.RawToTValue[map[string]any](v.Value, v.Error) return @@ -21628,6 +22883,10 @@ var setDataFields = map[string]func(r plugin.Resource, v *llx.RawData) bool{ r.(*mqlAwsInspector).Coverages, ok = plugin.RawToTValue[[]any](v.Value, v.Error) return }, + "aws.inspector.findings": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspector).Findings, ok = plugin.RawToTValue[[]any](v.Value, v.Error) + return + }, "aws.inspector.coverage.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { r.(*mqlAwsInspectorCoverage).__id, ok = v.Value.(string) return @@ -21732,6 +22991,246 @@ var setDataFields = map[string]func(r plugin.Resource, v *llx.RawData) bool{ r.(*mqlAwsInspectorCoverageRepository).Region, ok = plugin.RawToTValue[string](v.Value, v.Error) return }, + "aws.inspector.finding.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).__id, ok = v.Value.(string) + return + }, + "aws.inspector.finding.arn": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).Arn, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.accountId": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).AccountId, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.title": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).Title, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.description": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).Description, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.severity": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).Severity, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.status": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).Status, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.type": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).Type, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.firstObservedAt": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).FirstObservedAt, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, + "aws.inspector.finding.lastObservedAt": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).LastObservedAt, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, + "aws.inspector.finding.updatedAt": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).UpdatedAt, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, + "aws.inspector.finding.inspectorScore": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).InspectorScore, ok = plugin.RawToTValue[float64](v.Value, v.Error) + return + }, + "aws.inspector.finding.exploitAvailable": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).ExploitAvailable, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.fixAvailable": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).FixAvailable, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.region": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).Region, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.remediation": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).Remediation, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.remediationUrl": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).RemediationUrl, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.packageVulnerability": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).PackageVulnerability, ok = plugin.RawToTValue[*mqlAwsInspectorFindingPackageVulnerability](v.Value, v.Error) + return + }, + "aws.inspector.finding.networkReachability": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).NetworkReachability, ok = plugin.RawToTValue[*mqlAwsInspectorFindingNetworkReachability](v.Value, v.Error) + return + }, + "aws.inspector.finding.codeVulnerability": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFinding).CodeVulnerability, ok = plugin.RawToTValue[*mqlAwsInspectorFindingCodeVulnerability](v.Value, v.Error) + return + }, + "aws.inspector.finding.packageVulnerability.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingPackageVulnerability).__id, ok = v.Value.(string) + return + }, + "aws.inspector.finding.packageVulnerability.vulnerabilityId": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingPackageVulnerability).VulnerabilityId, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.packageVulnerability.source": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingPackageVulnerability).Source, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.packageVulnerability.sourceUrl": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingPackageVulnerability).SourceUrl, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.packageVulnerability.vendorSeverity": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingPackageVulnerability).VendorSeverity, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.packageVulnerability.vendorCreatedAt": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingPackageVulnerability).VendorCreatedAt, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, + "aws.inspector.finding.packageVulnerability.vendorUpdatedAt": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingPackageVulnerability).VendorUpdatedAt, ok = plugin.RawToTValue[*time.Time](v.Value, v.Error) + return + }, + "aws.inspector.finding.packageVulnerability.cvssScores": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingPackageVulnerability).CvssScores, ok = plugin.RawToTValue[[]any](v.Value, v.Error) + return + }, + "aws.inspector.finding.packageVulnerability.referenceUrls": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingPackageVulnerability).ReferenceUrls, ok = plugin.RawToTValue[[]any](v.Value, v.Error) + return + }, + "aws.inspector.finding.packageVulnerability.relatedVulnerabilities": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingPackageVulnerability).RelatedVulnerabilities, ok = plugin.RawToTValue[[]any](v.Value, v.Error) + return + }, + "aws.inspector.finding.packageVulnerability.vulnerablePackages": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingPackageVulnerability).VulnerablePackages, ok = plugin.RawToTValue[[]any](v.Value, v.Error) + return + }, + "aws.inspector.finding.packageVulnerability.cvssScore.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingPackageVulnerabilityCvssScore).__id, ok = v.Value.(string) + return + }, + "aws.inspector.finding.packageVulnerability.cvssScore.baseScore": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingPackageVulnerabilityCvssScore).BaseScore, ok = plugin.RawToTValue[float64](v.Value, v.Error) + return + }, + "aws.inspector.finding.packageVulnerability.cvssScore.scoringVector": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingPackageVulnerabilityCvssScore).ScoringVector, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.packageVulnerability.cvssScore.source": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingPackageVulnerabilityCvssScore).Source, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.packageVulnerability.cvssScore.version": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingPackageVulnerabilityCvssScore).Version, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.vulnerablePackage.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingVulnerablePackage).__id, ok = v.Value.(string) + return + }, + "aws.inspector.finding.vulnerablePackage.name": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingVulnerablePackage).Name, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.vulnerablePackage.version": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingVulnerablePackage).Version, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.vulnerablePackage.arch": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingVulnerablePackage).Arch, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.vulnerablePackage.epoch": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingVulnerablePackage).Epoch, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.inspector.finding.vulnerablePackage.packageManager": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingVulnerablePackage).PackageManager, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.vulnerablePackage.filePath": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingVulnerablePackage).FilePath, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.vulnerablePackage.fixedInVersion": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingVulnerablePackage).FixedInVersion, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.vulnerablePackage.remediation": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingVulnerablePackage).Remediation, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.vulnerablePackage.release": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingVulnerablePackage).Release, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.networkReachability.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingNetworkReachability).__id, ok = v.Value.(string) + return + }, + "aws.inspector.finding.networkReachability.protocol": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingNetworkReachability).Protocol, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.networkReachability.openPortStart": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingNetworkReachability).OpenPortStart, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.inspector.finding.networkReachability.openPortEnd": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingNetworkReachability).OpenPortEnd, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.inspector.finding.networkReachability.networkPath": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingNetworkReachability).NetworkPath, ok = plugin.RawToTValue[[]any](v.Value, v.Error) + return + }, + "aws.inspector.finding.codeVulnerability.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingCodeVulnerability).__id, ok = v.Value.(string) + return + }, + "aws.inspector.finding.codeVulnerability.cwes": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingCodeVulnerability).Cwes, ok = plugin.RawToTValue[[]any](v.Value, v.Error) + return + }, + "aws.inspector.finding.codeVulnerability.detectorId": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingCodeVulnerability).DetectorId, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.codeVulnerability.detectorName": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingCodeVulnerability).DetectorName, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.codeVulnerability.detectorTags": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingCodeVulnerability).DetectorTags, ok = plugin.RawToTValue[[]any](v.Value, v.Error) + return + }, + "aws.inspector.finding.codeVulnerability.filePath": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingCodeVulnerability).FilePath, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.inspector.finding.codeVulnerability.referenceUrls": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingCodeVulnerability).ReferenceUrls, ok = plugin.RawToTValue[[]any](v.Value, v.Error) + return + }, + "aws.inspector.finding.codeVulnerability.ruleId": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingCodeVulnerability).RuleId, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.inspector.finding.codeVulnerability.sourceLambdaLayerArn": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsInspectorFindingCodeVulnerability).SourceLambdaLayerArn, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, "aws.ec2.instance.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { r.(*mqlAwsEc2Instance).__id, ok = v.Value.(string) return @@ -22444,6 +23943,10 @@ var setDataFields = map[string]func(r plugin.Resource, v *llx.RawData) bool{ r.(*mqlAwsConfigRecorder).RoleArn, ok = plugin.RawToTValue[string](v.Value, v.Error) return }, + "aws.config.recorder.iamRole": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsConfigRecorder).IamRole, ok = plugin.RawToTValue[*mqlAwsIamRole](v.Value, v.Error) + return + }, "aws.config.recorder.allSupported": func(r plugin.Resource, v *llx.RawData) (ok bool) { r.(*mqlAwsConfigRecorder).AllSupported, ok = plugin.RawToTValue[bool](v.Value, v.Error) return @@ -24920,6 +26423,362 @@ var setDataFields = map[string]func(r plugin.Resource, v *llx.RawData) bool{ r.(*mqlAwsKinesisFirehoseDeliveryStream).Tags, ok = plugin.RawToTValue[map[string]any](v.Value, v.Error) return }, + "aws.kinesis.firehoseDeliveryStream.destination.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).__id, ok = v.Value.(string) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.destinationId": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).DestinationId, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.type": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).Type, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.region": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).Region, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).S3, ok = plugin.RawToTValue[*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).Redshift, ok = plugin.RawToTValue[*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).Elasticsearch, ok = plugin.RawToTValue[*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).Opensearch, ok = plugin.RawToTValue[*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).Splunk, ok = plugin.RawToTValue[*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).HttpEndpoint, ok = plugin.RawToTValue[*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.cloudWatchLogging.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging).__id, ok = v.Value.(string) + return + }, + "aws.kinesis.firehoseDeliveryStream.cloudWatchLogging.enabled": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging).Enabled, ok = plugin.RawToTValue[bool](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.cloudWatchLogging.logGroupName": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging).LogGroupName, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.cloudWatchLogging.logStreamName": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging).LogStreamName, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).__id, ok = v.Value.(string) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.bucketArn": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).BucketArn, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.iamRole": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).IamRole, ok = plugin.RawToTValue[*mqlAwsIamRole](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.compressionFormat": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).CompressionFormat, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.prefix": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).Prefix, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.errorOutputPrefix": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).ErrorOutputPrefix, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.fileExtension": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).FileExtension, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.bufferingSizeInMBs": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).BufferingSizeInMBs, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.bufferingIntervalInSeconds": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).BufferingIntervalInSeconds, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.s3BackupMode": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).S3BackupMode, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.cloudWatchLogging": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).CloudWatchLogging, ok = plugin.RawToTValue[*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.dataFormatConversion": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).DataFormatConversion, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.dynamicPartitioning": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).DynamicPartitioning, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.processingConfiguration": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).ProcessingConfiguration, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.s3.region": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3).Region, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).__id, ok = v.Value.(string) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.clusterJdbcUrl": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).ClusterJdbcUrl, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.iamRole": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).IamRole, ok = plugin.RawToTValue[*mqlAwsIamRole](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.username": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).Username, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.copyCommandTableName": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).CopyCommandTableName, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.copyCommandOptions": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).CopyCommandOptions, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.s3BackupMode": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).S3BackupMode, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.cloudWatchLogging": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).CloudWatchLogging, ok = plugin.RawToTValue[*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.processingConfiguration": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).ProcessingConfiguration, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.retryDurationInSeconds": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).RetryDurationInSeconds, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.redshift.region": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift).Region, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).__id, ok = v.Value.(string) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.domainArn": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).DomainArn, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.clusterEndpoint": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).ClusterEndpoint, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.indexName": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).IndexName, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.indexRotationPeriod": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).IndexRotationPeriod, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.iamRole": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).IamRole, ok = plugin.RawToTValue[*mqlAwsIamRole](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.s3BackupMode": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).S3BackupMode, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.bufferingSizeInMBs": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).BufferingSizeInMBs, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.bufferingIntervalInSeconds": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).BufferingIntervalInSeconds, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.cloudWatchLogging": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).CloudWatchLogging, ok = plugin.RawToTValue[*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.processingConfiguration": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).ProcessingConfiguration, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.retryDurationInSeconds": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).RetryDurationInSeconds, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.region": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch).Region, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).__id, ok = v.Value.(string) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.domainArn": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).DomainArn, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.clusterEndpoint": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).ClusterEndpoint, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.indexName": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).IndexName, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.indexRotationPeriod": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).IndexRotationPeriod, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.iamRole": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).IamRole, ok = plugin.RawToTValue[*mqlAwsIamRole](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.s3BackupMode": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).S3BackupMode, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.bufferingSizeInMBs": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).BufferingSizeInMBs, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.bufferingIntervalInSeconds": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).BufferingIntervalInSeconds, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.cloudWatchLogging": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).CloudWatchLogging, ok = plugin.RawToTValue[*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.processingConfiguration": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).ProcessingConfiguration, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.retryDurationInSeconds": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).RetryDurationInSeconds, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.opensearch.region": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch).Region, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).__id, ok = v.Value.(string) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.hecEndpoint": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).HecEndpoint, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.hecEndpointType": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).HecEndpointType, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.hecAcknowledgmentTimeoutInSeconds": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).HecAcknowledgmentTimeoutInSeconds, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.s3BackupMode": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).S3BackupMode, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.bufferingSizeInMBs": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).BufferingSizeInMBs, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.bufferingIntervalInSeconds": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).BufferingIntervalInSeconds, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.cloudWatchLogging": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).CloudWatchLogging, ok = plugin.RawToTValue[*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.processingConfiguration": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).ProcessingConfiguration, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.retryDurationInSeconds": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).RetryDurationInSeconds, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.splunk.region": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk).Region, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).__id, ok = v.Value.(string) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.endpointUrl": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).EndpointUrl, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.endpointName": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).EndpointName, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.iamRole": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).IamRole, ok = plugin.RawToTValue[*mqlAwsIamRole](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.s3BackupMode": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).S3BackupMode, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.bufferingSizeInMBs": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).BufferingSizeInMBs, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.bufferingIntervalInSeconds": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).BufferingIntervalInSeconds, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.cloudWatchLogging": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).CloudWatchLogging, ok = plugin.RawToTValue[*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.processingConfiguration": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).ProcessingConfiguration, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.requestConfiguration": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).RequestConfiguration, ok = plugin.RawToTValue[any](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.retryDurationInSeconds": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).RetryDurationInSeconds, ok = plugin.RawToTValue[int64](v.Value, v.Error) + return + }, + "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.region": func(r plugin.Resource, v *llx.RawData) (ok bool) { + r.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint).Region, ok = plugin.RawToTValue[string](v.Value, v.Error) + return + }, "aws.memorydb.__id": func(r plugin.Resource, v *llx.RawData) (ok bool) { r.(*mqlAwsMemorydb).__id, ok = v.Value.(string) return @@ -26458,12 +28317,13 @@ type mqlAwsOrganization struct { MqlRuntime *plugin.Runtime __id string // optional: if you define mqlAwsOrganizationInternal it will be used here - Arn plugin.TValue[string] - FeatureSet plugin.TValue[string] - MasterAccountId plugin.TValue[string] - MasterAccountEmail plugin.TValue[string] - Accounts plugin.TValue[[]any] - Id plugin.TValue[string] + Arn plugin.TValue[string] + FeatureSet plugin.TValue[string] + MasterAccountId plugin.TValue[string] + MasterAccountEmail plugin.TValue[string] + Accounts plugin.TValue[[]any] + Id plugin.TValue[string] + DelegatedAdministrators plugin.TValue[[]any] } // createAwsOrganization creates a new instance of this resource @@ -26534,6 +28394,194 @@ func (c *mqlAwsOrganization) GetId() *plugin.TValue[string] { return &c.Id } +func (c *mqlAwsOrganization) GetDelegatedAdministrators() *plugin.TValue[[]any] { + return plugin.GetOrCompute[[]any](&c.DelegatedAdministrators, func() ([]any, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.organization", c.__id, "delegatedAdministrators") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.([]any), nil + } + } + + return c.delegatedAdministrators() + }) +} + +// mqlAwsOrganizationDelegatedAdministrator for the aws.organization.delegatedAdministrator resource +type mqlAwsOrganizationDelegatedAdministrator struct { + MqlRuntime *plugin.Runtime + __id string + mqlAwsOrganizationDelegatedAdministratorInternal + Arn plugin.TValue[string] + AccountId plugin.TValue[string] + Name plugin.TValue[string] + Email plugin.TValue[string] + Status plugin.TValue[string] + JoinedMethod plugin.TValue[string] + JoinedTimestamp plugin.TValue[*time.Time] + DelegationEnabledDate plugin.TValue[*time.Time] + DelegatedServices plugin.TValue[[]any] + Account plugin.TValue[*mqlAwsAccount] +} + +// createAwsOrganizationDelegatedAdministrator creates a new instance of this resource +func createAwsOrganizationDelegatedAdministrator(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsOrganizationDelegatedAdministrator{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.organization.delegatedAdministrator", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsOrganizationDelegatedAdministrator) MqlName() string { + return "aws.organization.delegatedAdministrator" +} + +func (c *mqlAwsOrganizationDelegatedAdministrator) MqlID() string { + return c.__id +} + +func (c *mqlAwsOrganizationDelegatedAdministrator) GetArn() *plugin.TValue[string] { + return &c.Arn +} + +func (c *mqlAwsOrganizationDelegatedAdministrator) GetAccountId() *plugin.TValue[string] { + return &c.AccountId +} + +func (c *mqlAwsOrganizationDelegatedAdministrator) GetName() *plugin.TValue[string] { + return &c.Name +} + +func (c *mqlAwsOrganizationDelegatedAdministrator) GetEmail() *plugin.TValue[string] { + return &c.Email +} + +func (c *mqlAwsOrganizationDelegatedAdministrator) GetStatus() *plugin.TValue[string] { + return &c.Status +} + +func (c *mqlAwsOrganizationDelegatedAdministrator) GetJoinedMethod() *plugin.TValue[string] { + return &c.JoinedMethod +} + +func (c *mqlAwsOrganizationDelegatedAdministrator) GetJoinedTimestamp() *plugin.TValue[*time.Time] { + return &c.JoinedTimestamp +} + +func (c *mqlAwsOrganizationDelegatedAdministrator) GetDelegationEnabledDate() *plugin.TValue[*time.Time] { + return &c.DelegationEnabledDate +} + +func (c *mqlAwsOrganizationDelegatedAdministrator) GetDelegatedServices() *plugin.TValue[[]any] { + return plugin.GetOrCompute[[]any](&c.DelegatedServices, func() ([]any, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.organization.delegatedAdministrator", c.__id, "delegatedServices") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.([]any), nil + } + } + + return c.delegatedServices() + }) +} + +func (c *mqlAwsOrganizationDelegatedAdministrator) GetAccount() *plugin.TValue[*mqlAwsAccount] { + return plugin.GetOrCompute[*mqlAwsAccount](&c.Account, func() (*mqlAwsAccount, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.organization.delegatedAdministrator", c.__id, "account") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsAccount), nil + } + } + + return c.account() + }) +} + +// mqlAwsOrganizationDelegatedService for the aws.organization.delegatedService resource +type mqlAwsOrganizationDelegatedService struct { + MqlRuntime *plugin.Runtime + __id string + // optional: if you define mqlAwsOrganizationDelegatedServiceInternal it will be used here + ServicePrincipal plugin.TValue[string] + DelegationEnabledDate plugin.TValue[*time.Time] +} + +// createAwsOrganizationDelegatedService creates a new instance of this resource +func createAwsOrganizationDelegatedService(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsOrganizationDelegatedService{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.organization.delegatedService", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsOrganizationDelegatedService) MqlName() string { + return "aws.organization.delegatedService" +} + +func (c *mqlAwsOrganizationDelegatedService) MqlID() string { + return c.__id +} + +func (c *mqlAwsOrganizationDelegatedService) GetServicePrincipal() *plugin.TValue[string] { + return &c.ServicePrincipal +} + +func (c *mqlAwsOrganizationDelegatedService) GetDelegationEnabledDate() *plugin.TValue[*time.Time] { + return &c.DelegationEnabledDate +} + // mqlAwsVpc for the aws.vpc resource type mqlAwsVpc struct { MqlRuntime *plugin.Runtime @@ -33192,8 +35240,9 @@ type mqlAwsIamAccessAnalyzer struct { MqlRuntime *plugin.Runtime __id string // optional: if you define mqlAwsIamAccessAnalyzerInternal it will be used here - Analyzers plugin.TValue[[]any] - Findings plugin.TValue[[]any] + Analyzers plugin.TValue[[]any] + Findings plugin.TValue[[]any] + ArchivedFindings plugin.TValue[[]any] } // createAwsIamAccessAnalyzer creates a new instance of this resource @@ -33260,6 +35309,22 @@ func (c *mqlAwsIamAccessAnalyzer) GetFindings() *plugin.TValue[[]any] { }) } +func (c *mqlAwsIamAccessAnalyzer) GetArchivedFindings() *plugin.TValue[[]any] { + return plugin.GetOrCompute[[]any](&c.ArchivedFindings, func() ([]any, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.iam.accessAnalyzer", c.__id, "archivedFindings") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.([]any), nil + } + } + + return c.archivedFindings() + }) +} + // mqlAwsIamAccessanalyzerAnalyzer for the aws.iam.accessanalyzer.analyzer resource type mqlAwsIamAccessanalyzerAnalyzer struct { MqlRuntime *plugin.Runtime @@ -33455,6 +35520,11 @@ type mqlAwsSagemaker struct { // optional: if you define mqlAwsSagemakerInternal it will be used here Endpoints plugin.TValue[[]any] NotebookInstances plugin.TValue[[]any] + Models plugin.TValue[[]any] + TrainingJobs plugin.TValue[[]any] + ProcessingJobs plugin.TValue[[]any] + Pipelines plugin.TValue[[]any] + Domains plugin.TValue[[]any] } // createAwsSagemaker creates a new instance of this resource @@ -33526,6 +35596,86 @@ func (c *mqlAwsSagemaker) GetNotebookInstances() *plugin.TValue[[]any] { }) } +func (c *mqlAwsSagemaker) GetModels() *plugin.TValue[[]any] { + return plugin.GetOrCompute[[]any](&c.Models, func() ([]any, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.sagemaker", c.__id, "models") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.([]any), nil + } + } + + return c.models() + }) +} + +func (c *mqlAwsSagemaker) GetTrainingJobs() *plugin.TValue[[]any] { + return plugin.GetOrCompute[[]any](&c.TrainingJobs, func() ([]any, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.sagemaker", c.__id, "trainingJobs") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.([]any), nil + } + } + + return c.trainingJobs() + }) +} + +func (c *mqlAwsSagemaker) GetProcessingJobs() *plugin.TValue[[]any] { + return plugin.GetOrCompute[[]any](&c.ProcessingJobs, func() ([]any, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.sagemaker", c.__id, "processingJobs") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.([]any), nil + } + } + + return c.processingJobs() + }) +} + +func (c *mqlAwsSagemaker) GetPipelines() *plugin.TValue[[]any] { + return plugin.GetOrCompute[[]any](&c.Pipelines, func() ([]any, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.sagemaker", c.__id, "pipelines") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.([]any), nil + } + } + + return c.pipelines() + }) +} + +func (c *mqlAwsSagemaker) GetDomains() *plugin.TValue[[]any] { + return plugin.GetOrCompute[[]any](&c.Domains, func() ([]any, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.sagemaker", c.__id, "domains") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.([]any), nil + } + } + + return c.domains() + }) +} + // mqlAwsSagemakerNotebookinstance for the aws.sagemaker.notebookinstance resource type mqlAwsSagemakerNotebookinstance struct { MqlRuntime *plugin.Runtime @@ -33815,17 +35965,25 @@ func (c *mqlAwsSagemakerEndpoint) GetStatus() *plugin.TValue[string] { return &c.Status } -// mqlAwsSns for the aws.sns resource -type mqlAwsSns struct { +// mqlAwsSagemakerModel for the aws.sagemaker.model resource +type mqlAwsSagemakerModel struct { MqlRuntime *plugin.Runtime __id string - // optional: if you define mqlAwsSnsInternal it will be used here - Topics plugin.TValue[[]any] + mqlAwsSagemakerModelInternal + Arn plugin.TValue[string] + Name plugin.TValue[string] + Region plugin.TValue[string] + CreatedAt plugin.TValue[*time.Time] + Tags plugin.TValue[map[string]any] + EnableNetworkIsolation plugin.TValue[bool] + IamRole plugin.TValue[*mqlAwsIamRole] + PrimaryContainer plugin.TValue[any] + VpcConfig plugin.TValue[any] } -// createAwsSns creates a new instance of this resource -func createAwsSns(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { - res := &mqlAwsSns{ +// createAwsSagemakerModel creates a new instance of this resource +func createAwsSagemakerModel(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsSagemakerModel{ MqlRuntime: runtime, } @@ -33842,7 +36000,7 @@ func createAwsSns(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin } if runtime.HasRecording { - args, err = runtime.ResourceFromRecording("aws.sns", res.__id) + args, err = runtime.ResourceFromRecording("aws.sagemaker.model", res.__id) if err != nil || args == nil { return res, err } @@ -33852,47 +36010,99 @@ func createAwsSns(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin return res, nil } -func (c *mqlAwsSns) MqlName() string { - return "aws.sns" +func (c *mqlAwsSagemakerModel) MqlName() string { + return "aws.sagemaker.model" } -func (c *mqlAwsSns) MqlID() string { +func (c *mqlAwsSagemakerModel) MqlID() string { return c.__id } -func (c *mqlAwsSns) GetTopics() *plugin.TValue[[]any] { - return plugin.GetOrCompute[[]any](&c.Topics, func() ([]any, error) { +func (c *mqlAwsSagemakerModel) GetArn() *plugin.TValue[string] { + return &c.Arn +} + +func (c *mqlAwsSagemakerModel) GetName() *plugin.TValue[string] { + return &c.Name +} + +func (c *mqlAwsSagemakerModel) GetRegion() *plugin.TValue[string] { + return &c.Region +} + +func (c *mqlAwsSagemakerModel) GetCreatedAt() *plugin.TValue[*time.Time] { + return &c.CreatedAt +} + +func (c *mqlAwsSagemakerModel) GetTags() *plugin.TValue[map[string]any] { + return plugin.GetOrCompute[map[string]any](&c.Tags, func() (map[string]any, error) { + return c.tags() + }) +} + +func (c *mqlAwsSagemakerModel) GetEnableNetworkIsolation() *plugin.TValue[bool] { + return plugin.GetOrCompute[bool](&c.EnableNetworkIsolation, func() (bool, error) { + return c.enableNetworkIsolation() + }) +} + +func (c *mqlAwsSagemakerModel) GetIamRole() *plugin.TValue[*mqlAwsIamRole] { + return plugin.GetOrCompute[*mqlAwsIamRole](&c.IamRole, func() (*mqlAwsIamRole, error) { if c.MqlRuntime.HasRecording { - d, err := c.MqlRuntime.FieldResourceFromRecording("aws.sns", c.__id, "topics") + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.sagemaker.model", c.__id, "iamRole") if err != nil { return nil, err } if d != nil { - return d.Value.([]any), nil + return d.Value.(*mqlAwsIamRole), nil } } - return c.topics() + return c.iamRole() }) } -// mqlAwsSnsTopic for the aws.sns.topic resource -type mqlAwsSnsTopic struct { - MqlRuntime *plugin.Runtime - __id string - mqlAwsSnsTopicInternal - Arn plugin.TValue[string] - Region plugin.TValue[string] - Subscriptions plugin.TValue[[]any] - Attributes plugin.TValue[any] - Tags plugin.TValue[map[string]any] - SignatureVersion plugin.TValue[string] - KmsMasterKey plugin.TValue[*mqlAwsKmsKey] +func (c *mqlAwsSagemakerModel) GetPrimaryContainer() *plugin.TValue[any] { + return plugin.GetOrCompute[any](&c.PrimaryContainer, func() (any, error) { + return c.primaryContainer() + }) } -// createAwsSnsTopic creates a new instance of this resource -func createAwsSnsTopic(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { - res := &mqlAwsSnsTopic{ +func (c *mqlAwsSagemakerModel) GetVpcConfig() *plugin.TValue[any] { + return plugin.GetOrCompute[any](&c.VpcConfig, func() (any, error) { + return c.vpcConfig() + }) +} + +// mqlAwsSagemakerTrainingjob for the aws.sagemaker.trainingjob resource +type mqlAwsSagemakerTrainingjob struct { + MqlRuntime *plugin.Runtime + __id string + mqlAwsSagemakerTrainingjobInternal + Arn plugin.TValue[string] + Name plugin.TValue[string] + Region plugin.TValue[string] + Status plugin.TValue[string] + CreatedAt plugin.TValue[*time.Time] + LastModifiedAt plugin.TValue[*time.Time] + TrainingEndTime plugin.TValue[*time.Time] + Tags plugin.TValue[map[string]any] + IamRole plugin.TValue[*mqlAwsIamRole] + AlgorithmSpecification plugin.TValue[any] + HyperParameters plugin.TValue[map[string]any] + EnableNetworkIsolation plugin.TValue[bool] + EnableInterContainerTrafficEncryption plugin.TValue[bool] + FailureReason plugin.TValue[string] + BillableTimeInSeconds plugin.TValue[int64] + VpcConfig plugin.TValue[any] + OutputDataConfig plugin.TValue[any] + ResourceConfig plugin.TValue[any] + StoppingCondition plugin.TValue[any] +} + +// createAwsSagemakerTrainingjob creates a new instance of this resource +func createAwsSagemakerTrainingjob(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsSagemakerTrainingjob{ MqlRuntime: runtime, } @@ -33909,7 +36119,7 @@ func createAwsSnsTopic(runtime *plugin.Runtime, args map[string]*llx.RawData) (p } if runtime.HasRecording { - args, err = runtime.ResourceFromRecording("aws.sns.topic", res.__id) + args, err = runtime.ResourceFromRecording("aws.sagemaker.trainingjob", res.__id) if err != nil || args == nil { return res, err } @@ -33919,96 +36129,150 @@ func createAwsSnsTopic(runtime *plugin.Runtime, args map[string]*llx.RawData) (p return res, nil } -func (c *mqlAwsSnsTopic) MqlName() string { - return "aws.sns.topic" +func (c *mqlAwsSagemakerTrainingjob) MqlName() string { + return "aws.sagemaker.trainingjob" } -func (c *mqlAwsSnsTopic) MqlID() string { +func (c *mqlAwsSagemakerTrainingjob) MqlID() string { return c.__id } -func (c *mqlAwsSnsTopic) GetArn() *plugin.TValue[string] { +func (c *mqlAwsSagemakerTrainingjob) GetArn() *plugin.TValue[string] { return &c.Arn } -func (c *mqlAwsSnsTopic) GetRegion() *plugin.TValue[string] { +func (c *mqlAwsSagemakerTrainingjob) GetName() *plugin.TValue[string] { + return &c.Name +} + +func (c *mqlAwsSagemakerTrainingjob) GetRegion() *plugin.TValue[string] { return &c.Region } -func (c *mqlAwsSnsTopic) GetSubscriptions() *plugin.TValue[[]any] { - return plugin.GetOrCompute[[]any](&c.Subscriptions, func() ([]any, error) { +func (c *mqlAwsSagemakerTrainingjob) GetStatus() *plugin.TValue[string] { + return &c.Status +} + +func (c *mqlAwsSagemakerTrainingjob) GetCreatedAt() *plugin.TValue[*time.Time] { + return &c.CreatedAt +} + +func (c *mqlAwsSagemakerTrainingjob) GetLastModifiedAt() *plugin.TValue[*time.Time] { + return &c.LastModifiedAt +} + +func (c *mqlAwsSagemakerTrainingjob) GetTrainingEndTime() *plugin.TValue[*time.Time] { + return &c.TrainingEndTime +} + +func (c *mqlAwsSagemakerTrainingjob) GetTags() *plugin.TValue[map[string]any] { + return plugin.GetOrCompute[map[string]any](&c.Tags, func() (map[string]any, error) { + return c.tags() + }) +} + +func (c *mqlAwsSagemakerTrainingjob) GetIamRole() *plugin.TValue[*mqlAwsIamRole] { + return plugin.GetOrCompute[*mqlAwsIamRole](&c.IamRole, func() (*mqlAwsIamRole, error) { if c.MqlRuntime.HasRecording { - d, err := c.MqlRuntime.FieldResourceFromRecording("aws.sns.topic", c.__id, "subscriptions") + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.sagemaker.trainingjob", c.__id, "iamRole") if err != nil { return nil, err } if d != nil { - return d.Value.([]any), nil + return d.Value.(*mqlAwsIamRole), nil } } - return c.subscriptions() + return c.iamRole() }) } -func (c *mqlAwsSnsTopic) GetAttributes() *plugin.TValue[any] { - return plugin.GetOrCompute[any](&c.Attributes, func() (any, error) { - return c.attributes() +func (c *mqlAwsSagemakerTrainingjob) GetAlgorithmSpecification() *plugin.TValue[any] { + return plugin.GetOrCompute[any](&c.AlgorithmSpecification, func() (any, error) { + return c.algorithmSpecification() }) } -func (c *mqlAwsSnsTopic) GetTags() *plugin.TValue[map[string]any] { - return plugin.GetOrCompute[map[string]any](&c.Tags, func() (map[string]any, error) { - return c.tags() +func (c *mqlAwsSagemakerTrainingjob) GetHyperParameters() *plugin.TValue[map[string]any] { + return plugin.GetOrCompute[map[string]any](&c.HyperParameters, func() (map[string]any, error) { + return c.hyperParameters() }) } -func (c *mqlAwsSnsTopic) GetSignatureVersion() *plugin.TValue[string] { - return plugin.GetOrCompute[string](&c.SignatureVersion, func() (string, error) { - return c.signatureVersion() +func (c *mqlAwsSagemakerTrainingjob) GetEnableNetworkIsolation() *plugin.TValue[bool] { + return plugin.GetOrCompute[bool](&c.EnableNetworkIsolation, func() (bool, error) { + return c.enableNetworkIsolation() }) } -func (c *mqlAwsSnsTopic) GetKmsMasterKey() *plugin.TValue[*mqlAwsKmsKey] { - return plugin.GetOrCompute[*mqlAwsKmsKey](&c.KmsMasterKey, func() (*mqlAwsKmsKey, error) { - if c.MqlRuntime.HasRecording { - d, err := c.MqlRuntime.FieldResourceFromRecording("aws.sns.topic", c.__id, "kmsMasterKey") - if err != nil { - return nil, err - } - if d != nil { - return d.Value.(*mqlAwsKmsKey), nil - } - } +func (c *mqlAwsSagemakerTrainingjob) GetEnableInterContainerTrafficEncryption() *plugin.TValue[bool] { + return plugin.GetOrCompute[bool](&c.EnableInterContainerTrafficEncryption, func() (bool, error) { + return c.enableInterContainerTrafficEncryption() + }) +} - return c.kmsMasterKey() +func (c *mqlAwsSagemakerTrainingjob) GetFailureReason() *plugin.TValue[string] { + return plugin.GetOrCompute[string](&c.FailureReason, func() (string, error) { + return c.failureReason() }) } -// mqlAwsSnsSubscription for the aws.sns.subscription resource -type mqlAwsSnsSubscription struct { - MqlRuntime *plugin.Runtime - __id string - mqlAwsSnsSubscriptionInternal - Arn plugin.TValue[string] - Protocol plugin.TValue[string] - Endpoint plugin.TValue[string] - Owner plugin.TValue[string] - Topic plugin.TValue[*mqlAwsSnsTopic] - Region plugin.TValue[string] - Attributes plugin.TValue[any] - RawMessageDelivery plugin.TValue[bool] - FilterPolicy plugin.TValue[any] - FilterPolicyScope plugin.TValue[string] - RedrivePolicy plugin.TValue[any] - ConfirmationWasAuthenticated plugin.TValue[bool] - DeliveryPolicy plugin.TValue[any] - PendingConfirmation plugin.TValue[bool] +func (c *mqlAwsSagemakerTrainingjob) GetBillableTimeInSeconds() *plugin.TValue[int64] { + return plugin.GetOrCompute[int64](&c.BillableTimeInSeconds, func() (int64, error) { + return c.billableTimeInSeconds() + }) } -// createAwsSnsSubscription creates a new instance of this resource -func createAwsSnsSubscription(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { - res := &mqlAwsSnsSubscription{ +func (c *mqlAwsSagemakerTrainingjob) GetVpcConfig() *plugin.TValue[any] { + return plugin.GetOrCompute[any](&c.VpcConfig, func() (any, error) { + return c.vpcConfig() + }) +} + +func (c *mqlAwsSagemakerTrainingjob) GetOutputDataConfig() *plugin.TValue[any] { + return plugin.GetOrCompute[any](&c.OutputDataConfig, func() (any, error) { + return c.outputDataConfig() + }) +} + +func (c *mqlAwsSagemakerTrainingjob) GetResourceConfig() *plugin.TValue[any] { + return plugin.GetOrCompute[any](&c.ResourceConfig, func() (any, error) { + return c.resourceConfig() + }) +} + +func (c *mqlAwsSagemakerTrainingjob) GetStoppingCondition() *plugin.TValue[any] { + return plugin.GetOrCompute[any](&c.StoppingCondition, func() (any, error) { + return c.stoppingCondition() + }) +} + +// mqlAwsSagemakerProcessingjob for the aws.sagemaker.processingjob resource +type mqlAwsSagemakerProcessingjob struct { + MqlRuntime *plugin.Runtime + __id string + mqlAwsSagemakerProcessingjobInternal + Arn plugin.TValue[string] + Name plugin.TValue[string] + Region plugin.TValue[string] + Status plugin.TValue[string] + CreatedAt plugin.TValue[*time.Time] + LastModifiedAt plugin.TValue[*time.Time] + ProcessingEndTime plugin.TValue[*time.Time] + FailureReason plugin.TValue[string] + ExitMessage plugin.TValue[string] + Tags plugin.TValue[map[string]any] + IamRole plugin.TValue[*mqlAwsIamRole] + EnableNetworkIsolation plugin.TValue[bool] + EnableInterContainerTrafficEncryption plugin.TValue[bool] + VpcConfig plugin.TValue[any] + ProcessingResources plugin.TValue[any] + Environment plugin.TValue[map[string]any] +} + +// createAwsSagemakerProcessingjob creates a new instance of this resource +func createAwsSagemakerProcessingjob(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsSagemakerProcessingjob{ MqlRuntime: runtime, } @@ -34025,7 +36289,7 @@ func createAwsSnsSubscription(runtime *plugin.Runtime, args map[string]*llx.RawD } if runtime.HasRecording { - args, err = runtime.ResourceFromRecording("aws.sns.subscription", res.__id) + args, err = runtime.ResourceFromRecording("aws.sagemaker.processingjob", res.__id) if err != nil || args == nil { return res, err } @@ -34035,109 +36299,125 @@ func createAwsSnsSubscription(runtime *plugin.Runtime, args map[string]*llx.RawD return res, nil } -func (c *mqlAwsSnsSubscription) MqlName() string { - return "aws.sns.subscription" +func (c *mqlAwsSagemakerProcessingjob) MqlName() string { + return "aws.sagemaker.processingjob" } -func (c *mqlAwsSnsSubscription) MqlID() string { +func (c *mqlAwsSagemakerProcessingjob) MqlID() string { return c.__id } -func (c *mqlAwsSnsSubscription) GetArn() *plugin.TValue[string] { +func (c *mqlAwsSagemakerProcessingjob) GetArn() *plugin.TValue[string] { return &c.Arn } -func (c *mqlAwsSnsSubscription) GetProtocol() *plugin.TValue[string] { - return &c.Protocol +func (c *mqlAwsSagemakerProcessingjob) GetName() *plugin.TValue[string] { + return &c.Name } -func (c *mqlAwsSnsSubscription) GetEndpoint() *plugin.TValue[string] { - return &c.Endpoint +func (c *mqlAwsSagemakerProcessingjob) GetRegion() *plugin.TValue[string] { + return &c.Region } -func (c *mqlAwsSnsSubscription) GetOwner() *plugin.TValue[string] { - return &c.Owner +func (c *mqlAwsSagemakerProcessingjob) GetStatus() *plugin.TValue[string] { + return &c.Status } -func (c *mqlAwsSnsSubscription) GetTopic() *plugin.TValue[*mqlAwsSnsTopic] { - return plugin.GetOrCompute[*mqlAwsSnsTopic](&c.Topic, func() (*mqlAwsSnsTopic, error) { - if c.MqlRuntime.HasRecording { - d, err := c.MqlRuntime.FieldResourceFromRecording("aws.sns.subscription", c.__id, "topic") - if err != nil { - return nil, err - } - if d != nil { - return d.Value.(*mqlAwsSnsTopic), nil - } - } +func (c *mqlAwsSagemakerProcessingjob) GetCreatedAt() *plugin.TValue[*time.Time] { + return &c.CreatedAt +} - return c.topic() - }) +func (c *mqlAwsSagemakerProcessingjob) GetLastModifiedAt() *plugin.TValue[*time.Time] { + return &c.LastModifiedAt } -func (c *mqlAwsSnsSubscription) GetRegion() *plugin.TValue[string] { - return &c.Region +func (c *mqlAwsSagemakerProcessingjob) GetProcessingEndTime() *plugin.TValue[*time.Time] { + return &c.ProcessingEndTime } -func (c *mqlAwsSnsSubscription) GetAttributes() *plugin.TValue[any] { - return plugin.GetOrCompute[any](&c.Attributes, func() (any, error) { - return c.attributes() - }) +func (c *mqlAwsSagemakerProcessingjob) GetFailureReason() *plugin.TValue[string] { + return &c.FailureReason } -func (c *mqlAwsSnsSubscription) GetRawMessageDelivery() *plugin.TValue[bool] { - return plugin.GetOrCompute[bool](&c.RawMessageDelivery, func() (bool, error) { - return c.rawMessageDelivery() +func (c *mqlAwsSagemakerProcessingjob) GetExitMessage() *plugin.TValue[string] { + return &c.ExitMessage +} + +func (c *mqlAwsSagemakerProcessingjob) GetTags() *plugin.TValue[map[string]any] { + return plugin.GetOrCompute[map[string]any](&c.Tags, func() (map[string]any, error) { + return c.tags() }) } -func (c *mqlAwsSnsSubscription) GetFilterPolicy() *plugin.TValue[any] { - return plugin.GetOrCompute[any](&c.FilterPolicy, func() (any, error) { - return c.filterPolicy() +func (c *mqlAwsSagemakerProcessingjob) GetIamRole() *plugin.TValue[*mqlAwsIamRole] { + return plugin.GetOrCompute[*mqlAwsIamRole](&c.IamRole, func() (*mqlAwsIamRole, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.sagemaker.processingjob", c.__id, "iamRole") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsIamRole), nil + } + } + + return c.iamRole() }) } -func (c *mqlAwsSnsSubscription) GetFilterPolicyScope() *plugin.TValue[string] { - return plugin.GetOrCompute[string](&c.FilterPolicyScope, func() (string, error) { - return c.filterPolicyScope() +func (c *mqlAwsSagemakerProcessingjob) GetEnableNetworkIsolation() *plugin.TValue[bool] { + return plugin.GetOrCompute[bool](&c.EnableNetworkIsolation, func() (bool, error) { + return c.enableNetworkIsolation() }) } -func (c *mqlAwsSnsSubscription) GetRedrivePolicy() *plugin.TValue[any] { - return plugin.GetOrCompute[any](&c.RedrivePolicy, func() (any, error) { - return c.redrivePolicy() +func (c *mqlAwsSagemakerProcessingjob) GetEnableInterContainerTrafficEncryption() *plugin.TValue[bool] { + return plugin.GetOrCompute[bool](&c.EnableInterContainerTrafficEncryption, func() (bool, error) { + return c.enableInterContainerTrafficEncryption() }) } -func (c *mqlAwsSnsSubscription) GetConfirmationWasAuthenticated() *plugin.TValue[bool] { - return plugin.GetOrCompute[bool](&c.ConfirmationWasAuthenticated, func() (bool, error) { - return c.confirmationWasAuthenticated() +func (c *mqlAwsSagemakerProcessingjob) GetVpcConfig() *plugin.TValue[any] { + return plugin.GetOrCompute[any](&c.VpcConfig, func() (any, error) { + return c.vpcConfig() }) } -func (c *mqlAwsSnsSubscription) GetDeliveryPolicy() *plugin.TValue[any] { - return plugin.GetOrCompute[any](&c.DeliveryPolicy, func() (any, error) { - return c.deliveryPolicy() +func (c *mqlAwsSagemakerProcessingjob) GetProcessingResources() *plugin.TValue[any] { + return plugin.GetOrCompute[any](&c.ProcessingResources, func() (any, error) { + return c.processingResources() }) } -func (c *mqlAwsSnsSubscription) GetPendingConfirmation() *plugin.TValue[bool] { - return plugin.GetOrCompute[bool](&c.PendingConfirmation, func() (bool, error) { - return c.pendingConfirmation() +func (c *mqlAwsSagemakerProcessingjob) GetEnvironment() *plugin.TValue[map[string]any] { + return plugin.GetOrCompute[map[string]any](&c.Environment, func() (map[string]any, error) { + return c.environment() }) } -// mqlAwsEs for the aws.es resource -type mqlAwsEs struct { +// mqlAwsSagemakerPipeline for the aws.sagemaker.pipeline resource +type mqlAwsSagemakerPipeline struct { MqlRuntime *plugin.Runtime __id string - // optional: if you define mqlAwsEsInternal it will be used here - Domains plugin.TValue[[]any] + mqlAwsSagemakerPipelineInternal + Arn plugin.TValue[string] + Name plugin.TValue[string] + DisplayName plugin.TValue[string] + Description plugin.TValue[string] + Region plugin.TValue[string] + CreatedAt plugin.TValue[*time.Time] + LastModifiedAt plugin.TValue[*time.Time] + LastExecutionTime plugin.TValue[*time.Time] + Tags plugin.TValue[map[string]any] + IamRole plugin.TValue[*mqlAwsIamRole] + PipelineStatus plugin.TValue[string] + Definition plugin.TValue[string] + ParallelismConfiguration plugin.TValue[any] } -// createAwsEs creates a new instance of this resource -func createAwsEs(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { - res := &mqlAwsEs{ +// createAwsSagemakerPipeline creates a new instance of this resource +func createAwsSagemakerPipeline(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsSagemakerPipeline{ MqlRuntime: runtime, } @@ -34154,7 +36434,7 @@ func createAwsEs(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin. } if runtime.HasRecording { - args, err = runtime.ResourceFromRecording("aws.es", res.__id) + args, err = runtime.ResourceFromRecording("aws.sagemaker.pipeline", res.__id) if err != nil || args == nil { return res, err } @@ -34164,50 +36444,111 @@ func createAwsEs(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin. return res, nil } -func (c *mqlAwsEs) MqlName() string { - return "aws.es" +func (c *mqlAwsSagemakerPipeline) MqlName() string { + return "aws.sagemaker.pipeline" } -func (c *mqlAwsEs) MqlID() string { +func (c *mqlAwsSagemakerPipeline) MqlID() string { return c.__id } -func (c *mqlAwsEs) GetDomains() *plugin.TValue[[]any] { - return plugin.GetOrCompute[[]any](&c.Domains, func() ([]any, error) { +func (c *mqlAwsSagemakerPipeline) GetArn() *plugin.TValue[string] { + return &c.Arn +} + +func (c *mqlAwsSagemakerPipeline) GetName() *plugin.TValue[string] { + return &c.Name +} + +func (c *mqlAwsSagemakerPipeline) GetDisplayName() *plugin.TValue[string] { + return &c.DisplayName +} + +func (c *mqlAwsSagemakerPipeline) GetDescription() *plugin.TValue[string] { + return &c.Description +} + +func (c *mqlAwsSagemakerPipeline) GetRegion() *plugin.TValue[string] { + return &c.Region +} + +func (c *mqlAwsSagemakerPipeline) GetCreatedAt() *plugin.TValue[*time.Time] { + return &c.CreatedAt +} + +func (c *mqlAwsSagemakerPipeline) GetLastModifiedAt() *plugin.TValue[*time.Time] { + return &c.LastModifiedAt +} + +func (c *mqlAwsSagemakerPipeline) GetLastExecutionTime() *plugin.TValue[*time.Time] { + return &c.LastExecutionTime +} + +func (c *mqlAwsSagemakerPipeline) GetTags() *plugin.TValue[map[string]any] { + return plugin.GetOrCompute[map[string]any](&c.Tags, func() (map[string]any, error) { + return c.tags() + }) +} + +func (c *mqlAwsSagemakerPipeline) GetIamRole() *plugin.TValue[*mqlAwsIamRole] { + return plugin.GetOrCompute[*mqlAwsIamRole](&c.IamRole, func() (*mqlAwsIamRole, error) { if c.MqlRuntime.HasRecording { - d, err := c.MqlRuntime.FieldResourceFromRecording("aws.es", c.__id, "domains") + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.sagemaker.pipeline", c.__id, "iamRole") if err != nil { return nil, err } if d != nil { - return d.Value.([]any), nil + return d.Value.(*mqlAwsIamRole), nil } } - return c.domains() + return c.iamRole() }) } -// mqlAwsEsDomain for the aws.es.domain resource -type mqlAwsEsDomain struct { +func (c *mqlAwsSagemakerPipeline) GetPipelineStatus() *plugin.TValue[string] { + return plugin.GetOrCompute[string](&c.PipelineStatus, func() (string, error) { + return c.pipelineStatus() + }) +} + +func (c *mqlAwsSagemakerPipeline) GetDefinition() *plugin.TValue[string] { + return plugin.GetOrCompute[string](&c.Definition, func() (string, error) { + return c.definition() + }) +} + +func (c *mqlAwsSagemakerPipeline) GetParallelismConfiguration() *plugin.TValue[any] { + return plugin.GetOrCompute[any](&c.ParallelismConfiguration, func() (any, error) { + return c.parallelismConfiguration() + }) +} + +// mqlAwsSagemakerDomain for the aws.sagemaker.domain resource +type mqlAwsSagemakerDomain struct { MqlRuntime *plugin.Runtime __id string - // optional: if you define mqlAwsEsDomainInternal it will be used here - Arn plugin.TValue[string] - EncryptionAtRestEnabled plugin.TValue[bool] - NodeToNodeEncryptionEnabled plugin.TValue[bool] - Name plugin.TValue[string] - Endpoint plugin.TValue[string] - Region plugin.TValue[string] - Tags plugin.TValue[map[string]any] - ElasticsearchVersion plugin.TValue[string] - DomainId plugin.TValue[string] - DomainName plugin.TValue[string] + mqlAwsSagemakerDomainInternal + Arn plugin.TValue[string] + DomainId plugin.TValue[string] + Name plugin.TValue[string] + Region plugin.TValue[string] + Status plugin.TValue[string] + Url plugin.TValue[string] + CreatedAt plugin.TValue[*time.Time] + LastModifiedAt plugin.TValue[*time.Time] + Tags plugin.TValue[map[string]any] + AuthMode plugin.TValue[string] + AppNetworkAccessType plugin.TValue[string] + Vpc plugin.TValue[*mqlAwsVpc] + KmsKey plugin.TValue[*mqlAwsKmsKey] + HomeEfsFileSystemId plugin.TValue[string] + DefaultUserSettings plugin.TValue[any] } -// createAwsEsDomain creates a new instance of this resource -func createAwsEsDomain(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { - res := &mqlAwsEsDomain{ +// createAwsSagemakerDomain creates a new instance of this resource +func createAwsSagemakerDomain(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsSagemakerDomain{ MqlRuntime: runtime, } @@ -34224,7 +36565,7 @@ func createAwsEsDomain(runtime *plugin.Runtime, args map[string]*llx.RawData) (p } if runtime.HasRecording { - args, err = runtime.ResourceFromRecording("aws.es.domain", res.__id) + args, err = runtime.ResourceFromRecording("aws.sagemaker.domain", res.__id) if err != nil || args == nil { return res, err } @@ -34234,65 +36575,119 @@ func createAwsEsDomain(runtime *plugin.Runtime, args map[string]*llx.RawData) (p return res, nil } -func (c *mqlAwsEsDomain) MqlName() string { - return "aws.es.domain" +func (c *mqlAwsSagemakerDomain) MqlName() string { + return "aws.sagemaker.domain" } -func (c *mqlAwsEsDomain) MqlID() string { +func (c *mqlAwsSagemakerDomain) MqlID() string { return c.__id } -func (c *mqlAwsEsDomain) GetArn() *plugin.TValue[string] { +func (c *mqlAwsSagemakerDomain) GetArn() *plugin.TValue[string] { return &c.Arn } -func (c *mqlAwsEsDomain) GetEncryptionAtRestEnabled() *plugin.TValue[bool] { - return &c.EncryptionAtRestEnabled +func (c *mqlAwsSagemakerDomain) GetDomainId() *plugin.TValue[string] { + return &c.DomainId } -func (c *mqlAwsEsDomain) GetNodeToNodeEncryptionEnabled() *plugin.TValue[bool] { - return &c.NodeToNodeEncryptionEnabled +func (c *mqlAwsSagemakerDomain) GetName() *plugin.TValue[string] { + return &c.Name } -func (c *mqlAwsEsDomain) GetName() *plugin.TValue[string] { - return &c.Name +func (c *mqlAwsSagemakerDomain) GetRegion() *plugin.TValue[string] { + return &c.Region } -func (c *mqlAwsEsDomain) GetEndpoint() *plugin.TValue[string] { - return &c.Endpoint +func (c *mqlAwsSagemakerDomain) GetStatus() *plugin.TValue[string] { + return &c.Status } -func (c *mqlAwsEsDomain) GetRegion() *plugin.TValue[string] { - return &c.Region +func (c *mqlAwsSagemakerDomain) GetUrl() *plugin.TValue[string] { + return &c.Url } -func (c *mqlAwsEsDomain) GetTags() *plugin.TValue[map[string]any] { - return &c.Tags +func (c *mqlAwsSagemakerDomain) GetCreatedAt() *plugin.TValue[*time.Time] { + return &c.CreatedAt } -func (c *mqlAwsEsDomain) GetElasticsearchVersion() *plugin.TValue[string] { - return &c.ElasticsearchVersion +func (c *mqlAwsSagemakerDomain) GetLastModifiedAt() *plugin.TValue[*time.Time] { + return &c.LastModifiedAt } -func (c *mqlAwsEsDomain) GetDomainId() *plugin.TValue[string] { - return &c.DomainId +func (c *mqlAwsSagemakerDomain) GetTags() *plugin.TValue[map[string]any] { + return plugin.GetOrCompute[map[string]any](&c.Tags, func() (map[string]any, error) { + return c.tags() + }) } -func (c *mqlAwsEsDomain) GetDomainName() *plugin.TValue[string] { - return &c.DomainName +func (c *mqlAwsSagemakerDomain) GetAuthMode() *plugin.TValue[string] { + return plugin.GetOrCompute[string](&c.AuthMode, func() (string, error) { + return c.authMode() + }) } -// mqlAwsOpensearch for the aws.opensearch resource -type mqlAwsOpensearch struct { +func (c *mqlAwsSagemakerDomain) GetAppNetworkAccessType() *plugin.TValue[string] { + return plugin.GetOrCompute[string](&c.AppNetworkAccessType, func() (string, error) { + return c.appNetworkAccessType() + }) +} + +func (c *mqlAwsSagemakerDomain) GetVpc() *plugin.TValue[*mqlAwsVpc] { + return plugin.GetOrCompute[*mqlAwsVpc](&c.Vpc, func() (*mqlAwsVpc, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.sagemaker.domain", c.__id, "vpc") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsVpc), nil + } + } + + return c.vpc() + }) +} + +func (c *mqlAwsSagemakerDomain) GetKmsKey() *plugin.TValue[*mqlAwsKmsKey] { + return plugin.GetOrCompute[*mqlAwsKmsKey](&c.KmsKey, func() (*mqlAwsKmsKey, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.sagemaker.domain", c.__id, "kmsKey") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsKmsKey), nil + } + } + + return c.kmsKey() + }) +} + +func (c *mqlAwsSagemakerDomain) GetHomeEfsFileSystemId() *plugin.TValue[string] { + return plugin.GetOrCompute[string](&c.HomeEfsFileSystemId, func() (string, error) { + return c.homeEfsFileSystemId() + }) +} + +func (c *mqlAwsSagemakerDomain) GetDefaultUserSettings() *plugin.TValue[any] { + return plugin.GetOrCompute[any](&c.DefaultUserSettings, func() (any, error) { + return c.defaultUserSettings() + }) +} + +// mqlAwsSns for the aws.sns resource +type mqlAwsSns struct { MqlRuntime *plugin.Runtime __id string - // optional: if you define mqlAwsOpensearchInternal it will be used here - Domains plugin.TValue[[]any] + // optional: if you define mqlAwsSnsInternal it will be used here + Topics plugin.TValue[[]any] } -// createAwsOpensearch creates a new instance of this resource -func createAwsOpensearch(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { - res := &mqlAwsOpensearch{ +// createAwsSns creates a new instance of this resource +func createAwsSns(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsSns{ MqlRuntime: runtime, } @@ -34309,7 +36704,7 @@ func createAwsOpensearch(runtime *plugin.Runtime, args map[string]*llx.RawData) } if runtime.HasRecording { - args, err = runtime.ResourceFromRecording("aws.opensearch", res.__id) + args, err = runtime.ResourceFromRecording("aws.sns", res.__id) if err != nil || args == nil { return res, err } @@ -34319,18 +36714,18 @@ func createAwsOpensearch(runtime *plugin.Runtime, args map[string]*llx.RawData) return res, nil } -func (c *mqlAwsOpensearch) MqlName() string { - return "aws.opensearch" +func (c *mqlAwsSns) MqlName() string { + return "aws.sns" } -func (c *mqlAwsOpensearch) MqlID() string { +func (c *mqlAwsSns) MqlID() string { return c.__id } -func (c *mqlAwsOpensearch) GetDomains() *plugin.TValue[[]any] { - return plugin.GetOrCompute[[]any](&c.Domains, func() ([]any, error) { +func (c *mqlAwsSns) GetTopics() *plugin.TValue[[]any] { + return plugin.GetOrCompute[[]any](&c.Topics, func() ([]any, error) { if c.MqlRuntime.HasRecording { - d, err := c.MqlRuntime.FieldResourceFromRecording("aws.opensearch", c.__id, "domains") + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.sns", c.__id, "topics") if err != nil { return nil, err } @@ -34339,26 +36734,493 @@ func (c *mqlAwsOpensearch) GetDomains() *plugin.TValue[[]any] { } } - return c.domains() + return c.topics() }) } -// mqlAwsOpensearchDomain for the aws.opensearch.domain resource -type mqlAwsOpensearchDomain struct { +// mqlAwsSnsTopic for the aws.sns.topic resource +type mqlAwsSnsTopic struct { MqlRuntime *plugin.Runtime __id string - mqlAwsOpensearchDomainInternal - Arn plugin.TValue[string] - Name plugin.TValue[string] - DomainId plugin.TValue[string] - Region plugin.TValue[string] - EngineVersion plugin.TValue[string] - Endpoint plugin.TValue[string] - EncryptionAtRestEnabled plugin.TValue[bool] - EncryptionAtRestKmsKeyId plugin.TValue[string] - EncryptionAtRestKmsKey plugin.TValue[*mqlAwsKmsKey] - NodeToNodeEncryptionEnabled plugin.TValue[bool] - DedicatedMasterEnabled plugin.TValue[bool] + mqlAwsSnsTopicInternal + Arn plugin.TValue[string] + Region plugin.TValue[string] + Subscriptions plugin.TValue[[]any] + Attributes plugin.TValue[any] + Tags plugin.TValue[map[string]any] + SignatureVersion plugin.TValue[string] + KmsMasterKey plugin.TValue[*mqlAwsKmsKey] +} + +// createAwsSnsTopic creates a new instance of this resource +func createAwsSnsTopic(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsSnsTopic{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.sns.topic", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsSnsTopic) MqlName() string { + return "aws.sns.topic" +} + +func (c *mqlAwsSnsTopic) MqlID() string { + return c.__id +} + +func (c *mqlAwsSnsTopic) GetArn() *plugin.TValue[string] { + return &c.Arn +} + +func (c *mqlAwsSnsTopic) GetRegion() *plugin.TValue[string] { + return &c.Region +} + +func (c *mqlAwsSnsTopic) GetSubscriptions() *plugin.TValue[[]any] { + return plugin.GetOrCompute[[]any](&c.Subscriptions, func() ([]any, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.sns.topic", c.__id, "subscriptions") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.([]any), nil + } + } + + return c.subscriptions() + }) +} + +func (c *mqlAwsSnsTopic) GetAttributes() *plugin.TValue[any] { + return plugin.GetOrCompute[any](&c.Attributes, func() (any, error) { + return c.attributes() + }) +} + +func (c *mqlAwsSnsTopic) GetTags() *plugin.TValue[map[string]any] { + return plugin.GetOrCompute[map[string]any](&c.Tags, func() (map[string]any, error) { + return c.tags() + }) +} + +func (c *mqlAwsSnsTopic) GetSignatureVersion() *plugin.TValue[string] { + return plugin.GetOrCompute[string](&c.SignatureVersion, func() (string, error) { + return c.signatureVersion() + }) +} + +func (c *mqlAwsSnsTopic) GetKmsMasterKey() *plugin.TValue[*mqlAwsKmsKey] { + return plugin.GetOrCompute[*mqlAwsKmsKey](&c.KmsMasterKey, func() (*mqlAwsKmsKey, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.sns.topic", c.__id, "kmsMasterKey") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsKmsKey), nil + } + } + + return c.kmsMasterKey() + }) +} + +// mqlAwsSnsSubscription for the aws.sns.subscription resource +type mqlAwsSnsSubscription struct { + MqlRuntime *plugin.Runtime + __id string + mqlAwsSnsSubscriptionInternal + Arn plugin.TValue[string] + Protocol plugin.TValue[string] + Endpoint plugin.TValue[string] + Owner plugin.TValue[string] + Topic plugin.TValue[*mqlAwsSnsTopic] + Region plugin.TValue[string] + Attributes plugin.TValue[any] + RawMessageDelivery plugin.TValue[bool] + FilterPolicy plugin.TValue[any] + FilterPolicyScope plugin.TValue[string] + RedrivePolicy plugin.TValue[any] + ConfirmationWasAuthenticated plugin.TValue[bool] + DeliveryPolicy plugin.TValue[any] + PendingConfirmation plugin.TValue[bool] +} + +// createAwsSnsSubscription creates a new instance of this resource +func createAwsSnsSubscription(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsSnsSubscription{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.sns.subscription", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsSnsSubscription) MqlName() string { + return "aws.sns.subscription" +} + +func (c *mqlAwsSnsSubscription) MqlID() string { + return c.__id +} + +func (c *mqlAwsSnsSubscription) GetArn() *plugin.TValue[string] { + return &c.Arn +} + +func (c *mqlAwsSnsSubscription) GetProtocol() *plugin.TValue[string] { + return &c.Protocol +} + +func (c *mqlAwsSnsSubscription) GetEndpoint() *plugin.TValue[string] { + return &c.Endpoint +} + +func (c *mqlAwsSnsSubscription) GetOwner() *plugin.TValue[string] { + return &c.Owner +} + +func (c *mqlAwsSnsSubscription) GetTopic() *plugin.TValue[*mqlAwsSnsTopic] { + return plugin.GetOrCompute[*mqlAwsSnsTopic](&c.Topic, func() (*mqlAwsSnsTopic, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.sns.subscription", c.__id, "topic") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsSnsTopic), nil + } + } + + return c.topic() + }) +} + +func (c *mqlAwsSnsSubscription) GetRegion() *plugin.TValue[string] { + return &c.Region +} + +func (c *mqlAwsSnsSubscription) GetAttributes() *plugin.TValue[any] { + return plugin.GetOrCompute[any](&c.Attributes, func() (any, error) { + return c.attributes() + }) +} + +func (c *mqlAwsSnsSubscription) GetRawMessageDelivery() *plugin.TValue[bool] { + return plugin.GetOrCompute[bool](&c.RawMessageDelivery, func() (bool, error) { + return c.rawMessageDelivery() + }) +} + +func (c *mqlAwsSnsSubscription) GetFilterPolicy() *plugin.TValue[any] { + return plugin.GetOrCompute[any](&c.FilterPolicy, func() (any, error) { + return c.filterPolicy() + }) +} + +func (c *mqlAwsSnsSubscription) GetFilterPolicyScope() *plugin.TValue[string] { + return plugin.GetOrCompute[string](&c.FilterPolicyScope, func() (string, error) { + return c.filterPolicyScope() + }) +} + +func (c *mqlAwsSnsSubscription) GetRedrivePolicy() *plugin.TValue[any] { + return plugin.GetOrCompute[any](&c.RedrivePolicy, func() (any, error) { + return c.redrivePolicy() + }) +} + +func (c *mqlAwsSnsSubscription) GetConfirmationWasAuthenticated() *plugin.TValue[bool] { + return plugin.GetOrCompute[bool](&c.ConfirmationWasAuthenticated, func() (bool, error) { + return c.confirmationWasAuthenticated() + }) +} + +func (c *mqlAwsSnsSubscription) GetDeliveryPolicy() *plugin.TValue[any] { + return plugin.GetOrCompute[any](&c.DeliveryPolicy, func() (any, error) { + return c.deliveryPolicy() + }) +} + +func (c *mqlAwsSnsSubscription) GetPendingConfirmation() *plugin.TValue[bool] { + return plugin.GetOrCompute[bool](&c.PendingConfirmation, func() (bool, error) { + return c.pendingConfirmation() + }) +} + +// mqlAwsEs for the aws.es resource +type mqlAwsEs struct { + MqlRuntime *plugin.Runtime + __id string + // optional: if you define mqlAwsEsInternal it will be used here + Domains plugin.TValue[[]any] +} + +// createAwsEs creates a new instance of this resource +func createAwsEs(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsEs{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.es", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsEs) MqlName() string { + return "aws.es" +} + +func (c *mqlAwsEs) MqlID() string { + return c.__id +} + +func (c *mqlAwsEs) GetDomains() *plugin.TValue[[]any] { + return plugin.GetOrCompute[[]any](&c.Domains, func() ([]any, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.es", c.__id, "domains") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.([]any), nil + } + } + + return c.domains() + }) +} + +// mqlAwsEsDomain for the aws.es.domain resource +type mqlAwsEsDomain struct { + MqlRuntime *plugin.Runtime + __id string + // optional: if you define mqlAwsEsDomainInternal it will be used here + Arn plugin.TValue[string] + EncryptionAtRestEnabled plugin.TValue[bool] + NodeToNodeEncryptionEnabled plugin.TValue[bool] + Name plugin.TValue[string] + Endpoint plugin.TValue[string] + Region plugin.TValue[string] + Tags plugin.TValue[map[string]any] + ElasticsearchVersion plugin.TValue[string] + DomainId plugin.TValue[string] + DomainName plugin.TValue[string] +} + +// createAwsEsDomain creates a new instance of this resource +func createAwsEsDomain(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsEsDomain{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.es.domain", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsEsDomain) MqlName() string { + return "aws.es.domain" +} + +func (c *mqlAwsEsDomain) MqlID() string { + return c.__id +} + +func (c *mqlAwsEsDomain) GetArn() *plugin.TValue[string] { + return &c.Arn +} + +func (c *mqlAwsEsDomain) GetEncryptionAtRestEnabled() *plugin.TValue[bool] { + return &c.EncryptionAtRestEnabled +} + +func (c *mqlAwsEsDomain) GetNodeToNodeEncryptionEnabled() *plugin.TValue[bool] { + return &c.NodeToNodeEncryptionEnabled +} + +func (c *mqlAwsEsDomain) GetName() *plugin.TValue[string] { + return &c.Name +} + +func (c *mqlAwsEsDomain) GetEndpoint() *plugin.TValue[string] { + return &c.Endpoint +} + +func (c *mqlAwsEsDomain) GetRegion() *plugin.TValue[string] { + return &c.Region +} + +func (c *mqlAwsEsDomain) GetTags() *plugin.TValue[map[string]any] { + return &c.Tags +} + +func (c *mqlAwsEsDomain) GetElasticsearchVersion() *plugin.TValue[string] { + return &c.ElasticsearchVersion +} + +func (c *mqlAwsEsDomain) GetDomainId() *plugin.TValue[string] { + return &c.DomainId +} + +func (c *mqlAwsEsDomain) GetDomainName() *plugin.TValue[string] { + return &c.DomainName +} + +// mqlAwsOpensearch for the aws.opensearch resource +type mqlAwsOpensearch struct { + MqlRuntime *plugin.Runtime + __id string + // optional: if you define mqlAwsOpensearchInternal it will be used here + Domains plugin.TValue[[]any] +} + +// createAwsOpensearch creates a new instance of this resource +func createAwsOpensearch(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsOpensearch{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.opensearch", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsOpensearch) MqlName() string { + return "aws.opensearch" +} + +func (c *mqlAwsOpensearch) MqlID() string { + return c.__id +} + +func (c *mqlAwsOpensearch) GetDomains() *plugin.TValue[[]any] { + return plugin.GetOrCompute[[]any](&c.Domains, func() ([]any, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.opensearch", c.__id, "domains") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.([]any), nil + } + } + + return c.domains() + }) +} + +// mqlAwsOpensearchDomain for the aws.opensearch.domain resource +type mqlAwsOpensearchDomain struct { + MqlRuntime *plugin.Runtime + __id string + mqlAwsOpensearchDomainInternal + Arn plugin.TValue[string] + Name plugin.TValue[string] + DomainId plugin.TValue[string] + Region plugin.TValue[string] + EngineVersion plugin.TValue[string] + Endpoint plugin.TValue[string] + EncryptionAtRestEnabled plugin.TValue[bool] + EncryptionAtRestKmsKeyId plugin.TValue[string] + EncryptionAtRestKmsKey plugin.TValue[*mqlAwsKmsKey] + NodeToNodeEncryptionEnabled plugin.TValue[bool] + DedicatedMasterEnabled plugin.TValue[bool] DedicatedMasterType plugin.TValue[string] DedicatedMasterCount plugin.TValue[int64] InstanceType plugin.TValue[string] @@ -37111,6 +39973,8 @@ type mqlAwsShield struct { Subscription plugin.TValue[*mqlAwsShieldSubscription] Protections plugin.TValue[[]any] ProtectionGroups plugin.TValue[[]any] + DrtAccess plugin.TValue[*mqlAwsShieldDrtAccess] + EmergencyContacts plugin.TValue[[]any] } // createAwsShield creates a new instance of this resource @@ -37204,6 +40068,38 @@ func (c *mqlAwsShield) GetProtectionGroups() *plugin.TValue[[]any] { }) } +func (c *mqlAwsShield) GetDrtAccess() *plugin.TValue[*mqlAwsShieldDrtAccess] { + return plugin.GetOrCompute[*mqlAwsShieldDrtAccess](&c.DrtAccess, func() (*mqlAwsShieldDrtAccess, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.shield", c.__id, "drtAccess") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsShieldDrtAccess), nil + } + } + + return c.drtAccess() + }) +} + +func (c *mqlAwsShield) GetEmergencyContacts() *plugin.TValue[[]any] { + return plugin.GetOrCompute[[]any](&c.EmergencyContacts, func() ([]any, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.shield", c.__id, "emergencyContacts") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.([]any), nil + } + } + + return c.emergencyContacts() + }) +} + // mqlAwsShieldSubscription for the aws.shield.subscription resource type mqlAwsShieldSubscription struct { MqlRuntime *plugin.Runtime @@ -37431,6 +40327,131 @@ func (c *mqlAwsShieldProtectionGroup) GetMembers() *plugin.TValue[[]any] { return &c.Members } +// mqlAwsShieldDrtAccess for the aws.shield.drtAccess resource +type mqlAwsShieldDrtAccess struct { + MqlRuntime *plugin.Runtime + __id string + mqlAwsShieldDrtAccessInternal + IamRole plugin.TValue[*mqlAwsIamRole] + LogBucketList plugin.TValue[[]any] +} + +// createAwsShieldDrtAccess creates a new instance of this resource +func createAwsShieldDrtAccess(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsShieldDrtAccess{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.shield.drtAccess", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsShieldDrtAccess) MqlName() string { + return "aws.shield.drtAccess" +} + +func (c *mqlAwsShieldDrtAccess) MqlID() string { + return c.__id +} + +func (c *mqlAwsShieldDrtAccess) GetIamRole() *plugin.TValue[*mqlAwsIamRole] { + return plugin.GetOrCompute[*mqlAwsIamRole](&c.IamRole, func() (*mqlAwsIamRole, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.shield.drtAccess", c.__id, "iamRole") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsIamRole), nil + } + } + + return c.iamRole() + }) +} + +func (c *mqlAwsShieldDrtAccess) GetLogBucketList() *plugin.TValue[[]any] { + return &c.LogBucketList +} + +// mqlAwsShieldEmergencyContact for the aws.shield.emergencyContact resource +type mqlAwsShieldEmergencyContact struct { + MqlRuntime *plugin.Runtime + __id string + // optional: if you define mqlAwsShieldEmergencyContactInternal it will be used here + EmailAddress plugin.TValue[string] + PhoneNumber plugin.TValue[string] + ContactNotes plugin.TValue[string] +} + +// createAwsShieldEmergencyContact creates a new instance of this resource +func createAwsShieldEmergencyContact(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsShieldEmergencyContact{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.shield.emergencyContact", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsShieldEmergencyContact) MqlName() string { + return "aws.shield.emergencyContact" +} + +func (c *mqlAwsShieldEmergencyContact) MqlID() string { + return c.__id +} + +func (c *mqlAwsShieldEmergencyContact) GetEmailAddress() *plugin.TValue[string] { + return &c.EmailAddress +} + +func (c *mqlAwsShieldEmergencyContact) GetPhoneNumber() *plugin.TValue[string] { + return &c.PhoneNumber +} + +func (c *mqlAwsShieldEmergencyContact) GetContactNotes() *plugin.TValue[string] { + return &c.ContactNotes +} + // mqlAwsSecretsmanager for the aws.secretsmanager resource type mqlAwsSecretsmanager struct { MqlRuntime *plugin.Runtime @@ -40257,7 +43278,7 @@ func (c *mqlAwsEventbridgeEventBus) GetRules() *plugin.TValue[[]any] { type mqlAwsEventbridgeRule struct { MqlRuntime *plugin.Runtime __id string - // optional: if you define mqlAwsEventbridgeRuleInternal it will be used here + mqlAwsEventbridgeRuleInternal Arn plugin.TValue[string] Name plugin.TValue[string] Region plugin.TValue[string] @@ -40267,6 +43288,7 @@ type mqlAwsEventbridgeRule struct { EventPattern plugin.TValue[string] ScheduleExpression plugin.TValue[string] RoleArn plugin.TValue[string] + IamRole plugin.TValue[*mqlAwsIamRole] Tags plugin.TValue[map[string]any] Targets plugin.TValue[[]any] } @@ -40339,6 +43361,22 @@ func (c *mqlAwsEventbridgeRule) GetRoleArn() *plugin.TValue[string] { return &c.RoleArn } +func (c *mqlAwsEventbridgeRule) GetIamRole() *plugin.TValue[*mqlAwsIamRole] { + return plugin.GetOrCompute[*mqlAwsIamRole](&c.IamRole, func() (*mqlAwsIamRole, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.eventbridge.rule", c.__id, "iamRole") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsIamRole), nil + } + } + + return c.iamRole() + }) +} + func (c *mqlAwsEventbridgeRule) GetTags() *plugin.TValue[map[string]any] { return plugin.GetOrCompute[map[string]any](&c.Tags, func() (map[string]any, error) { return c.tags() @@ -52362,6 +55400,7 @@ type mqlAwsInspector struct { __id string // optional: if you define mqlAwsInspectorInternal it will be used here Coverages plugin.TValue[[]any] + Findings plugin.TValue[[]any] } // createAwsInspector creates a new instance of this resource @@ -52417,6 +55456,22 @@ func (c *mqlAwsInspector) GetCoverages() *plugin.TValue[[]any] { }) } +func (c *mqlAwsInspector) GetFindings() *plugin.TValue[[]any] { + return plugin.GetOrCompute[[]any](&c.Findings, func() ([]any, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.inspector", c.__id, "findings") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.([]any), nil + } + } + + return c.findings() + }) +} + // mqlAwsInspectorCoverage for the aws.inspector.coverage resource type mqlAwsInspectorCoverage struct { MqlRuntime *plugin.Runtime @@ -52751,6 +55806,580 @@ func (c *mqlAwsInspectorCoverageRepository) GetRegion() *plugin.TValue[string] { return &c.Region } +// mqlAwsInspectorFinding for the aws.inspector.finding resource +type mqlAwsInspectorFinding struct { + MqlRuntime *plugin.Runtime + __id string + mqlAwsInspectorFindingInternal + Arn plugin.TValue[string] + AccountId plugin.TValue[string] + Title plugin.TValue[string] + Description plugin.TValue[string] + Severity plugin.TValue[string] + Status plugin.TValue[string] + Type plugin.TValue[string] + FirstObservedAt plugin.TValue[*time.Time] + LastObservedAt plugin.TValue[*time.Time] + UpdatedAt plugin.TValue[*time.Time] + InspectorScore plugin.TValue[float64] + ExploitAvailable plugin.TValue[string] + FixAvailable plugin.TValue[string] + Region plugin.TValue[string] + Remediation plugin.TValue[string] + RemediationUrl plugin.TValue[string] + PackageVulnerability plugin.TValue[*mqlAwsInspectorFindingPackageVulnerability] + NetworkReachability plugin.TValue[*mqlAwsInspectorFindingNetworkReachability] + CodeVulnerability plugin.TValue[*mqlAwsInspectorFindingCodeVulnerability] +} + +// createAwsInspectorFinding creates a new instance of this resource +func createAwsInspectorFinding(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsInspectorFinding{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.inspector.finding", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsInspectorFinding) MqlName() string { + return "aws.inspector.finding" +} + +func (c *mqlAwsInspectorFinding) MqlID() string { + return c.__id +} + +func (c *mqlAwsInspectorFinding) GetArn() *plugin.TValue[string] { + return &c.Arn +} + +func (c *mqlAwsInspectorFinding) GetAccountId() *plugin.TValue[string] { + return &c.AccountId +} + +func (c *mqlAwsInspectorFinding) GetTitle() *plugin.TValue[string] { + return &c.Title +} + +func (c *mqlAwsInspectorFinding) GetDescription() *plugin.TValue[string] { + return &c.Description +} + +func (c *mqlAwsInspectorFinding) GetSeverity() *plugin.TValue[string] { + return &c.Severity +} + +func (c *mqlAwsInspectorFinding) GetStatus() *plugin.TValue[string] { + return &c.Status +} + +func (c *mqlAwsInspectorFinding) GetType() *plugin.TValue[string] { + return &c.Type +} + +func (c *mqlAwsInspectorFinding) GetFirstObservedAt() *plugin.TValue[*time.Time] { + return &c.FirstObservedAt +} + +func (c *mqlAwsInspectorFinding) GetLastObservedAt() *plugin.TValue[*time.Time] { + return &c.LastObservedAt +} + +func (c *mqlAwsInspectorFinding) GetUpdatedAt() *plugin.TValue[*time.Time] { + return &c.UpdatedAt +} + +func (c *mqlAwsInspectorFinding) GetInspectorScore() *plugin.TValue[float64] { + return &c.InspectorScore +} + +func (c *mqlAwsInspectorFinding) GetExploitAvailable() *plugin.TValue[string] { + return &c.ExploitAvailable +} + +func (c *mqlAwsInspectorFinding) GetFixAvailable() *plugin.TValue[string] { + return &c.FixAvailable +} + +func (c *mqlAwsInspectorFinding) GetRegion() *plugin.TValue[string] { + return &c.Region +} + +func (c *mqlAwsInspectorFinding) GetRemediation() *plugin.TValue[string] { + return plugin.GetOrCompute[string](&c.Remediation, func() (string, error) { + return c.remediation() + }) +} + +func (c *mqlAwsInspectorFinding) GetRemediationUrl() *plugin.TValue[string] { + return plugin.GetOrCompute[string](&c.RemediationUrl, func() (string, error) { + return c.remediationUrl() + }) +} + +func (c *mqlAwsInspectorFinding) GetPackageVulnerability() *plugin.TValue[*mqlAwsInspectorFindingPackageVulnerability] { + return plugin.GetOrCompute[*mqlAwsInspectorFindingPackageVulnerability](&c.PackageVulnerability, func() (*mqlAwsInspectorFindingPackageVulnerability, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.inspector.finding", c.__id, "packageVulnerability") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsInspectorFindingPackageVulnerability), nil + } + } + + return c.packageVulnerability() + }) +} + +func (c *mqlAwsInspectorFinding) GetNetworkReachability() *plugin.TValue[*mqlAwsInspectorFindingNetworkReachability] { + return plugin.GetOrCompute[*mqlAwsInspectorFindingNetworkReachability](&c.NetworkReachability, func() (*mqlAwsInspectorFindingNetworkReachability, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.inspector.finding", c.__id, "networkReachability") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsInspectorFindingNetworkReachability), nil + } + } + + return c.networkReachability() + }) +} + +func (c *mqlAwsInspectorFinding) GetCodeVulnerability() *plugin.TValue[*mqlAwsInspectorFindingCodeVulnerability] { + return plugin.GetOrCompute[*mqlAwsInspectorFindingCodeVulnerability](&c.CodeVulnerability, func() (*mqlAwsInspectorFindingCodeVulnerability, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.inspector.finding", c.__id, "codeVulnerability") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsInspectorFindingCodeVulnerability), nil + } + } + + return c.codeVulnerability() + }) +} + +// mqlAwsInspectorFindingPackageVulnerability for the aws.inspector.finding.packageVulnerability resource +type mqlAwsInspectorFindingPackageVulnerability struct { + MqlRuntime *plugin.Runtime + __id string + // optional: if you define mqlAwsInspectorFindingPackageVulnerabilityInternal it will be used here + VulnerabilityId plugin.TValue[string] + Source plugin.TValue[string] + SourceUrl plugin.TValue[string] + VendorSeverity plugin.TValue[string] + VendorCreatedAt plugin.TValue[*time.Time] + VendorUpdatedAt plugin.TValue[*time.Time] + CvssScores plugin.TValue[[]any] + ReferenceUrls plugin.TValue[[]any] + RelatedVulnerabilities plugin.TValue[[]any] + VulnerablePackages plugin.TValue[[]any] +} + +// createAwsInspectorFindingPackageVulnerability creates a new instance of this resource +func createAwsInspectorFindingPackageVulnerability(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsInspectorFindingPackageVulnerability{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.inspector.finding.packageVulnerability", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsInspectorFindingPackageVulnerability) MqlName() string { + return "aws.inspector.finding.packageVulnerability" +} + +func (c *mqlAwsInspectorFindingPackageVulnerability) MqlID() string { + return c.__id +} + +func (c *mqlAwsInspectorFindingPackageVulnerability) GetVulnerabilityId() *plugin.TValue[string] { + return &c.VulnerabilityId +} + +func (c *mqlAwsInspectorFindingPackageVulnerability) GetSource() *plugin.TValue[string] { + return &c.Source +} + +func (c *mqlAwsInspectorFindingPackageVulnerability) GetSourceUrl() *plugin.TValue[string] { + return &c.SourceUrl +} + +func (c *mqlAwsInspectorFindingPackageVulnerability) GetVendorSeverity() *plugin.TValue[string] { + return &c.VendorSeverity +} + +func (c *mqlAwsInspectorFindingPackageVulnerability) GetVendorCreatedAt() *plugin.TValue[*time.Time] { + return &c.VendorCreatedAt +} + +func (c *mqlAwsInspectorFindingPackageVulnerability) GetVendorUpdatedAt() *plugin.TValue[*time.Time] { + return &c.VendorUpdatedAt +} + +func (c *mqlAwsInspectorFindingPackageVulnerability) GetCvssScores() *plugin.TValue[[]any] { + return &c.CvssScores +} + +func (c *mqlAwsInspectorFindingPackageVulnerability) GetReferenceUrls() *plugin.TValue[[]any] { + return &c.ReferenceUrls +} + +func (c *mqlAwsInspectorFindingPackageVulnerability) GetRelatedVulnerabilities() *plugin.TValue[[]any] { + return &c.RelatedVulnerabilities +} + +func (c *mqlAwsInspectorFindingPackageVulnerability) GetVulnerablePackages() *plugin.TValue[[]any] { + return &c.VulnerablePackages +} + +// mqlAwsInspectorFindingPackageVulnerabilityCvssScore for the aws.inspector.finding.packageVulnerability.cvssScore resource +type mqlAwsInspectorFindingPackageVulnerabilityCvssScore struct { + MqlRuntime *plugin.Runtime + __id string + // optional: if you define mqlAwsInspectorFindingPackageVulnerabilityCvssScoreInternal it will be used here + BaseScore plugin.TValue[float64] + ScoringVector plugin.TValue[string] + Source plugin.TValue[string] + Version plugin.TValue[string] +} + +// createAwsInspectorFindingPackageVulnerabilityCvssScore creates a new instance of this resource +func createAwsInspectorFindingPackageVulnerabilityCvssScore(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsInspectorFindingPackageVulnerabilityCvssScore{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.inspector.finding.packageVulnerability.cvssScore", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsInspectorFindingPackageVulnerabilityCvssScore) MqlName() string { + return "aws.inspector.finding.packageVulnerability.cvssScore" +} + +func (c *mqlAwsInspectorFindingPackageVulnerabilityCvssScore) MqlID() string { + return c.__id +} + +func (c *mqlAwsInspectorFindingPackageVulnerabilityCvssScore) GetBaseScore() *plugin.TValue[float64] { + return &c.BaseScore +} + +func (c *mqlAwsInspectorFindingPackageVulnerabilityCvssScore) GetScoringVector() *plugin.TValue[string] { + return &c.ScoringVector +} + +func (c *mqlAwsInspectorFindingPackageVulnerabilityCvssScore) GetSource() *plugin.TValue[string] { + return &c.Source +} + +func (c *mqlAwsInspectorFindingPackageVulnerabilityCvssScore) GetVersion() *plugin.TValue[string] { + return &c.Version +} + +// mqlAwsInspectorFindingVulnerablePackage for the aws.inspector.finding.vulnerablePackage resource +type mqlAwsInspectorFindingVulnerablePackage struct { + MqlRuntime *plugin.Runtime + __id string + // optional: if you define mqlAwsInspectorFindingVulnerablePackageInternal it will be used here + Name plugin.TValue[string] + Version plugin.TValue[string] + Arch plugin.TValue[string] + Epoch plugin.TValue[int64] + PackageManager plugin.TValue[string] + FilePath plugin.TValue[string] + FixedInVersion plugin.TValue[string] + Remediation plugin.TValue[string] + Release plugin.TValue[string] +} + +// createAwsInspectorFindingVulnerablePackage creates a new instance of this resource +func createAwsInspectorFindingVulnerablePackage(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsInspectorFindingVulnerablePackage{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.inspector.finding.vulnerablePackage", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsInspectorFindingVulnerablePackage) MqlName() string { + return "aws.inspector.finding.vulnerablePackage" +} + +func (c *mqlAwsInspectorFindingVulnerablePackage) MqlID() string { + return c.__id +} + +func (c *mqlAwsInspectorFindingVulnerablePackage) GetName() *plugin.TValue[string] { + return &c.Name +} + +func (c *mqlAwsInspectorFindingVulnerablePackage) GetVersion() *plugin.TValue[string] { + return &c.Version +} + +func (c *mqlAwsInspectorFindingVulnerablePackage) GetArch() *plugin.TValue[string] { + return &c.Arch +} + +func (c *mqlAwsInspectorFindingVulnerablePackage) GetEpoch() *plugin.TValue[int64] { + return &c.Epoch +} + +func (c *mqlAwsInspectorFindingVulnerablePackage) GetPackageManager() *plugin.TValue[string] { + return &c.PackageManager +} + +func (c *mqlAwsInspectorFindingVulnerablePackage) GetFilePath() *plugin.TValue[string] { + return &c.FilePath +} + +func (c *mqlAwsInspectorFindingVulnerablePackage) GetFixedInVersion() *plugin.TValue[string] { + return &c.FixedInVersion +} + +func (c *mqlAwsInspectorFindingVulnerablePackage) GetRemediation() *plugin.TValue[string] { + return &c.Remediation +} + +func (c *mqlAwsInspectorFindingVulnerablePackage) GetRelease() *plugin.TValue[string] { + return &c.Release +} + +// mqlAwsInspectorFindingNetworkReachability for the aws.inspector.finding.networkReachability resource +type mqlAwsInspectorFindingNetworkReachability struct { + MqlRuntime *plugin.Runtime + __id string + // optional: if you define mqlAwsInspectorFindingNetworkReachabilityInternal it will be used here + Protocol plugin.TValue[string] + OpenPortStart plugin.TValue[int64] + OpenPortEnd plugin.TValue[int64] + NetworkPath plugin.TValue[[]any] +} + +// createAwsInspectorFindingNetworkReachability creates a new instance of this resource +func createAwsInspectorFindingNetworkReachability(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsInspectorFindingNetworkReachability{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.inspector.finding.networkReachability", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsInspectorFindingNetworkReachability) MqlName() string { + return "aws.inspector.finding.networkReachability" +} + +func (c *mqlAwsInspectorFindingNetworkReachability) MqlID() string { + return c.__id +} + +func (c *mqlAwsInspectorFindingNetworkReachability) GetProtocol() *plugin.TValue[string] { + return &c.Protocol +} + +func (c *mqlAwsInspectorFindingNetworkReachability) GetOpenPortStart() *plugin.TValue[int64] { + return &c.OpenPortStart +} + +func (c *mqlAwsInspectorFindingNetworkReachability) GetOpenPortEnd() *plugin.TValue[int64] { + return &c.OpenPortEnd +} + +func (c *mqlAwsInspectorFindingNetworkReachability) GetNetworkPath() *plugin.TValue[[]any] { + return &c.NetworkPath +} + +// mqlAwsInspectorFindingCodeVulnerability for the aws.inspector.finding.codeVulnerability resource +type mqlAwsInspectorFindingCodeVulnerability struct { + MqlRuntime *plugin.Runtime + __id string + // optional: if you define mqlAwsInspectorFindingCodeVulnerabilityInternal it will be used here + Cwes plugin.TValue[[]any] + DetectorId plugin.TValue[string] + DetectorName plugin.TValue[string] + DetectorTags plugin.TValue[[]any] + FilePath plugin.TValue[any] + ReferenceUrls plugin.TValue[[]any] + RuleId plugin.TValue[string] + SourceLambdaLayerArn plugin.TValue[string] +} + +// createAwsInspectorFindingCodeVulnerability creates a new instance of this resource +func createAwsInspectorFindingCodeVulnerability(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsInspectorFindingCodeVulnerability{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.inspector.finding.codeVulnerability", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsInspectorFindingCodeVulnerability) MqlName() string { + return "aws.inspector.finding.codeVulnerability" +} + +func (c *mqlAwsInspectorFindingCodeVulnerability) MqlID() string { + return c.__id +} + +func (c *mqlAwsInspectorFindingCodeVulnerability) GetCwes() *plugin.TValue[[]any] { + return &c.Cwes +} + +func (c *mqlAwsInspectorFindingCodeVulnerability) GetDetectorId() *plugin.TValue[string] { + return &c.DetectorId +} + +func (c *mqlAwsInspectorFindingCodeVulnerability) GetDetectorName() *plugin.TValue[string] { + return &c.DetectorName +} + +func (c *mqlAwsInspectorFindingCodeVulnerability) GetDetectorTags() *plugin.TValue[[]any] { + return &c.DetectorTags +} + +func (c *mqlAwsInspectorFindingCodeVulnerability) GetFilePath() *plugin.TValue[any] { + return &c.FilePath +} + +func (c *mqlAwsInspectorFindingCodeVulnerability) GetReferenceUrls() *plugin.TValue[[]any] { + return &c.ReferenceUrls +} + +func (c *mqlAwsInspectorFindingCodeVulnerability) GetRuleId() *plugin.TValue[string] { + return &c.RuleId +} + +func (c *mqlAwsInspectorFindingCodeVulnerability) GetSourceLambdaLayerArn() *plugin.TValue[string] { + return &c.SourceLambdaLayerArn +} + // mqlAwsEc2Instance for the aws.ec2.instance resource type mqlAwsEc2Instance struct { MqlRuntime *plugin.Runtime @@ -54326,9 +57955,10 @@ func (c *mqlAwsConfigRule) GetRegion() *plugin.TValue[string] { type mqlAwsConfigRecorder struct { MqlRuntime *plugin.Runtime __id string - // optional: if you define mqlAwsConfigRecorderInternal it will be used here + mqlAwsConfigRecorderInternal Name plugin.TValue[string] RoleArn plugin.TValue[string] + IamRole plugin.TValue[*mqlAwsIamRole] AllSupported plugin.TValue[bool] IncludeGlobalResourceTypes plugin.TValue[bool] Recording plugin.TValue[bool] @@ -54382,6 +58012,22 @@ func (c *mqlAwsConfigRecorder) GetRoleArn() *plugin.TValue[string] { return &c.RoleArn } +func (c *mqlAwsConfigRecorder) GetIamRole() *plugin.TValue[*mqlAwsIamRole] { + return plugin.GetOrCompute[*mqlAwsIamRole](&c.IamRole, func() (*mqlAwsIamRole, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.config.recorder", c.__id, "iamRole") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsIamRole), nil + } + } + + return c.iamRole() + }) +} + func (c *mqlAwsConfigRecorder) GetAllSupported() *plugin.TValue[bool] { return &c.AllSupported } @@ -60101,7 +63747,7 @@ func (c *mqlAwsKinesisStreamConsumer) GetRegion() *plugin.TValue[string] { type mqlAwsKinesisFirehoseDeliveryStream struct { MqlRuntime *plugin.Runtime __id string - // optional: if you define mqlAwsKinesisFirehoseDeliveryStreamInternal it will be used here + mqlAwsKinesisFirehoseDeliveryStreamInternal Arn plugin.TValue[string] Name plugin.TValue[string] Status plugin.TValue[string] @@ -60171,7 +63817,19 @@ func (c *mqlAwsKinesisFirehoseDeliveryStream) GetSource() *plugin.TValue[any] { } func (c *mqlAwsKinesisFirehoseDeliveryStream) GetDestinations() *plugin.TValue[[]any] { - return &c.Destinations + return plugin.GetOrCompute[[]any](&c.Destinations, func() ([]any, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.kinesis.firehoseDeliveryStream", c.__id, "destinations") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.([]any), nil + } + } + + return c.destinations() + }) } func (c *mqlAwsKinesisFirehoseDeliveryStream) GetCreatedAt() *plugin.TValue[*time.Time] { @@ -60188,6 +63846,895 @@ func (c *mqlAwsKinesisFirehoseDeliveryStream) GetTags() *plugin.TValue[map[strin }) } +// mqlAwsKinesisFirehoseDeliveryStreamDestination for the aws.kinesis.firehoseDeliveryStream.destination resource +type mqlAwsKinesisFirehoseDeliveryStreamDestination struct { + MqlRuntime *plugin.Runtime + __id string + mqlAwsKinesisFirehoseDeliveryStreamDestinationInternal + DestinationId plugin.TValue[string] + Type plugin.TValue[string] + Region plugin.TValue[string] + S3 plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3] + Redshift plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift] + Elasticsearch plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch] + Opensearch plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch] + Splunk plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk] + HttpEndpoint plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint] +} + +// createAwsKinesisFirehoseDeliveryStreamDestination creates a new instance of this resource +func createAwsKinesisFirehoseDeliveryStreamDestination(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsKinesisFirehoseDeliveryStreamDestination{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.kinesis.firehoseDeliveryStream.destination", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestination) MqlName() string { + return "aws.kinesis.firehoseDeliveryStream.destination" +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestination) MqlID() string { + return c.__id +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestination) GetDestinationId() *plugin.TValue[string] { + return &c.DestinationId +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestination) GetType() *plugin.TValue[string] { + return &c.Type +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestination) GetRegion() *plugin.TValue[string] { + return &c.Region +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestination) GetS3() *plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3] { + return plugin.GetOrCompute[*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3](&c.S3, func() (*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.kinesis.firehoseDeliveryStream.destination", c.__id, "s3") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3), nil + } + } + + return c.s3() + }) +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestination) GetRedshift() *plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift] { + return plugin.GetOrCompute[*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift](&c.Redshift, func() (*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.kinesis.firehoseDeliveryStream.destination", c.__id, "redshift") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift), nil + } + } + + return c.redshift() + }) +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestination) GetElasticsearch() *plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch] { + return plugin.GetOrCompute[*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch](&c.Elasticsearch, func() (*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.kinesis.firehoseDeliveryStream.destination", c.__id, "elasticsearch") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch), nil + } + } + + return c.elasticsearch() + }) +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestination) GetOpensearch() *plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch] { + return plugin.GetOrCompute[*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch](&c.Opensearch, func() (*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.kinesis.firehoseDeliveryStream.destination", c.__id, "opensearch") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch), nil + } + } + + return c.opensearch() + }) +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestination) GetSplunk() *plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk] { + return plugin.GetOrCompute[*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk](&c.Splunk, func() (*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.kinesis.firehoseDeliveryStream.destination", c.__id, "splunk") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk), nil + } + } + + return c.splunk() + }) +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestination) GetHttpEndpoint() *plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint] { + return plugin.GetOrCompute[*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint](&c.HttpEndpoint, func() (*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.kinesis.firehoseDeliveryStream.destination", c.__id, "httpEndpoint") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint), nil + } + } + + return c.httpEndpoint() + }) +} + +// mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging for the aws.kinesis.firehoseDeliveryStream.cloudWatchLogging resource +type mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging struct { + MqlRuntime *plugin.Runtime + __id string + // optional: if you define mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLoggingInternal it will be used here + Enabled plugin.TValue[bool] + LogGroupName plugin.TValue[string] + LogStreamName plugin.TValue[string] +} + +// createAwsKinesisFirehoseDeliveryStreamCloudWatchLogging creates a new instance of this resource +func createAwsKinesisFirehoseDeliveryStreamCloudWatchLogging(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.kinesis.firehoseDeliveryStream.cloudWatchLogging", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging) MqlName() string { + return "aws.kinesis.firehoseDeliveryStream.cloudWatchLogging" +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging) MqlID() string { + return c.__id +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging) GetEnabled() *plugin.TValue[bool] { + return &c.Enabled +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging) GetLogGroupName() *plugin.TValue[string] { + return &c.LogGroupName +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging) GetLogStreamName() *plugin.TValue[string] { + return &c.LogStreamName +} + +// mqlAwsKinesisFirehoseDeliveryStreamDestinationS3 for the aws.kinesis.firehoseDeliveryStream.destination.s3 resource +type mqlAwsKinesisFirehoseDeliveryStreamDestinationS3 struct { + MqlRuntime *plugin.Runtime + __id string + mqlAwsKinesisFirehoseDeliveryStreamDestinationS3Internal + BucketArn plugin.TValue[string] + IamRole plugin.TValue[*mqlAwsIamRole] + CompressionFormat plugin.TValue[string] + Prefix plugin.TValue[string] + ErrorOutputPrefix plugin.TValue[string] + FileExtension plugin.TValue[string] + BufferingSizeInMBs plugin.TValue[int64] + BufferingIntervalInSeconds plugin.TValue[int64] + S3BackupMode plugin.TValue[string] + CloudWatchLogging plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging] + DataFormatConversion plugin.TValue[any] + DynamicPartitioning plugin.TValue[any] + ProcessingConfiguration plugin.TValue[any] + Region plugin.TValue[string] +} + +// createAwsKinesisFirehoseDeliveryStreamDestinationS3 creates a new instance of this resource +func createAwsKinesisFirehoseDeliveryStreamDestinationS3(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsKinesisFirehoseDeliveryStreamDestinationS3{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.kinesis.firehoseDeliveryStream.destination.s3", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationS3) MqlName() string { + return "aws.kinesis.firehoseDeliveryStream.destination.s3" +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationS3) MqlID() string { + return c.__id +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationS3) GetBucketArn() *plugin.TValue[string] { + return &c.BucketArn +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationS3) GetIamRole() *plugin.TValue[*mqlAwsIamRole] { + return plugin.GetOrCompute[*mqlAwsIamRole](&c.IamRole, func() (*mqlAwsIamRole, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.kinesis.firehoseDeliveryStream.destination.s3", c.__id, "iamRole") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsIamRole), nil + } + } + + return c.iamRole() + }) +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationS3) GetCompressionFormat() *plugin.TValue[string] { + return &c.CompressionFormat +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationS3) GetPrefix() *plugin.TValue[string] { + return &c.Prefix +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationS3) GetErrorOutputPrefix() *plugin.TValue[string] { + return &c.ErrorOutputPrefix +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationS3) GetFileExtension() *plugin.TValue[string] { + return &c.FileExtension +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationS3) GetBufferingSizeInMBs() *plugin.TValue[int64] { + return &c.BufferingSizeInMBs +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationS3) GetBufferingIntervalInSeconds() *plugin.TValue[int64] { + return &c.BufferingIntervalInSeconds +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationS3) GetS3BackupMode() *plugin.TValue[string] { + return &c.S3BackupMode +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationS3) GetCloudWatchLogging() *plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging] { + return &c.CloudWatchLogging +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationS3) GetDataFormatConversion() *plugin.TValue[any] { + return &c.DataFormatConversion +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationS3) GetDynamicPartitioning() *plugin.TValue[any] { + return &c.DynamicPartitioning +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationS3) GetProcessingConfiguration() *plugin.TValue[any] { + return &c.ProcessingConfiguration +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationS3) GetRegion() *plugin.TValue[string] { + return &c.Region +} + +// mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift for the aws.kinesis.firehoseDeliveryStream.destination.redshift resource +type mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift struct { + MqlRuntime *plugin.Runtime + __id string + mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshiftInternal + ClusterJdbcUrl plugin.TValue[string] + IamRole plugin.TValue[*mqlAwsIamRole] + Username plugin.TValue[string] + CopyCommandTableName plugin.TValue[string] + CopyCommandOptions plugin.TValue[string] + S3BackupMode plugin.TValue[string] + CloudWatchLogging plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging] + ProcessingConfiguration plugin.TValue[any] + RetryDurationInSeconds plugin.TValue[int64] + Region plugin.TValue[string] +} + +// createAwsKinesisFirehoseDeliveryStreamDestinationRedshift creates a new instance of this resource +func createAwsKinesisFirehoseDeliveryStreamDestinationRedshift(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.kinesis.firehoseDeliveryStream.destination.redshift", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift) MqlName() string { + return "aws.kinesis.firehoseDeliveryStream.destination.redshift" +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift) MqlID() string { + return c.__id +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift) GetClusterJdbcUrl() *plugin.TValue[string] { + return &c.ClusterJdbcUrl +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift) GetIamRole() *plugin.TValue[*mqlAwsIamRole] { + return plugin.GetOrCompute[*mqlAwsIamRole](&c.IamRole, func() (*mqlAwsIamRole, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.kinesis.firehoseDeliveryStream.destination.redshift", c.__id, "iamRole") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsIamRole), nil + } + } + + return c.iamRole() + }) +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift) GetUsername() *plugin.TValue[string] { + return &c.Username +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift) GetCopyCommandTableName() *plugin.TValue[string] { + return &c.CopyCommandTableName +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift) GetCopyCommandOptions() *plugin.TValue[string] { + return &c.CopyCommandOptions +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift) GetS3BackupMode() *plugin.TValue[string] { + return &c.S3BackupMode +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift) GetCloudWatchLogging() *plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging] { + return &c.CloudWatchLogging +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift) GetProcessingConfiguration() *plugin.TValue[any] { + return &c.ProcessingConfiguration +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift) GetRetryDurationInSeconds() *plugin.TValue[int64] { + return &c.RetryDurationInSeconds +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift) GetRegion() *plugin.TValue[string] { + return &c.Region +} + +// mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch for the aws.kinesis.firehoseDeliveryStream.destination.elasticsearch resource +type mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch struct { + MqlRuntime *plugin.Runtime + __id string + mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearchInternal + DomainArn plugin.TValue[string] + ClusterEndpoint plugin.TValue[string] + IndexName plugin.TValue[string] + IndexRotationPeriod plugin.TValue[string] + IamRole plugin.TValue[*mqlAwsIamRole] + S3BackupMode plugin.TValue[string] + BufferingSizeInMBs plugin.TValue[int64] + BufferingIntervalInSeconds plugin.TValue[int64] + CloudWatchLogging plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging] + ProcessingConfiguration plugin.TValue[any] + RetryDurationInSeconds plugin.TValue[int64] + Region plugin.TValue[string] +} + +// createAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch creates a new instance of this resource +func createAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.kinesis.firehoseDeliveryStream.destination.elasticsearch", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch) MqlName() string { + return "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch" +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch) MqlID() string { + return c.__id +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch) GetDomainArn() *plugin.TValue[string] { + return &c.DomainArn +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch) GetClusterEndpoint() *plugin.TValue[string] { + return &c.ClusterEndpoint +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch) GetIndexName() *plugin.TValue[string] { + return &c.IndexName +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch) GetIndexRotationPeriod() *plugin.TValue[string] { + return &c.IndexRotationPeriod +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch) GetIamRole() *plugin.TValue[*mqlAwsIamRole] { + return plugin.GetOrCompute[*mqlAwsIamRole](&c.IamRole, func() (*mqlAwsIamRole, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.kinesis.firehoseDeliveryStream.destination.elasticsearch", c.__id, "iamRole") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsIamRole), nil + } + } + + return c.iamRole() + }) +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch) GetS3BackupMode() *plugin.TValue[string] { + return &c.S3BackupMode +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch) GetBufferingSizeInMBs() *plugin.TValue[int64] { + return &c.BufferingSizeInMBs +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch) GetBufferingIntervalInSeconds() *plugin.TValue[int64] { + return &c.BufferingIntervalInSeconds +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch) GetCloudWatchLogging() *plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging] { + return &c.CloudWatchLogging +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch) GetProcessingConfiguration() *plugin.TValue[any] { + return &c.ProcessingConfiguration +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch) GetRetryDurationInSeconds() *plugin.TValue[int64] { + return &c.RetryDurationInSeconds +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch) GetRegion() *plugin.TValue[string] { + return &c.Region +} + +// mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch for the aws.kinesis.firehoseDeliveryStream.destination.opensearch resource +type mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch struct { + MqlRuntime *plugin.Runtime + __id string + mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearchInternal + DomainArn plugin.TValue[string] + ClusterEndpoint plugin.TValue[string] + IndexName plugin.TValue[string] + IndexRotationPeriod plugin.TValue[string] + IamRole plugin.TValue[*mqlAwsIamRole] + S3BackupMode plugin.TValue[string] + BufferingSizeInMBs plugin.TValue[int64] + BufferingIntervalInSeconds plugin.TValue[int64] + CloudWatchLogging plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging] + ProcessingConfiguration plugin.TValue[any] + RetryDurationInSeconds plugin.TValue[int64] + Region plugin.TValue[string] +} + +// createAwsKinesisFirehoseDeliveryStreamDestinationOpensearch creates a new instance of this resource +func createAwsKinesisFirehoseDeliveryStreamDestinationOpensearch(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.kinesis.firehoseDeliveryStream.destination.opensearch", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch) MqlName() string { + return "aws.kinesis.firehoseDeliveryStream.destination.opensearch" +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch) MqlID() string { + return c.__id +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch) GetDomainArn() *plugin.TValue[string] { + return &c.DomainArn +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch) GetClusterEndpoint() *plugin.TValue[string] { + return &c.ClusterEndpoint +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch) GetIndexName() *plugin.TValue[string] { + return &c.IndexName +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch) GetIndexRotationPeriod() *plugin.TValue[string] { + return &c.IndexRotationPeriod +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch) GetIamRole() *plugin.TValue[*mqlAwsIamRole] { + return plugin.GetOrCompute[*mqlAwsIamRole](&c.IamRole, func() (*mqlAwsIamRole, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.kinesis.firehoseDeliveryStream.destination.opensearch", c.__id, "iamRole") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsIamRole), nil + } + } + + return c.iamRole() + }) +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch) GetS3BackupMode() *plugin.TValue[string] { + return &c.S3BackupMode +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch) GetBufferingSizeInMBs() *plugin.TValue[int64] { + return &c.BufferingSizeInMBs +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch) GetBufferingIntervalInSeconds() *plugin.TValue[int64] { + return &c.BufferingIntervalInSeconds +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch) GetCloudWatchLogging() *plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging] { + return &c.CloudWatchLogging +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch) GetProcessingConfiguration() *plugin.TValue[any] { + return &c.ProcessingConfiguration +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch) GetRetryDurationInSeconds() *plugin.TValue[int64] { + return &c.RetryDurationInSeconds +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch) GetRegion() *plugin.TValue[string] { + return &c.Region +} + +// mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk for the aws.kinesis.firehoseDeliveryStream.destination.splunk resource +type mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk struct { + MqlRuntime *plugin.Runtime + __id string + // optional: if you define mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunkInternal it will be used here + HecEndpoint plugin.TValue[string] + HecEndpointType plugin.TValue[string] + HecAcknowledgmentTimeoutInSeconds plugin.TValue[int64] + S3BackupMode plugin.TValue[string] + BufferingSizeInMBs plugin.TValue[int64] + BufferingIntervalInSeconds plugin.TValue[int64] + CloudWatchLogging plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging] + ProcessingConfiguration plugin.TValue[any] + RetryDurationInSeconds plugin.TValue[int64] + Region plugin.TValue[string] +} + +// createAwsKinesisFirehoseDeliveryStreamDestinationSplunk creates a new instance of this resource +func createAwsKinesisFirehoseDeliveryStreamDestinationSplunk(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.kinesis.firehoseDeliveryStream.destination.splunk", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk) MqlName() string { + return "aws.kinesis.firehoseDeliveryStream.destination.splunk" +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk) MqlID() string { + return c.__id +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk) GetHecEndpoint() *plugin.TValue[string] { + return &c.HecEndpoint +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk) GetHecEndpointType() *plugin.TValue[string] { + return &c.HecEndpointType +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk) GetHecAcknowledgmentTimeoutInSeconds() *plugin.TValue[int64] { + return &c.HecAcknowledgmentTimeoutInSeconds +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk) GetS3BackupMode() *plugin.TValue[string] { + return &c.S3BackupMode +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk) GetBufferingSizeInMBs() *plugin.TValue[int64] { + return &c.BufferingSizeInMBs +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk) GetBufferingIntervalInSeconds() *plugin.TValue[int64] { + return &c.BufferingIntervalInSeconds +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk) GetCloudWatchLogging() *plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging] { + return &c.CloudWatchLogging +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk) GetProcessingConfiguration() *plugin.TValue[any] { + return &c.ProcessingConfiguration +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk) GetRetryDurationInSeconds() *plugin.TValue[int64] { + return &c.RetryDurationInSeconds +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk) GetRegion() *plugin.TValue[string] { + return &c.Region +} + +// mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint for the aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint resource +type mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint struct { + MqlRuntime *plugin.Runtime + __id string + mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpointInternal + EndpointUrl plugin.TValue[string] + EndpointName plugin.TValue[string] + IamRole plugin.TValue[*mqlAwsIamRole] + S3BackupMode plugin.TValue[string] + BufferingSizeInMBs plugin.TValue[int64] + BufferingIntervalInSeconds plugin.TValue[int64] + CloudWatchLogging plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging] + ProcessingConfiguration plugin.TValue[any] + RequestConfiguration plugin.TValue[any] + RetryDurationInSeconds plugin.TValue[int64] + Region plugin.TValue[string] +} + +// createAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint creates a new instance of this resource +func createAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint(runtime *plugin.Runtime, args map[string]*llx.RawData) (plugin.Resource, error) { + res := &mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint{ + MqlRuntime: runtime, + } + + err := SetAllData(res, args) + if err != nil { + return res, err + } + + if res.__id == "" { + res.__id, err = res.id() + if err != nil { + return nil, err + } + } + + if runtime.HasRecording { + args, err = runtime.ResourceFromRecording("aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint", res.__id) + if err != nil || args == nil { + return res, err + } + return res, SetAllData(res, args) + } + + return res, nil +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint) MqlName() string { + return "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint" +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint) MqlID() string { + return c.__id +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint) GetEndpointUrl() *plugin.TValue[string] { + return &c.EndpointUrl +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint) GetEndpointName() *plugin.TValue[string] { + return &c.EndpointName +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint) GetIamRole() *plugin.TValue[*mqlAwsIamRole] { + return plugin.GetOrCompute[*mqlAwsIamRole](&c.IamRole, func() (*mqlAwsIamRole, error) { + if c.MqlRuntime.HasRecording { + d, err := c.MqlRuntime.FieldResourceFromRecording("aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint", c.__id, "iamRole") + if err != nil { + return nil, err + } + if d != nil { + return d.Value.(*mqlAwsIamRole), nil + } + } + + return c.iamRole() + }) +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint) GetS3BackupMode() *plugin.TValue[string] { + return &c.S3BackupMode +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint) GetBufferingSizeInMBs() *plugin.TValue[int64] { + return &c.BufferingSizeInMBs +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint) GetBufferingIntervalInSeconds() *plugin.TValue[int64] { + return &c.BufferingIntervalInSeconds +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint) GetCloudWatchLogging() *plugin.TValue[*mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging] { + return &c.CloudWatchLogging +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint) GetProcessingConfiguration() *plugin.TValue[any] { + return &c.ProcessingConfiguration +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint) GetRequestConfiguration() *plugin.TValue[any] { + return &c.RequestConfiguration +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint) GetRetryDurationInSeconds() *plugin.TValue[int64] { + return &c.RetryDurationInSeconds +} + +func (c *mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint) GetRegion() *plugin.TValue[string] { + return &c.Region +} + // mqlAwsMemorydb for the aws.memorydb resource type mqlAwsMemorydb struct { MqlRuntime *plugin.Runtime diff --git a/providers/aws/resources/aws.lr.versions b/providers/aws/resources/aws.lr.versions index a23b6f7f1e..dd8dcc79de 100644 --- a/providers/aws/resources/aws.lr.versions +++ b/providers/aws/resources/aws.lr.versions @@ -518,6 +518,7 @@ aws.config.deliverychannel.s3KeyPrefix 11.15.2 aws.config.deliverychannel.snsTopicARN 11.15.2 aws.config.recorder 11.15.2 aws.config.recorder.allSupported 11.15.2 +aws.config.recorder.iamRole 13.0.2 aws.config.recorder.includeGlobalResourceTypes 11.15.2 aws.config.recorder.lastStatus 11.15.2 aws.config.recorder.name 11.15.2 @@ -1558,6 +1559,7 @@ aws.eventbridge.rule.arn 11.16.1 aws.eventbridge.rule.description 11.16.1 aws.eventbridge.rule.eventBusName 11.16.1 aws.eventbridge.rule.eventPattern 11.16.1 +aws.eventbridge.rule.iamRole 13.0.2 aws.eventbridge.rule.name 11.16.1 aws.eventbridge.rule.region 11.16.1 aws.eventbridge.rule.roleArn 11.16.1 @@ -1747,6 +1749,7 @@ aws.guardduty.findings 11.15.2 aws.iam 11.15.2 aws.iam.accessAnalyzer 11.15.2 aws.iam.accessAnalyzer.analyzers 11.15.2 +aws.iam.accessAnalyzer.archivedFindings 13.0.2 aws.iam.accessAnalyzer.findings 11.15.2 aws.iam.accessanalyzer.analyzer 11.15.2 aws.iam.accessanalyzer.analyzer.arn 11.15.2 @@ -1918,11 +1921,152 @@ aws.inspector.coverage.scanType 11.15.2 aws.inspector.coverage.statusCode 11.15.2 aws.inspector.coverage.statusReason 11.15.2 aws.inspector.coverages 11.15.2 +aws.inspector.finding 13.0.2 +aws.inspector.finding.accountId 13.0.2 +aws.inspector.finding.arn 13.0.2 +aws.inspector.finding.codeVulnerability 13.0.2 +aws.inspector.finding.codeVulnerability.cwes 13.0.2 +aws.inspector.finding.codeVulnerability.detectorId 13.0.2 +aws.inspector.finding.codeVulnerability.detectorName 13.0.2 +aws.inspector.finding.codeVulnerability.detectorTags 13.0.2 +aws.inspector.finding.codeVulnerability.filePath 13.0.2 +aws.inspector.finding.codeVulnerability.referenceUrls 13.0.2 +aws.inspector.finding.codeVulnerability.ruleId 13.0.2 +aws.inspector.finding.codeVulnerability.sourceLambdaLayerArn 13.0.2 +aws.inspector.finding.description 13.0.2 +aws.inspector.finding.exploitAvailable 13.0.2 +aws.inspector.finding.firstObservedAt 13.0.2 +aws.inspector.finding.fixAvailable 13.0.2 +aws.inspector.finding.inspectorScore 13.0.2 +aws.inspector.finding.lastObservedAt 13.0.2 +aws.inspector.finding.networkReachability 13.0.2 +aws.inspector.finding.networkReachability.networkPath 13.0.2 +aws.inspector.finding.networkReachability.openPortEnd 13.0.2 +aws.inspector.finding.networkReachability.openPortStart 13.0.2 +aws.inspector.finding.networkReachability.protocol 13.0.2 +aws.inspector.finding.packageVulnerability 13.0.2 +aws.inspector.finding.packageVulnerability.cvssScore 13.0.2 +aws.inspector.finding.packageVulnerability.cvssScore.baseScore 13.0.2 +aws.inspector.finding.packageVulnerability.cvssScore.scoringVector 13.0.2 +aws.inspector.finding.packageVulnerability.cvssScore.source 13.0.2 +aws.inspector.finding.packageVulnerability.cvssScore.version 13.0.2 +aws.inspector.finding.packageVulnerability.cvssScores 13.0.2 +aws.inspector.finding.packageVulnerability.referenceUrls 13.0.2 +aws.inspector.finding.packageVulnerability.relatedVulnerabilities 13.0.2 +aws.inspector.finding.packageVulnerability.source 13.0.2 +aws.inspector.finding.packageVulnerability.sourceUrl 13.0.2 +aws.inspector.finding.packageVulnerability.vendorCreatedAt 13.0.2 +aws.inspector.finding.packageVulnerability.vendorSeverity 13.0.2 +aws.inspector.finding.packageVulnerability.vendorUpdatedAt 13.0.2 +aws.inspector.finding.packageVulnerability.vulnerabilityId 13.0.2 +aws.inspector.finding.packageVulnerability.vulnerablePackages 13.0.2 +aws.inspector.finding.region 13.0.2 +aws.inspector.finding.remediation 13.0.2 +aws.inspector.finding.remediationUrl 13.0.2 +aws.inspector.finding.severity 13.0.2 +aws.inspector.finding.status 13.0.2 +aws.inspector.finding.title 13.0.2 +aws.inspector.finding.type 13.0.2 +aws.inspector.finding.updatedAt 13.0.2 +aws.inspector.finding.vulnerablePackage 13.0.2 +aws.inspector.finding.vulnerablePackage.arch 13.0.2 +aws.inspector.finding.vulnerablePackage.epoch 13.0.2 +aws.inspector.finding.vulnerablePackage.filePath 13.0.2 +aws.inspector.finding.vulnerablePackage.fixedInVersion 13.0.2 +aws.inspector.finding.vulnerablePackage.name 13.0.2 +aws.inspector.finding.vulnerablePackage.packageManager 13.0.2 +aws.inspector.finding.vulnerablePackage.release 13.0.2 +aws.inspector.finding.vulnerablePackage.remediation 13.0.2 +aws.inspector.finding.vulnerablePackage.version 13.0.2 +aws.inspector.findings 13.0.2 aws.kinesis 11.16.1 aws.kinesis.firehoseDeliveryStream 11.16.1 aws.kinesis.firehoseDeliveryStream.arn 11.16.1 +aws.kinesis.firehoseDeliveryStream.cloudWatchLogging 13.0.2 +aws.kinesis.firehoseDeliveryStream.cloudWatchLogging.enabled 13.0.2 +aws.kinesis.firehoseDeliveryStream.cloudWatchLogging.logGroupName 13.0.2 +aws.kinesis.firehoseDeliveryStream.cloudWatchLogging.logStreamName 13.0.2 aws.kinesis.firehoseDeliveryStream.createdAt 11.16.1 aws.kinesis.firehoseDeliveryStream.deliveryStreamType 11.16.1 +aws.kinesis.firehoseDeliveryStream.destination 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.destinationId 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.elasticsearch 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.bufferingIntervalInSeconds 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.bufferingSizeInMBs 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.cloudWatchLogging 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.clusterEndpoint 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.domainArn 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.iamRole 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.indexName 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.indexRotationPeriod 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.processingConfiguration 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.region 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.retryDurationInSeconds 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.elasticsearch.s3BackupMode 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.bufferingIntervalInSeconds 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.bufferingSizeInMBs 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.cloudWatchLogging 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.endpointName 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.endpointUrl 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.iamRole 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.processingConfiguration 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.region 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.requestConfiguration 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.retryDurationInSeconds 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint.s3BackupMode 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.opensearch 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.opensearch.bufferingIntervalInSeconds 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.opensearch.bufferingSizeInMBs 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.opensearch.cloudWatchLogging 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.opensearch.clusterEndpoint 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.opensearch.domainArn 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.opensearch.iamRole 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.opensearch.indexName 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.opensearch.indexRotationPeriod 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.opensearch.processingConfiguration 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.opensearch.region 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.opensearch.retryDurationInSeconds 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.opensearch.s3BackupMode 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.redshift 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.redshift.cloudWatchLogging 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.redshift.clusterJdbcUrl 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.redshift.copyCommandOptions 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.redshift.copyCommandTableName 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.redshift.iamRole 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.redshift.processingConfiguration 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.redshift.region 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.redshift.retryDurationInSeconds 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.redshift.s3BackupMode 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.redshift.username 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.region 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.s3 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.s3.bucketArn 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.s3.bufferingIntervalInSeconds 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.s3.bufferingSizeInMBs 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.s3.cloudWatchLogging 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.s3.compressionFormat 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.s3.dataFormatConversion 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.s3.dynamicPartitioning 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.s3.errorOutputPrefix 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.s3.fileExtension 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.s3.iamRole 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.s3.prefix 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.s3.processingConfiguration 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.s3.region 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.s3.s3BackupMode 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.splunk 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.splunk.bufferingIntervalInSeconds 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.splunk.bufferingSizeInMBs 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.splunk.cloudWatchLogging 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.splunk.hecAcknowledgmentTimeoutInSeconds 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.splunk.hecEndpoint 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.splunk.hecEndpointType 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.splunk.processingConfiguration 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.splunk.region 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.splunk.retryDurationInSeconds 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.splunk.s3BackupMode 13.0.2 +aws.kinesis.firehoseDeliveryStream.destination.type 13.0.2 aws.kinesis.firehoseDeliveryStream.destinations 11.16.1 aws.kinesis.firehoseDeliveryStream.encryption 11.16.1 aws.kinesis.firehoseDeliveryStream.name 11.16.1 @@ -2448,6 +2592,21 @@ aws.opensearch.domains 11.15.2 aws.organization 11.15.2 aws.organization.accounts 11.15.2 aws.organization.arn 11.15.2 +aws.organization.delegatedAdministrator 13.0.2 +aws.organization.delegatedAdministrator.account 13.0.2 +aws.organization.delegatedAdministrator.accountId 13.0.2 +aws.organization.delegatedAdministrator.arn 13.0.2 +aws.organization.delegatedAdministrator.delegatedServices 13.0.2 +aws.organization.delegatedAdministrator.delegationEnabledDate 13.0.2 +aws.organization.delegatedAdministrator.email 13.0.2 +aws.organization.delegatedAdministrator.joinedMethod 13.0.2 +aws.organization.delegatedAdministrator.joinedTimestamp 13.0.2 +aws.organization.delegatedAdministrator.name 13.0.2 +aws.organization.delegatedAdministrator.status 13.0.2 +aws.organization.delegatedAdministrators 13.0.2 +aws.organization.delegatedService 13.0.2 +aws.organization.delegatedService.delegationEnabledDate 13.0.2 +aws.organization.delegatedService.servicePrincipal 13.0.2 aws.organization.featureSet 11.15.2 aws.organization.id 11.15.2 aws.organization.masterAccountEmail 11.15.2 @@ -2895,6 +3054,23 @@ aws.s3.buckets 11.15.2 aws.s3control 11.15.2 aws.s3control.accountPublicAccessBlock 11.15.2 aws.sagemaker 11.15.2 +aws.sagemaker.domain 13.0.2 +aws.sagemaker.domain.appNetworkAccessType 13.0.2 +aws.sagemaker.domain.arn 13.0.2 +aws.sagemaker.domain.authMode 13.0.2 +aws.sagemaker.domain.createdAt 13.0.2 +aws.sagemaker.domain.defaultUserSettings 13.0.2 +aws.sagemaker.domain.domainId 13.0.2 +aws.sagemaker.domain.homeEfsFileSystemId 13.0.2 +aws.sagemaker.domain.kmsKey 13.0.2 +aws.sagemaker.domain.lastModifiedAt 13.0.2 +aws.sagemaker.domain.name 13.0.2 +aws.sagemaker.domain.region 13.0.2 +aws.sagemaker.domain.status 13.0.2 +aws.sagemaker.domain.tags 13.0.2 +aws.sagemaker.domain.url 13.0.2 +aws.sagemaker.domain.vpc 13.0.2 +aws.sagemaker.domains 13.0.2 aws.sagemaker.endpoint 11.15.2 aws.sagemaker.endpoint.arn 11.15.2 aws.sagemaker.endpoint.config 11.15.2 @@ -2905,6 +3081,17 @@ aws.sagemaker.endpoint.region 11.15.2 aws.sagemaker.endpoint.status 11.16.1 aws.sagemaker.endpoint.tags 11.15.2 aws.sagemaker.endpoints 11.15.2 +aws.sagemaker.model 13.0.2 +aws.sagemaker.model.arn 13.0.2 +aws.sagemaker.model.createdAt 13.0.2 +aws.sagemaker.model.enableNetworkIsolation 13.0.2 +aws.sagemaker.model.iamRole 13.0.2 +aws.sagemaker.model.name 13.0.2 +aws.sagemaker.model.primaryContainer 13.0.2 +aws.sagemaker.model.region 13.0.2 +aws.sagemaker.model.tags 13.0.2 +aws.sagemaker.model.vpcConfig 13.0.2 +aws.sagemaker.models 13.0.2 aws.sagemaker.notebookInstances 11.15.2 aws.sagemaker.notebookinstance 11.15.2 aws.sagemaker.notebookinstance.arn 11.15.2 @@ -2923,6 +3110,60 @@ aws.sagemaker.notebookinstancedetails.kmsKey 11.15.2 aws.sagemaker.notebookinstancedetails.minimumInstanceMetadataServiceVersion 11.15.2 aws.sagemaker.notebookinstancedetails.rootAccess 11.15.2 aws.sagemaker.notebookinstancedetails.subnet 11.15.2 +aws.sagemaker.pipeline 13.0.2 +aws.sagemaker.pipeline.arn 13.0.2 +aws.sagemaker.pipeline.createdAt 13.0.2 +aws.sagemaker.pipeline.definition 13.0.2 +aws.sagemaker.pipeline.description 13.0.2 +aws.sagemaker.pipeline.displayName 13.0.2 +aws.sagemaker.pipeline.iamRole 13.0.2 +aws.sagemaker.pipeline.lastExecutionTime 13.0.2 +aws.sagemaker.pipeline.lastModifiedAt 13.0.2 +aws.sagemaker.pipeline.name 13.0.2 +aws.sagemaker.pipeline.parallelismConfiguration 13.0.2 +aws.sagemaker.pipeline.pipelineStatus 13.0.2 +aws.sagemaker.pipeline.region 13.0.2 +aws.sagemaker.pipeline.tags 13.0.2 +aws.sagemaker.pipelines 13.0.2 +aws.sagemaker.processingJobs 13.0.2 +aws.sagemaker.processingjob 13.0.2 +aws.sagemaker.processingjob.arn 13.0.2 +aws.sagemaker.processingjob.createdAt 13.0.2 +aws.sagemaker.processingjob.enableInterContainerTrafficEncryption 13.0.2 +aws.sagemaker.processingjob.enableNetworkIsolation 13.0.2 +aws.sagemaker.processingjob.environment 13.0.2 +aws.sagemaker.processingjob.exitMessage 13.0.2 +aws.sagemaker.processingjob.failureReason 13.0.2 +aws.sagemaker.processingjob.iamRole 13.0.2 +aws.sagemaker.processingjob.lastModifiedAt 13.0.2 +aws.sagemaker.processingjob.name 13.0.2 +aws.sagemaker.processingjob.processingEndTime 13.0.2 +aws.sagemaker.processingjob.processingResources 13.0.2 +aws.sagemaker.processingjob.region 13.0.2 +aws.sagemaker.processingjob.status 13.0.2 +aws.sagemaker.processingjob.tags 13.0.2 +aws.sagemaker.processingjob.vpcConfig 13.0.2 +aws.sagemaker.trainingJobs 13.0.2 +aws.sagemaker.trainingjob 13.0.2 +aws.sagemaker.trainingjob.algorithmSpecification 13.0.2 +aws.sagemaker.trainingjob.arn 13.0.2 +aws.sagemaker.trainingjob.billableTimeInSeconds 13.0.2 +aws.sagemaker.trainingjob.createdAt 13.0.2 +aws.sagemaker.trainingjob.enableInterContainerTrafficEncryption 13.0.2 +aws.sagemaker.trainingjob.enableNetworkIsolation 13.0.2 +aws.sagemaker.trainingjob.failureReason 13.0.2 +aws.sagemaker.trainingjob.hyperParameters 13.0.2 +aws.sagemaker.trainingjob.iamRole 13.0.2 +aws.sagemaker.trainingjob.lastModifiedAt 13.0.2 +aws.sagemaker.trainingjob.name 13.0.2 +aws.sagemaker.trainingjob.outputDataConfig 13.0.2 +aws.sagemaker.trainingjob.region 13.0.2 +aws.sagemaker.trainingjob.resourceConfig 13.0.2 +aws.sagemaker.trainingjob.status 13.0.2 +aws.sagemaker.trainingjob.stoppingCondition 13.0.2 +aws.sagemaker.trainingjob.tags 13.0.2 +aws.sagemaker.trainingjob.trainingEndTime 13.0.2 +aws.sagemaker.trainingjob.vpcConfig 13.0.2 aws.secretsmanager 11.15.2 aws.secretsmanager.secret 11.15.2 aws.secretsmanager.secret.arn 11.15.2 @@ -2951,6 +3192,14 @@ aws.securityhub.hub.region 11.15.2 aws.securityhub.hub.subscribedAt 11.15.2 aws.securityhub.hubs 11.15.2 aws.shield 11.16.1 +aws.shield.drtAccess 13.0.2 +aws.shield.drtAccess.iamRole 13.0.2 +aws.shield.drtAccess.logBucketList 13.0.2 +aws.shield.emergencyContact 13.0.2 +aws.shield.emergencyContact.contactNotes 13.0.2 +aws.shield.emergencyContact.emailAddress 13.0.2 +aws.shield.emergencyContact.phoneNumber 13.0.2 +aws.shield.emergencyContacts 13.0.2 aws.shield.protection 11.16.1 aws.shield.protection.applicationLayerAutomaticResponseConfiguration 11.16.1 aws.shield.protection.arn 11.16.1 diff --git a/providers/aws/resources/aws_account.go b/providers/aws/resources/aws_account.go index c1857cf6bb..3471339acb 100644 --- a/providers/aws/resources/aws_account.go +++ b/providers/aws/resources/aws_account.go @@ -301,3 +301,97 @@ func (a *mqlAwsAccountAlternateContact) id() (string, error) { func initAwsAccountAlternateContact(runtime *plugin.Runtime, args map[string]*llx.RawData) (map[string]*llx.RawData, plugin.Resource, error) { return args, nil, nil } + +type mqlAwsOrganizationDelegatedAdministratorInternal struct { + cacheAccountId string +} + +func (a *mqlAwsOrganization) delegatedAdministrators() ([]any, error) { + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + client := conn.Organizations("") + ctx := context.Background() + + res := []any{} + paginator := organizations.NewListDelegatedAdministratorsPaginator(client, &organizations.ListDelegatedAdministratorsInput{}) + for paginator.HasMorePages() { + page, err := paginator.NextPage(ctx) + if err != nil { + if Is400AccessDeniedError(err) { + return []any{}, nil + } + return nil, err + } + for _, da := range page.DelegatedAdministrators { + mqlDA, err := CreateResource(a.MqlRuntime, "aws.organization.delegatedAdministrator", + map[string]*llx.RawData{ + "arn": llx.StringDataPtr(da.Arn), + "accountId": llx.StringDataPtr(da.Id), + "name": llx.StringDataPtr(da.Name), + "email": llx.StringDataPtr(da.Email), + "status": llx.StringData(string(da.Status)), + "joinedMethod": llx.StringData(string(da.JoinedMethod)), + "joinedTimestamp": llx.TimeDataPtr(da.JoinedTimestamp), + "delegationEnabledDate": llx.TimeDataPtr(da.DelegationEnabledDate), + }) + if err != nil { + return nil, err + } + mqlDATyped := mqlDA.(*mqlAwsOrganizationDelegatedAdministrator) + mqlDATyped.cacheAccountId = aws.ToString(da.Id) + res = append(res, mqlDATyped) + } + } + return res, nil +} + +func (a *mqlAwsOrganizationDelegatedAdministrator) id() (string, error) { + return a.Arn.Data, a.Arn.Error +} + +func (a *mqlAwsOrganizationDelegatedAdministrator) delegatedServices() ([]any, error) { + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + client := conn.Organizations("") + ctx := context.Background() + + accountId := a.cacheAccountId + res := []any{} + paginator := organizations.NewListDelegatedServicesForAccountPaginator(client, &organizations.ListDelegatedServicesForAccountInput{ + AccountId: &accountId, + }) + for paginator.HasMorePages() { + page, err := paginator.NextPage(ctx) + if err != nil { + if Is400AccessDeniedError(err) { + return []any{}, nil + } + return nil, err + } + for _, ds := range page.DelegatedServices { + mqlDS, err := CreateResource(a.MqlRuntime, "aws.organization.delegatedService", + map[string]*llx.RawData{ + "servicePrincipal": llx.StringDataPtr(ds.ServicePrincipal), + "delegationEnabledDate": llx.TimeDataPtr(ds.DelegationEnabledDate), + }) + if err != nil { + return nil, err + } + res = append(res, mqlDS) + } + } + return res, nil +} + +func (a *mqlAwsOrganizationDelegatedService) id() (string, error) { + return a.ServicePrincipal.Data + "/" + a.DelegationEnabledDate.Data.String(), nil +} + +func (a *mqlAwsOrganizationDelegatedAdministrator) account() (*mqlAwsAccount, error) { + mqlAccount, err := NewResource(a.MqlRuntime, "aws.account", + map[string]*llx.RawData{ + "id": llx.StringData(a.cacheAccountId), + }) + if err != nil { + return nil, err + } + return mqlAccount.(*mqlAwsAccount), nil +} diff --git a/providers/aws/resources/aws_config.go b/providers/aws/resources/aws_config.go index f513080f99..2c56441435 100644 --- a/providers/aws/resources/aws_config.go +++ b/providers/aws/resources/aws_config.go @@ -9,6 +9,7 @@ import ( "github.com/aws/aws-sdk-go-v2/service/configservice" "github.com/rs/zerolog/log" "go.mondoo.com/mql/v13/llx" + "go.mondoo.com/mql/v13/providers-sdk/v1/plugin" "go.mondoo.com/mql/v13/providers-sdk/v1/util/convert" "go.mondoo.com/mql/v13/providers-sdk/v1/util/jobpool" "go.mondoo.com/mql/v13/providers/aws/connection" @@ -90,7 +91,9 @@ func (a *mqlAwsConfig) getRecorders(conn *connection.AwsConnection) []*jobpool.J if err != nil { return nil, err } - res = append(res, mqlRecorder) + mqlRecorderRes := mqlRecorder.(*mqlAwsConfigRecorder) + mqlRecorderRes.cacheRoleArn = r.RoleARN + res = append(res, mqlRecorderRes) } return jobpool.JobResult(res), nil } @@ -99,6 +102,23 @@ func (a *mqlAwsConfig) getRecorders(conn *connection.AwsConnection) []*jobpool.J return tasks } +type mqlAwsConfigRecorderInternal struct { + cacheRoleArn *string +} + +func (a *mqlAwsConfigRecorder) iamRole() (*mqlAwsIamRole, error) { + if a.cacheRoleArn == nil || *a.cacheRoleArn == "" { + a.IamRole.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + res, err := NewResource(a.MqlRuntime, "aws.iam.role", + map[string]*llx.RawData{"arn": llx.StringDataPtr(a.cacheRoleArn)}) + if err != nil { + return nil, err + } + return res.(*mqlAwsIamRole), nil +} + func (a *mqlAwsConfig) deliveryChannels() ([]any, error) { conn := a.MqlRuntime.Connection.(*connection.AwsConnection) res := []any{} diff --git a/providers/aws/resources/aws_eventbridge.go b/providers/aws/resources/aws_eventbridge.go index d21768730e..93c62fa15f 100644 --- a/providers/aws/resources/aws_eventbridge.go +++ b/providers/aws/resources/aws_eventbridge.go @@ -10,6 +10,7 @@ import ( eventbridge_types "github.com/aws/aws-sdk-go-v2/service/eventbridge/types" "github.com/rs/zerolog/log" "go.mondoo.com/mql/v13/llx" + "go.mondoo.com/mql/v13/providers-sdk/v1/plugin" "go.mondoo.com/mql/v13/providers-sdk/v1/util/convert" "go.mondoo.com/mql/v13/providers-sdk/v1/util/jobpool" "go.mondoo.com/mql/v13/providers/aws/connection" @@ -174,7 +175,9 @@ func (a *mqlAwsEventbridgeEventBus) rules() ([]any, error) { if err != nil { return nil, err } - res = append(res, mqlRule) + mqlRuleRes := mqlRule.(*mqlAwsEventbridgeRule) + mqlRuleRes.cacheRoleArn = rule.RoleArn + res = append(res, mqlRuleRes) } if resp.NextToken == nil { @@ -185,6 +188,23 @@ func (a *mqlAwsEventbridgeEventBus) rules() ([]any, error) { return res, nil } +type mqlAwsEventbridgeRuleInternal struct { + cacheRoleArn *string +} + +func (a *mqlAwsEventbridgeRule) iamRole() (*mqlAwsIamRole, error) { + if a.cacheRoleArn == nil || *a.cacheRoleArn == "" { + a.IamRole.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + res, err := NewResource(a.MqlRuntime, "aws.iam.role", + map[string]*llx.RawData{"arn": llx.StringDataPtr(a.cacheRoleArn)}) + if err != nil { + return nil, err + } + return res.(*mqlAwsIamRole), nil +} + func (a *mqlAwsEventbridgeRule) tags() (map[string]any, error) { arn := a.Arn.Data region := a.Region.Data diff --git a/providers/aws/resources/aws_iam_accessanalyzer.go b/providers/aws/resources/aws_iam_accessanalyzer.go index 5da49eb50d..aa9821bb41 100644 --- a/providers/aws/resources/aws_iam_accessanalyzer.go +++ b/providers/aws/resources/aws_iam_accessanalyzer.go @@ -97,12 +97,8 @@ func (a *mqlAwsIamAccessAnalyzer) getAnalyzers(conn *connection.AwsConnection) [ return tasks } -func (a *mqlAwsIamAccessAnalyzer) findings() ([]any, error) { - conn := a.MqlRuntime.Connection.(*connection.AwsConnection) - +func (a *mqlAwsIamAccessAnalyzer) getAnalyzerMap() (map[string][]string, error) { analyzerMap := map[string][]string{} - - // we need to retrieve all the analyzers first and we group them by region to request all findings analyzerList := a.GetAnalyzers() if analyzerList.Error != nil { return nil, analyzerList.Error @@ -112,27 +108,37 @@ func (a *mqlAwsIamAccessAnalyzer) findings() ([]any, error) { if !ok { return nil, errors.New("error casting to analyzer instance") } - region := analyzerInstance.GetRegion().Data if analyzerMap[region] == nil { analyzerMap[region] = []string{} } - analyzerMap[region] = append(analyzerMap[region], analyzerInstance.GetArn().Data) } + return analyzerMap, nil +} - // collect the list of findings - res := []any{} +func (a *mqlAwsIamAccessAnalyzer) findings() ([]any, error) { + return a.listFindingsWithStatus("ACTIVE") +} - // start ppol and run the jobs - poolOfJobs := jobpool.CreatePool(a.listFindings(conn, analyzerMap), 5) +func (a *mqlAwsIamAccessAnalyzer) archivedFindings() ([]any, error) { + return a.listFindingsWithStatus("ARCHIVED") +} + +func (a *mqlAwsIamAccessAnalyzer) listFindingsWithStatus(status string) ([]any, error) { + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + analyzerMap, err := a.getAnalyzerMap() + if err != nil { + return nil, err + } + + res := []any{} + poolOfJobs := jobpool.CreatePool(a.listFindings(conn, analyzerMap, status), 5) poolOfJobs.Run() - // check for errors if poolOfJobs.HasErrors() { return nil, poolOfJobs.GetErrors() } - for i := range poolOfJobs.Jobs { results := poolOfJobs.Jobs[i].Result.([]any) res = append(res, results...) @@ -140,7 +146,7 @@ func (a *mqlAwsIamAccessAnalyzer) findings() ([]any, error) { return res, nil } -func (a *mqlAwsIamAccessAnalyzer) listFindings(conn *connection.AwsConnection, analyzerMap map[string][]string) []*jobpool.Job { +func (a *mqlAwsIamAccessAnalyzer) listFindings(conn *connection.AwsConnection, analyzerMap map[string][]string, status string) []*jobpool.Job { tasks := make([]*jobpool.Job, 0) regions, err := conn.Regions() if err != nil { @@ -154,14 +160,13 @@ func (a *mqlAwsIamAccessAnalyzer) listFindings(conn *connection.AwsConnection, a analyzerList := analyzerMap[region] for _, analyzerArn := range analyzerList { - ctx := context.Background() params := &accessanalyzer.ListFindingsV2Input{ AnalyzerArn: aws.String(analyzerArn), Filter: map[string]aatypes.Criterion{ "status": { - Eq: []string{"ACTIVE"}, + Eq: []string{status}, }, }, } @@ -173,11 +178,11 @@ func (a *mqlAwsIamAccessAnalyzer) listFindings(conn *connection.AwsConnection, a log.Warn().Str("region", region).Msg("error accessing region for AWS API") return res, nil } - log.Error().Err(err).Str("region", region).Msg("error listing analyzers") + log.Error().Err(err).Str("region", region).Msg("error listing findings") return nil, err } for _, finding := range findings.Findings { - mqlIamAnalyzserFindings, err := CreateResource(a.MqlRuntime, "aws.iam.accessanalyzer.finding", + mqlFinding, err := CreateResource(a.MqlRuntime, "aws.iam.accessanalyzer.finding", map[string]*llx.RawData{ "__id": llx.StringDataPtr(finding.Id), "id": llx.StringDataPtr(finding.Id), @@ -196,7 +201,7 @@ func (a *mqlAwsIamAccessAnalyzer) listFindings(conn *connection.AwsConnection, a if err != nil { return nil, err } - res = append(res, mqlIamAnalyzserFindings) + res = append(res, mqlFinding) } } } diff --git a/providers/aws/resources/aws_inspector.go b/providers/aws/resources/aws_inspector.go index ac08c0f95a..f4d0d49787 100644 --- a/providers/aws/resources/aws_inspector.go +++ b/providers/aws/resources/aws_inspector.go @@ -203,3 +203,271 @@ func (a *mqlAwsInspectorCoverage) lambda() (*mqlAwsLambdaFunction, error) { a.Lambda.State = plugin.StateIsSet | plugin.StateIsNull return nil, nil } + +// ============================================================ +// Inspector Findings +// ============================================================ + +type mqlAwsInspectorFindingInternal struct { + cacheFinding *types.Finding +} + +func (a *mqlAwsInspectorFinding) id() (string, error) { + return a.Arn.Data, nil +} + +func (a *mqlAwsInspector) findings() ([]any, error) { + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + res := []any{} + poolOfJobs := jobpool.CreatePool(a.getFindings(conn), 5) + poolOfJobs.Run() + + if poolOfJobs.HasErrors() { + return nil, poolOfJobs.GetErrors() + } + for i := range poolOfJobs.Jobs { + res = append(res, poolOfJobs.Jobs[i].Result.([]any)...) + } + return res, nil +} + +func (a *mqlAwsInspector) getFindings(conn *connection.AwsConnection) []*jobpool.Job { + tasks := make([]*jobpool.Job, 0) + regions, err := conn.Regions() + if err != nil { + return []*jobpool.Job{{Err: err}} + } + + for _, region := range regions { + f := func() (jobpool.JobResult, error) { + svc := conn.Inspector(region) + ctx := context.Background() + res := []any{} + + paginator := inspector2.NewListFindingsPaginator(svc, &inspector2.ListFindingsInput{}) + for paginator.HasMorePages() { + page, err := paginator.NextPage(ctx) + if err != nil { + if Is400AccessDeniedError(err) { + log.Warn().Str("region", region).Msg("error accessing region for AWS API") + return res, nil + } + return nil, err + } + for i := range page.Findings { + finding := page.Findings[i] + if finding.FindingArn == nil { + continue + } + + var inspectorScore float64 + if finding.InspectorScore != nil { + inspectorScore = *finding.InspectorScore + } + + mqlFinding, err := CreateResource(a.MqlRuntime, "aws.inspector.finding", + map[string]*llx.RawData{ + "arn": llx.StringDataPtr(finding.FindingArn), + "accountId": llx.StringDataPtr(finding.AwsAccountId), + "title": llx.StringDataPtr(finding.Title), + "description": llx.StringDataPtr(finding.Description), + "severity": llx.StringData(string(finding.Severity)), + "status": llx.StringData(string(finding.Status)), + "type": llx.StringData(string(finding.Type)), + "firstObservedAt": llx.TimeDataPtr(finding.FirstObservedAt), + "lastObservedAt": llx.TimeDataPtr(finding.LastObservedAt), + "updatedAt": llx.TimeDataPtr(finding.UpdatedAt), + "inspectorScore": llx.FloatData(inspectorScore), + "exploitAvailable": llx.StringData(string(finding.ExploitAvailable)), + "fixAvailable": llx.StringData(string(finding.FixAvailable)), + "region": llx.StringData(region), + }) + if err != nil { + return nil, err + } + mqlFinding.(*mqlAwsInspectorFinding).cacheFinding = &finding + res = append(res, mqlFinding) + } + } + return jobpool.JobResult(res), nil + } + tasks = append(tasks, jobpool.NewJob(f)) + } + return tasks +} + +func (a *mqlAwsInspectorFinding) remediation() (string, error) { + if a.cacheFinding != nil && a.cacheFinding.Remediation != nil && a.cacheFinding.Remediation.Recommendation != nil { + return convert.ToValue(a.cacheFinding.Remediation.Recommendation.Text), nil + } + return "", nil +} + +func (a *mqlAwsInspectorFinding) remediationUrl() (string, error) { + if a.cacheFinding != nil && a.cacheFinding.Remediation != nil && a.cacheFinding.Remediation.Recommendation != nil { + return convert.ToValue(a.cacheFinding.Remediation.Recommendation.Url), nil + } + return "", nil +} + +func (a *mqlAwsInspectorFinding) packageVulnerability() (*mqlAwsInspectorFindingPackageVulnerability, error) { + if a.cacheFinding == nil || a.cacheFinding.PackageVulnerabilityDetails == nil { + a.PackageVulnerability.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + pvd := a.cacheFinding.PackageVulnerabilityDetails + + findingArn := a.Arn.Data + + cvssScores := make([]any, 0, len(pvd.Cvss)) + for _, c := range pvd.Cvss { + mqlCvss, err := CreateResource(a.MqlRuntime, "aws.inspector.finding.packageVulnerability.cvssScore", + map[string]*llx.RawData{ + "__id": llx.StringData(fmt.Sprintf("%s/cvss/%s/%s/%.1f", findingArn, convert.ToValue(c.Source), convert.ToValue(c.Version), derefFloat64(c.BaseScore))), + "baseScore": llx.FloatData(derefFloat64(c.BaseScore)), + "scoringVector": llx.StringDataPtr(c.ScoringVector), + "source": llx.StringDataPtr(c.Source), + "version": llx.StringDataPtr(c.Version), + }) + if err != nil { + return nil, err + } + cvssScores = append(cvssScores, mqlCvss) + } + + vulnPkgs := make([]any, 0, len(pvd.VulnerablePackages)) + for i := range pvd.VulnerablePackages { + pkg := pvd.VulnerablePackages[i] + mqlPkg, err := CreateResource(a.MqlRuntime, "aws.inspector.finding.vulnerablePackage", + map[string]*llx.RawData{ + "__id": llx.StringData(fmt.Sprintf("%s/pkg/%s/%s/%s", findingArn, convert.ToValue(pkg.Name), convert.ToValue(pkg.Version), convert.ToValue(pkg.Arch))), + "name": llx.StringDataPtr(pkg.Name), + "version": llx.StringDataPtr(pkg.Version), + "arch": llx.StringDataPtr(pkg.Arch), + "epoch": llx.IntData(int64(pkg.Epoch)), + "packageManager": llx.StringData(string(pkg.PackageManager)), + "filePath": llx.StringDataPtr(pkg.FilePath), + "fixedInVersion": llx.StringDataPtr(pkg.FixedInVersion), + "remediation": llx.StringDataPtr(pkg.Remediation), + "release": llx.StringDataPtr(pkg.Release), + }) + if err != nil { + return nil, err + } + vulnPkgs = append(vulnPkgs, mqlPkg) + } + + mqlPvd, err := CreateResource(a.MqlRuntime, "aws.inspector.finding.packageVulnerability", + map[string]*llx.RawData{ + "__id": llx.StringData(findingArn + "/packageVulnerability"), + "vulnerabilityId": llx.StringDataPtr(pvd.VulnerabilityId), + "source": llx.StringDataPtr(pvd.Source), + "sourceUrl": llx.StringDataPtr(pvd.SourceUrl), + "vendorSeverity": llx.StringDataPtr(pvd.VendorSeverity), + "vendorCreatedAt": llx.TimeDataPtr(pvd.VendorCreatedAt), + "vendorUpdatedAt": llx.TimeDataPtr(pvd.VendorUpdatedAt), + "cvssScores": llx.ArrayData(cvssScores, llxtypes.Resource("aws.inspector.finding.packageVulnerability.cvssScore")), + "referenceUrls": llx.ArrayData(llx.TArr2Raw(pvd.ReferenceUrls), "string"), + "relatedVulnerabilities": llx.ArrayData(llx.TArr2Raw(pvd.RelatedVulnerabilities), "string"), + "vulnerablePackages": llx.ArrayData(vulnPkgs, "aws.inspector.finding.vulnerablePackage"), + }) + if err != nil { + return nil, err + } + return mqlPvd.(*mqlAwsInspectorFindingPackageVulnerability), nil +} + +func (a *mqlAwsInspectorFindingPackageVulnerability) id() (string, error) { + return a.VulnerabilityId.Data + "/" + a.Source.Data, nil +} + +func (a *mqlAwsInspectorFindingPackageVulnerabilityCvssScore) id() (string, error) { + return fmt.Sprintf("%s/%s/%.1f", a.Source.Data, a.Version.Data, a.BaseScore.Data), nil +} + +func derefFloat64(p *float64) float64 { + if p == nil { + return 0 + } + return *p +} + +func (a *mqlAwsInspectorFindingVulnerablePackage) id() (string, error) { + return a.Name.Data + "/" + a.Version.Data + "/" + a.Arch.Data, nil +} + +func (a *mqlAwsInspectorFinding) networkReachability() (*mqlAwsInspectorFindingNetworkReachability, error) { + if a.cacheFinding == nil || a.cacheFinding.NetworkReachabilityDetails == nil { + a.NetworkReachability.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + nrd := a.cacheFinding.NetworkReachabilityDetails + + var portStart, portEnd int64 + if nrd.OpenPortRange != nil { + portStart = int64(convert.ToValue(nrd.OpenPortRange.Begin)) + portEnd = int64(convert.ToValue(nrd.OpenPortRange.End)) + } + + var networkPath []any + if nrd.NetworkPath != nil { + path, err := convert.JsonToDictSlice(nrd.NetworkPath.Steps) + if err != nil { + return nil, err + } + networkPath = path + } + + findingArn := a.Arn.Data + mqlNr, err := CreateResource(a.MqlRuntime, "aws.inspector.finding.networkReachability", + map[string]*llx.RawData{ + "__id": llx.StringData(findingArn + "/networkReachability"), + "protocol": llx.StringData(string(nrd.Protocol)), + "openPortStart": llx.IntData(portStart), + "openPortEnd": llx.IntData(portEnd), + "networkPath": llx.ArrayData(networkPath, "dict"), + }) + if err != nil { + return nil, err + } + return mqlNr.(*mqlAwsInspectorFindingNetworkReachability), nil +} + +func (a *mqlAwsInspectorFindingNetworkReachability) id() (string, error) { + return fmt.Sprintf("%s/%d/%d", a.Protocol.Data, a.OpenPortStart.Data, a.OpenPortEnd.Data), nil +} + +func (a *mqlAwsInspectorFinding) codeVulnerability() (*mqlAwsInspectorFindingCodeVulnerability, error) { + if a.cacheFinding == nil || a.cacheFinding.CodeVulnerabilityDetails == nil { + a.CodeVulnerability.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + cvd := a.cacheFinding.CodeVulnerabilityDetails + + filePath, err := convert.JsonToDict(cvd.FilePath) + if err != nil { + return nil, err + } + + findingArn := a.Arn.Data + mqlCv, err := CreateResource(a.MqlRuntime, "aws.inspector.finding.codeVulnerability", + map[string]*llx.RawData{ + "__id": llx.StringData(findingArn + "/codeVulnerability"), + "cwes": llx.ArrayData(llx.TArr2Raw(cvd.Cwes), "string"), + "detectorId": llx.StringDataPtr(cvd.DetectorId), + "detectorName": llx.StringDataPtr(cvd.DetectorName), + "detectorTags": llx.ArrayData(llx.TArr2Raw(cvd.DetectorTags), "string"), + "filePath": llx.DictData(filePath), + "referenceUrls": llx.ArrayData(llx.TArr2Raw(cvd.ReferenceUrls), "string"), + "ruleId": llx.StringDataPtr(cvd.RuleId), + "sourceLambdaLayerArn": llx.StringDataPtr(cvd.SourceLambdaLayerArn), + }) + if err != nil { + return nil, err + } + return mqlCv.(*mqlAwsInspectorFindingCodeVulnerability), nil +} + +func (a *mqlAwsInspectorFindingCodeVulnerability) id() (string, error) { + return a.DetectorId.Data + "/" + a.RuleId.Data, nil +} diff --git a/providers/aws/resources/aws_kinesis.go b/providers/aws/resources/aws_kinesis.go index eb47b0d488..703fe586bf 100644 --- a/providers/aws/resources/aws_kinesis.go +++ b/providers/aws/resources/aws_kinesis.go @@ -17,7 +17,6 @@ import ( "go.mondoo.com/mql/v13/providers-sdk/v1/util/convert" "go.mondoo.com/mql/v13/providers-sdk/v1/util/jobpool" "go.mondoo.com/mql/v13/providers/aws/connection" - "go.mondoo.com/mql/v13/types" ) func (a *mqlAwsKinesis) id() (string, error) { @@ -410,6 +409,11 @@ func (a *mqlAwsKinesis) getFirehoseDeliveryStreams(conn *connection.AwsConnectio return tasks } +type mqlAwsKinesisFirehoseDeliveryStreamInternal struct { + cacheDestinations []firehose_types.DestinationDescription + cacheRegion string +} + func newMqlAwsKinesisFirehoseDeliveryStream(runtime *plugin.Runtime, region string, stream *firehose_types.DeliveryStreamDescription) (*mqlAwsKinesisFirehoseDeliveryStream, error) { encryption, err := convert.JsonToDict(stream.DeliveryStreamEncryptionConfiguration) if err != nil { @@ -421,11 +425,6 @@ func newMqlAwsKinesisFirehoseDeliveryStream(runtime *plugin.Runtime, region stri return nil, err } - destinations, err := convert.JsonToDictSlice(stream.Destinations) - if err != nil { - return nil, err - } - resource, err := CreateResource(runtime, "aws.kinesis.firehoseDeliveryStream", map[string]*llx.RawData{ "__id": llx.StringDataPtr(stream.DeliveryStreamARN), @@ -435,14 +434,534 @@ func newMqlAwsKinesisFirehoseDeliveryStream(runtime *plugin.Runtime, region stri "deliveryStreamType": llx.StringData(string(stream.DeliveryStreamType)), "encryption": llx.DictData(encryption), "source": llx.DictData(source), - "destinations": llx.ArrayData(destinations, types.Any), "createdAt": llx.TimeDataPtr(stream.CreateTimestamp), "region": llx.StringData(region), }) if err != nil { return nil, err } - return resource.(*mqlAwsKinesisFirehoseDeliveryStream), nil + mqlStream := resource.(*mqlAwsKinesisFirehoseDeliveryStream) + mqlStream.cacheDestinations = stream.Destinations + mqlStream.cacheRegion = region + return mqlStream, nil +} + +func (a *mqlAwsKinesisFirehoseDeliveryStream) destinations() ([]any, error) { + res := []any{} + streamArn := a.Arn.Data + region := a.cacheRegion + + for i := range a.cacheDestinations { + dest := a.cacheDestinations[i] + destId := convert.ToValue(dest.DestinationId) + + // Determine destination type + destType := "unknown" + if dest.ExtendedS3DestinationDescription != nil { + destType = "s3" + } else if dest.RedshiftDestinationDescription != nil { + destType = "redshift" + } else if dest.AmazonopensearchserviceDestinationDescription != nil { + destType = "opensearch" + } else if dest.ElasticsearchDestinationDescription != nil { + destType = "elasticsearch" + } else if dest.SplunkDestinationDescription != nil { + destType = "splunk" + } else if dest.HttpEndpointDestinationDescription != nil { + destType = "httpEndpoint" + } + + mqlDest, err := CreateResource(a.MqlRuntime, "aws.kinesis.firehoseDeliveryStream.destination", + map[string]*llx.RawData{ + "__id": llx.StringData(streamArn + "/destination/" + destId), + "destinationId": llx.StringData(destId), + "type": llx.StringData(destType), + "region": llx.StringData(region), + }) + if err != nil { + return nil, err + } + mqlDest.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).cacheDest = &dest + mqlDest.(*mqlAwsKinesisFirehoseDeliveryStreamDestination).cacheStreamArn = streamArn + res = append(res, mqlDest) + } + return res, nil +} + +type mqlAwsKinesisFirehoseDeliveryStreamDestinationInternal struct { + cacheDest *firehose_types.DestinationDescription + cacheStreamArn string +} + +func (a *mqlAwsKinesisFirehoseDeliveryStreamDestination) id() (string, error) { + return a.cacheStreamArn + "/destination/" + a.DestinationId.Data, nil +} + +func (a *mqlAwsKinesisFirehoseDeliveryStreamDestination) s3() (*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3, error) { + if a.cacheDest == nil || a.cacheDest.ExtendedS3DestinationDescription == nil { + a.S3.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + s := a.cacheDest.ExtendedS3DestinationDescription + streamArn := a.cacheStreamArn + destId := a.DestinationId.Data + region := a.Region.Data + + var bufSize, bufInterval int64 + if s.BufferingHints != nil { + if s.BufferingHints.SizeInMBs != nil { + bufSize = int64(*s.BufferingHints.SizeInMBs) + } + if s.BufferingHints.IntervalInSeconds != nil { + bufInterval = int64(*s.BufferingHints.IntervalInSeconds) + } + } + + s3Id := streamArn + "/destination/" + destId + "/s3" + cwLogging, err := newMqlCloudWatchLogging(a.MqlRuntime, s3Id, s.CloudWatchLoggingOptions) + if err != nil { + return nil, err + } + dfConversion, _ := convert.JsonToDict(s.DataFormatConversionConfiguration) + dynPartitioning, _ := convert.JsonToDict(s.DynamicPartitioningConfiguration) + processingConfig, _ := convert.JsonToDict(s.ProcessingConfiguration) + + mqlS3, err := CreateResource(a.MqlRuntime, "aws.kinesis.firehoseDeliveryStream.destination.s3", + map[string]*llx.RawData{ + "__id": llx.StringData(s3Id), + "bucketArn": llx.StringDataPtr(s.BucketARN), + "compressionFormat": llx.StringData(string(s.CompressionFormat)), + "prefix": llx.StringDataPtr(s.Prefix), + "errorOutputPrefix": llx.StringDataPtr(s.ErrorOutputPrefix), + "fileExtension": llx.StringDataPtr(s.FileExtension), + "bufferingSizeInMBs": llx.IntData(bufSize), + "bufferingIntervalInSeconds": llx.IntData(bufInterval), + "s3BackupMode": llx.StringData(string(s.S3BackupMode)), + "cloudWatchLogging": llx.ResourceData(cwLogging, "aws.kinesis.firehoseDeliveryStream.cloudWatchLogging"), + "dataFormatConversion": llx.DictData(dfConversion), + "dynamicPartitioning": llx.DictData(dynPartitioning), + "processingConfiguration": llx.DictData(processingConfig), + "region": llx.StringData(region), + }) + if err != nil { + return nil, err + } + mqlS3Res := mqlS3.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationS3) + mqlS3Res.cacheRoleArn = s.RoleARN + return mqlS3Res, nil +} + +type mqlAwsKinesisFirehoseDeliveryStreamDestinationS3Internal struct { + cacheRoleArn *string +} + +func (a *mqlAwsKinesisFirehoseDeliveryStreamDestinationS3) iamRole() (*mqlAwsIamRole, error) { + if a.cacheRoleArn == nil || *a.cacheRoleArn == "" { + a.IamRole.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + res, err := NewResource(a.MqlRuntime, "aws.iam.role", + map[string]*llx.RawData{"arn": llx.StringDataPtr(a.cacheRoleArn)}) + if err != nil { + return nil, err + } + return res.(*mqlAwsIamRole), nil +} + +func (a *mqlAwsKinesisFirehoseDeliveryStreamDestinationS3) id() (string, error) { + return a.BucketArn.Data + "/" + a.Region.Data, nil +} + +func (a *mqlAwsKinesisFirehoseDeliveryStreamDestination) redshift() (*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift, error) { + if a.cacheDest == nil || a.cacheDest.RedshiftDestinationDescription == nil { + a.Redshift.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + r := a.cacheDest.RedshiftDestinationDescription + streamArn := a.cacheStreamArn + destId := a.DestinationId.Data + region := a.Region.Data + + var tableName, copyOptions string + if r.CopyCommand != nil { + tableName = convert.ToValue(r.CopyCommand.DataTableName) + copyOptions = convert.ToValue(r.CopyCommand.CopyOptions) + } + + var retryDuration int64 + if r.RetryOptions != nil && r.RetryOptions.DurationInSeconds != nil { + retryDuration = int64(*r.RetryOptions.DurationInSeconds) + } + + redshiftId := streamArn + "/destination/" + destId + "/redshift" + cwLogging, err := newMqlCloudWatchLogging(a.MqlRuntime, redshiftId, r.CloudWatchLoggingOptions) + if err != nil { + return nil, err + } + processingConfig, _ := convert.JsonToDict(r.ProcessingConfiguration) + + mqlR, err := CreateResource(a.MqlRuntime, "aws.kinesis.firehoseDeliveryStream.destination.redshift", + map[string]*llx.RawData{ + "__id": llx.StringData(redshiftId), + "clusterJdbcUrl": llx.StringDataPtr(r.ClusterJDBCURL), + "username": llx.StringDataPtr(r.Username), + "copyCommandTableName": llx.StringData(tableName), + "copyCommandOptions": llx.StringData(copyOptions), + "s3BackupMode": llx.StringData(string(r.S3BackupMode)), + "cloudWatchLogging": llx.ResourceData(cwLogging, "aws.kinesis.firehoseDeliveryStream.cloudWatchLogging"), + "processingConfiguration": llx.DictData(processingConfig), + "retryDurationInSeconds": llx.IntData(retryDuration), + "region": llx.StringData(region), + }) + if err != nil { + return nil, err + } + mqlRRes := mqlR.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift) + mqlRRes.cacheRoleArn = r.RoleARN + return mqlRRes, nil +} + +type mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshiftInternal struct { + cacheRoleArn *string +} + +func (a *mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift) iamRole() (*mqlAwsIamRole, error) { + if a.cacheRoleArn == nil || *a.cacheRoleArn == "" { + a.IamRole.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + res, err := NewResource(a.MqlRuntime, "aws.iam.role", + map[string]*llx.RawData{"arn": llx.StringDataPtr(a.cacheRoleArn)}) + if err != nil { + return nil, err + } + return res.(*mqlAwsIamRole), nil +} + +func (a *mqlAwsKinesisFirehoseDeliveryStreamDestinationRedshift) id() (string, error) { + return a.ClusterJdbcUrl.Data + "/" + a.Region.Data, nil +} + +func (a *mqlAwsKinesisFirehoseDeliveryStreamDestination) elasticsearch() (*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch, error) { + if a.cacheDest == nil || a.cacheDest.ElasticsearchDestinationDescription == nil { + a.Elasticsearch.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + e := a.cacheDest.ElasticsearchDestinationDescription + streamArn := a.cacheStreamArn + destId := a.DestinationId.Data + region := a.Region.Data + + var bufSize, bufInterval int64 + if e.BufferingHints != nil { + if e.BufferingHints.SizeInMBs != nil { + bufSize = int64(*e.BufferingHints.SizeInMBs) + } + if e.BufferingHints.IntervalInSeconds != nil { + bufInterval = int64(*e.BufferingHints.IntervalInSeconds) + } + } + + var retryDuration int64 + if e.RetryOptions != nil && e.RetryOptions.DurationInSeconds != nil { + retryDuration = int64(*e.RetryOptions.DurationInSeconds) + } + + esId := streamArn + "/destination/" + destId + "/elasticsearch" + cwLogging, err := newMqlCloudWatchLogging(a.MqlRuntime, esId, e.CloudWatchLoggingOptions) + if err != nil { + return nil, err + } + processingConfig, _ := convert.JsonToDict(e.ProcessingConfiguration) + + mqlE, err := CreateResource(a.MqlRuntime, "aws.kinesis.firehoseDeliveryStream.destination.elasticsearch", + map[string]*llx.RawData{ + "__id": llx.StringData(esId), + "domainArn": llx.StringDataPtr(e.DomainARN), + "clusterEndpoint": llx.StringDataPtr(e.ClusterEndpoint), + "indexName": llx.StringDataPtr(e.IndexName), + "indexRotationPeriod": llx.StringData(string(e.IndexRotationPeriod)), + "s3BackupMode": llx.StringData(string(e.S3BackupMode)), + "bufferingSizeInMBs": llx.IntData(bufSize), + "bufferingIntervalInSeconds": llx.IntData(bufInterval), + "cloudWatchLogging": llx.ResourceData(cwLogging, "aws.kinesis.firehoseDeliveryStream.cloudWatchLogging"), + "processingConfiguration": llx.DictData(processingConfig), + "retryDurationInSeconds": llx.IntData(retryDuration), + "region": llx.StringData(region), + }) + if err != nil { + return nil, err + } + mqlERes := mqlE.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch) + mqlERes.cacheRoleArn = e.RoleARN + return mqlERes, nil +} + +type mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearchInternal struct { + cacheRoleArn *string +} + +func (a *mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch) iamRole() (*mqlAwsIamRole, error) { + if a.cacheRoleArn == nil || *a.cacheRoleArn == "" { + a.IamRole.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + res, err := NewResource(a.MqlRuntime, "aws.iam.role", + map[string]*llx.RawData{"arn": llx.StringDataPtr(a.cacheRoleArn)}) + if err != nil { + return nil, err + } + return res.(*mqlAwsIamRole), nil +} + +func (a *mqlAwsKinesisFirehoseDeliveryStreamDestinationElasticsearch) id() (string, error) { + return a.DomainArn.Data + "/" + a.IndexName.Data, nil +} + +func (a *mqlAwsKinesisFirehoseDeliveryStreamDestination) opensearch() (*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch, error) { + if a.cacheDest == nil || a.cacheDest.AmazonopensearchserviceDestinationDescription == nil { + a.Opensearch.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + o := a.cacheDest.AmazonopensearchserviceDestinationDescription + streamArn := a.cacheStreamArn + destId := a.DestinationId.Data + region := a.Region.Data + + var bufSize, bufInterval int64 + if o.BufferingHints != nil { + if o.BufferingHints.SizeInMBs != nil { + bufSize = int64(*o.BufferingHints.SizeInMBs) + } + if o.BufferingHints.IntervalInSeconds != nil { + bufInterval = int64(*o.BufferingHints.IntervalInSeconds) + } + } + + var retryDuration int64 + if o.RetryOptions != nil && o.RetryOptions.DurationInSeconds != nil { + retryDuration = int64(*o.RetryOptions.DurationInSeconds) + } + + osId := streamArn + "/destination/" + destId + "/opensearch" + cwLogging, err := newMqlCloudWatchLogging(a.MqlRuntime, osId, o.CloudWatchLoggingOptions) + if err != nil { + return nil, err + } + processingConfig, _ := convert.JsonToDict(o.ProcessingConfiguration) + + mqlO, err := CreateResource(a.MqlRuntime, "aws.kinesis.firehoseDeliveryStream.destination.opensearch", + map[string]*llx.RawData{ + "__id": llx.StringData(osId), + "domainArn": llx.StringDataPtr(o.DomainARN), + "clusterEndpoint": llx.StringDataPtr(o.ClusterEndpoint), + "indexName": llx.StringDataPtr(o.IndexName), + "indexRotationPeriod": llx.StringData(string(o.IndexRotationPeriod)), + "s3BackupMode": llx.StringData(string(o.S3BackupMode)), + "bufferingSizeInMBs": llx.IntData(bufSize), + "bufferingIntervalInSeconds": llx.IntData(bufInterval), + "cloudWatchLogging": llx.ResourceData(cwLogging, "aws.kinesis.firehoseDeliveryStream.cloudWatchLogging"), + "processingConfiguration": llx.DictData(processingConfig), + "retryDurationInSeconds": llx.IntData(retryDuration), + "region": llx.StringData(region), + }) + if err != nil { + return nil, err + } + mqlORes := mqlO.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch) + mqlORes.cacheRoleArn = o.RoleARN + return mqlORes, nil +} + +type mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearchInternal struct { + cacheRoleArn *string +} + +func (a *mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch) iamRole() (*mqlAwsIamRole, error) { + if a.cacheRoleArn == nil || *a.cacheRoleArn == "" { + a.IamRole.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + res, err := NewResource(a.MqlRuntime, "aws.iam.role", + map[string]*llx.RawData{"arn": llx.StringDataPtr(a.cacheRoleArn)}) + if err != nil { + return nil, err + } + return res.(*mqlAwsIamRole), nil +} + +func (a *mqlAwsKinesisFirehoseDeliveryStreamDestinationOpensearch) id() (string, error) { + return a.DomainArn.Data + "/" + a.IndexName.Data, nil +} + +func (a *mqlAwsKinesisFirehoseDeliveryStreamDestination) splunk() (*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk, error) { + if a.cacheDest == nil || a.cacheDest.SplunkDestinationDescription == nil { + a.Splunk.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + sp := a.cacheDest.SplunkDestinationDescription + streamArn := a.cacheStreamArn + destId := a.DestinationId.Data + region := a.Region.Data + + var bufSize, bufInterval int64 + if sp.BufferingHints != nil { + if sp.BufferingHints.SizeInMBs != nil { + bufSize = int64(*sp.BufferingHints.SizeInMBs) + } + if sp.BufferingHints.IntervalInSeconds != nil { + bufInterval = int64(*sp.BufferingHints.IntervalInSeconds) + } + } + + var hecTimeout int64 + if sp.HECAcknowledgmentTimeoutInSeconds != nil { + hecTimeout = int64(*sp.HECAcknowledgmentTimeoutInSeconds) + } + + var retryDuration int64 + if sp.RetryOptions != nil && sp.RetryOptions.DurationInSeconds != nil { + retryDuration = int64(*sp.RetryOptions.DurationInSeconds) + } + + splunkId := streamArn + "/destination/" + destId + "/splunk" + cwLogging, err := newMqlCloudWatchLogging(a.MqlRuntime, splunkId, sp.CloudWatchLoggingOptions) + if err != nil { + return nil, err + } + processingConfig, _ := convert.JsonToDict(sp.ProcessingConfiguration) + + mqlSp, err := CreateResource(a.MqlRuntime, "aws.kinesis.firehoseDeliveryStream.destination.splunk", + map[string]*llx.RawData{ + "__id": llx.StringData(splunkId), + "hecEndpoint": llx.StringDataPtr(sp.HECEndpoint), + "hecEndpointType": llx.StringData(string(sp.HECEndpointType)), + "hecAcknowledgmentTimeoutInSeconds": llx.IntData(hecTimeout), + "s3BackupMode": llx.StringData(string(sp.S3BackupMode)), + "bufferingSizeInMBs": llx.IntData(bufSize), + "bufferingIntervalInSeconds": llx.IntData(bufInterval), + "cloudWatchLogging": llx.ResourceData(cwLogging, "aws.kinesis.firehoseDeliveryStream.cloudWatchLogging"), + "processingConfiguration": llx.DictData(processingConfig), + "retryDurationInSeconds": llx.IntData(retryDuration), + "region": llx.StringData(region), + }) + if err != nil { + return nil, err + } + return mqlSp.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk), nil +} + +func (a *mqlAwsKinesisFirehoseDeliveryStreamDestinationSplunk) id() (string, error) { + return a.HecEndpoint.Data + "/" + a.Region.Data, nil +} + +func (a *mqlAwsKinesisFirehoseDeliveryStreamDestination) httpEndpoint() (*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint, error) { + if a.cacheDest == nil || a.cacheDest.HttpEndpointDestinationDescription == nil { + a.HttpEndpoint.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + h := a.cacheDest.HttpEndpointDestinationDescription + streamArn := a.cacheStreamArn + destId := a.DestinationId.Data + region := a.Region.Data + + var endpointUrl, endpointName string + if h.EndpointConfiguration != nil { + endpointUrl = convert.ToValue(h.EndpointConfiguration.Url) + endpointName = convert.ToValue(h.EndpointConfiguration.Name) + } + + var bufSize, bufInterval int64 + if h.BufferingHints != nil { + if h.BufferingHints.SizeInMBs != nil { + bufSize = int64(*h.BufferingHints.SizeInMBs) + } + if h.BufferingHints.IntervalInSeconds != nil { + bufInterval = int64(*h.BufferingHints.IntervalInSeconds) + } + } + + var retryDuration int64 + if h.RetryOptions != nil && h.RetryOptions.DurationInSeconds != nil { + retryDuration = int64(*h.RetryOptions.DurationInSeconds) + } + + httpId := streamArn + "/destination/" + destId + "/httpEndpoint" + cwLogging, err := newMqlCloudWatchLogging(a.MqlRuntime, httpId, h.CloudWatchLoggingOptions) + if err != nil { + return nil, err + } + processingConfig, _ := convert.JsonToDict(h.ProcessingConfiguration) + requestConfig, _ := convert.JsonToDict(h.RequestConfiguration) + + mqlH, err := CreateResource(a.MqlRuntime, "aws.kinesis.firehoseDeliveryStream.destination.httpEndpoint", + map[string]*llx.RawData{ + "__id": llx.StringData(httpId), + "endpointUrl": llx.StringData(endpointUrl), + "endpointName": llx.StringData(endpointName), + "s3BackupMode": llx.StringData(string(h.S3BackupMode)), + "bufferingSizeInMBs": llx.IntData(bufSize), + "bufferingIntervalInSeconds": llx.IntData(bufInterval), + "cloudWatchLogging": llx.ResourceData(cwLogging, "aws.kinesis.firehoseDeliveryStream.cloudWatchLogging"), + "processingConfiguration": llx.DictData(processingConfig), + "requestConfiguration": llx.DictData(requestConfig), + "retryDurationInSeconds": llx.IntData(retryDuration), + "region": llx.StringData(region), + }) + if err != nil { + return nil, err + } + mqlHRes := mqlH.(*mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint) + mqlHRes.cacheRoleArn = h.RoleARN + return mqlHRes, nil +} + +type mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpointInternal struct { + cacheRoleArn *string +} + +func (a *mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint) iamRole() (*mqlAwsIamRole, error) { + if a.cacheRoleArn == nil || *a.cacheRoleArn == "" { + a.IamRole.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + res, err := NewResource(a.MqlRuntime, "aws.iam.role", + map[string]*llx.RawData{"arn": llx.StringDataPtr(a.cacheRoleArn)}) + if err != nil { + return nil, err + } + return res.(*mqlAwsIamRole), nil +} + +func (a *mqlAwsKinesisFirehoseDeliveryStreamDestinationHttpEndpoint) id() (string, error) { + return a.EndpointUrl.Data + "/" + a.Region.Data, nil +} + +func newMqlCloudWatchLogging(runtime *plugin.Runtime, parentId string, opts *firehose_types.CloudWatchLoggingOptions) (plugin.Resource, error) { + var enabled bool + var logGroupName, logStreamName string + if opts != nil { + if opts.Enabled != nil { + enabled = *opts.Enabled + } + if opts.LogGroupName != nil { + logGroupName = *opts.LogGroupName + } + if opts.LogStreamName != nil { + logStreamName = *opts.LogStreamName + } + } + return CreateResource(runtime, "aws.kinesis.firehoseDeliveryStream.cloudWatchLogging", + map[string]*llx.RawData{ + "__id": llx.StringData(parentId + "/cloudWatchLogging"), + "enabled": llx.BoolData(enabled), + "logGroupName": llx.StringData(logGroupName), + "logStreamName": llx.StringData(logStreamName), + }) +} + +func (a *mqlAwsKinesisFirehoseDeliveryStreamCloudWatchLogging) id() (string, error) { + return a.LogGroupName.Data + "/" + a.LogStreamName.Data, nil } func (a *mqlAwsKinesisFirehoseDeliveryStream) tags() (map[string]interface{}, error) { diff --git a/providers/aws/resources/aws_sagemaker.go b/providers/aws/resources/aws_sagemaker.go index 5a7dea2064..2a7929a7a2 100644 --- a/providers/aws/resources/aws_sagemaker.go +++ b/providers/aws/resources/aws_sagemaker.go @@ -372,6 +372,1023 @@ func (a *mqlAwsSagemakerNotebookinstancedetails) id() (string, error) { return a.Arn.Data, nil } +// ---- Models ---- + +func (a *mqlAwsSagemaker) models() ([]any, error) { + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + + res := []any{} + poolOfJobs := jobpool.CreatePool(a.getModels(conn), 5) + poolOfJobs.Run() + + if poolOfJobs.HasErrors() { + return nil, poolOfJobs.GetErrors() + } + for i := range poolOfJobs.Jobs { + res = append(res, poolOfJobs.Jobs[i].Result.([]any)...) + } + + return res, nil +} + +func (a *mqlAwsSagemaker) getModels(conn *connection.AwsConnection) []*jobpool.Job { + tasks := make([]*jobpool.Job, 0) + regions, err := conn.Regions() + if err != nil { + return []*jobpool.Job{{Err: err}} + } + + for _, region := range regions { + f := func() (jobpool.JobResult, error) { + svc := conn.Sagemaker(region) + ctx := context.Background() + res := []any{} + + paginator := sagemaker.NewListModelsPaginator(svc, &sagemaker.ListModelsInput{}) + for paginator.HasMorePages() { + page, err := paginator.NextPage(ctx) + if err != nil { + if Is400AccessDeniedError(err) { + log.Warn().Str("region", region).Msg("error accessing region for AWS API") + return res, nil + } + return nil, err + } + + for _, model := range page.Models { + var eagerTags map[string]any + if conn.Filters.General.HasTags() { + tags, err := getSagemakerTags(ctx, svc, model.ModelArn) + if err != nil { + return nil, err + } + if conn.Filters.General.IsFilteredOutByTags(mapStringInterfaceToStringString(tags)) { + log.Debug().Interface("model", model.ModelArn).Msg("skipping sagemaker model due to filters") + continue + } + eagerTags = tags + } + + mqlModel, err := CreateResource(a.MqlRuntime, ResourceAwsSagemakerModel, + map[string]*llx.RawData{ + "arn": llx.StringDataPtr(model.ModelArn), + "name": llx.StringDataPtr(model.ModelName), + "region": llx.StringData(region), + "createdAt": llx.TimeDataPtr(model.CreationTime), + }) + if err != nil { + return nil, err + } + m := mqlModel.(*mqlAwsSagemakerModel) + if eagerTags != nil { + m.cacheTags = eagerTags + m.tagsFetched = true + } + res = append(res, mqlModel) + } + } + return jobpool.JobResult(res), nil + } + tasks = append(tasks, jobpool.NewJob(f)) + } + return tasks +} + +type mqlAwsSagemakerModelInternal struct { + sagemakerTagsCache + detailsFetched bool + detailsLock sync.Mutex + cacheRoleArn *string + cacheEnableNetworkIsolation bool + cachePrimaryContainer any + cacheVpcConfig any +} + +func (a *mqlAwsSagemakerModel) id() (string, error) { + return a.Arn.Data, nil +} + +func (a *mqlAwsSagemakerModel) tags() (map[string]any, error) { + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + return a.fetchTags(conn, a.Region.Data, a.Arn.Data) +} + +func (a *mqlAwsSagemakerModel) fetchDetails() error { + if a.detailsFetched { + return nil + } + a.detailsLock.Lock() + defer a.detailsLock.Unlock() + if a.detailsFetched { + return nil + } + + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + svc := conn.Sagemaker(a.Region.Data) + ctx := context.Background() + name := a.Name.Data + resp, err := svc.DescribeModel(ctx, &sagemaker.DescribeModelInput{ModelName: &name}) + if err != nil { + return err + } + + a.cacheRoleArn = resp.ExecutionRoleArn + if resp.EnableNetworkIsolation != nil { + a.cacheEnableNetworkIsolation = *resp.EnableNetworkIsolation + } + a.cachePrimaryContainer, _ = convert.JsonToDict(resp.PrimaryContainer) + a.cacheVpcConfig, _ = convert.JsonToDict(resp.VpcConfig) + a.detailsFetched = true + return nil +} + +func (a *mqlAwsSagemakerModel) enableNetworkIsolation() (bool, error) { + if err := a.fetchDetails(); err != nil { + return false, err + } + return a.cacheEnableNetworkIsolation, nil +} + +func (a *mqlAwsSagemakerModel) iamRole() (*mqlAwsIamRole, error) { + if err := a.fetchDetails(); err != nil { + return nil, err + } + if a.cacheRoleArn == nil || *a.cacheRoleArn == "" { + a.IamRole.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + res, err := NewResource(a.MqlRuntime, "aws.iam.role", + map[string]*llx.RawData{"arn": llx.StringDataPtr(a.cacheRoleArn)}) + if err != nil { + return nil, err + } + return res.(*mqlAwsIamRole), nil +} + +func (a *mqlAwsSagemakerModel) primaryContainer() (map[string]any, error) { + if err := a.fetchDetails(); err != nil { + return nil, err + } + if a.cachePrimaryContainer == nil { + return nil, nil + } + return a.cachePrimaryContainer.(map[string]any), nil +} + +func (a *mqlAwsSagemakerModel) vpcConfig() (map[string]any, error) { + if err := a.fetchDetails(); err != nil { + return nil, err + } + if a.cacheVpcConfig == nil { + return nil, nil + } + return a.cacheVpcConfig.(map[string]any), nil +} + +// ---- Training Jobs ---- + +func (a *mqlAwsSagemaker) trainingJobs() ([]any, error) { + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + + res := []any{} + poolOfJobs := jobpool.CreatePool(a.getTrainingJobs(conn), 5) + poolOfJobs.Run() + + if poolOfJobs.HasErrors() { + return nil, poolOfJobs.GetErrors() + } + for i := range poolOfJobs.Jobs { + res = append(res, poolOfJobs.Jobs[i].Result.([]any)...) + } + + return res, nil +} + +func (a *mqlAwsSagemaker) getTrainingJobs(conn *connection.AwsConnection) []*jobpool.Job { + tasks := make([]*jobpool.Job, 0) + regions, err := conn.Regions() + if err != nil { + return []*jobpool.Job{{Err: err}} + } + + for _, region := range regions { + f := func() (jobpool.JobResult, error) { + svc := conn.Sagemaker(region) + ctx := context.Background() + res := []any{} + + paginator := sagemaker.NewListTrainingJobsPaginator(svc, &sagemaker.ListTrainingJobsInput{}) + for paginator.HasMorePages() { + page, err := paginator.NextPage(ctx) + if err != nil { + if Is400AccessDeniedError(err) { + log.Warn().Str("region", region).Msg("error accessing region for AWS API") + return res, nil + } + return nil, err + } + + for _, job := range page.TrainingJobSummaries { + var eagerTags map[string]any + if conn.Filters.General.HasTags() { + tags, err := getSagemakerTags(ctx, svc, job.TrainingJobArn) + if err != nil { + return nil, err + } + if conn.Filters.General.IsFilteredOutByTags(mapStringInterfaceToStringString(tags)) { + log.Debug().Interface("trainingjob", job.TrainingJobArn).Msg("skipping sagemaker training job due to filters") + continue + } + eagerTags = tags + } + + mqlJob, err := CreateResource(a.MqlRuntime, ResourceAwsSagemakerTrainingjob, + map[string]*llx.RawData{ + "arn": llx.StringDataPtr(job.TrainingJobArn), + "name": llx.StringDataPtr(job.TrainingJobName), + "region": llx.StringData(region), + "status": llx.StringData(string(job.TrainingJobStatus)), + "createdAt": llx.TimeDataPtr(job.CreationTime), + "lastModifiedAt": llx.TimeDataPtr(job.LastModifiedTime), + "trainingEndTime": llx.TimeDataPtr(job.TrainingEndTime), + }) + if err != nil { + return nil, err + } + tj := mqlJob.(*mqlAwsSagemakerTrainingjob) + if eagerTags != nil { + tj.cacheTags = eagerTags + tj.tagsFetched = true + } + res = append(res, mqlJob) + } + } + return jobpool.JobResult(res), nil + } + tasks = append(tasks, jobpool.NewJob(f)) + } + return tasks +} + +type mqlAwsSagemakerTrainingjobInternal struct { + sagemakerTagsCache + detailsFetched bool + detailsLock sync.Mutex + cacheRoleArn *string + cacheAlgorithmSpec any + cacheHyperParams map[string]string + cacheEnableNetworkIsolation bool + cacheEnableInterContainerEncrypt bool + cacheFailureReason *string + cacheBillableTime int64 + cacheVpcConfig any + cacheOutputDataConfig any + cacheResourceConfig any + cacheStoppingCondition any +} + +func (a *mqlAwsSagemakerTrainingjob) id() (string, error) { + return a.Arn.Data, nil +} + +func (a *mqlAwsSagemakerTrainingjob) tags() (map[string]any, error) { + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + return a.fetchTags(conn, a.Region.Data, a.Arn.Data) +} + +func (a *mqlAwsSagemakerTrainingjob) fetchDetails() error { + if a.detailsFetched { + return nil + } + a.detailsLock.Lock() + defer a.detailsLock.Unlock() + if a.detailsFetched { + return nil + } + + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + svc := conn.Sagemaker(a.Region.Data) + ctx := context.Background() + name := a.Name.Data + resp, err := svc.DescribeTrainingJob(ctx, &sagemaker.DescribeTrainingJobInput{TrainingJobName: &name}) + if err != nil { + return err + } + + a.cacheRoleArn = resp.RoleArn + a.cacheAlgorithmSpec, _ = convert.JsonToDict(resp.AlgorithmSpecification) + a.cacheHyperParams = resp.HyperParameters + if resp.EnableNetworkIsolation != nil { + a.cacheEnableNetworkIsolation = *resp.EnableNetworkIsolation + } + if resp.EnableInterContainerTrafficEncryption != nil { + a.cacheEnableInterContainerEncrypt = *resp.EnableInterContainerTrafficEncryption + } + a.cacheFailureReason = resp.FailureReason + if resp.BillableTimeInSeconds != nil { + a.cacheBillableTime = int64(*resp.BillableTimeInSeconds) + } + a.cacheVpcConfig, _ = convert.JsonToDict(resp.VpcConfig) + a.cacheOutputDataConfig, _ = convert.JsonToDict(resp.OutputDataConfig) + a.cacheResourceConfig, _ = convert.JsonToDict(resp.ResourceConfig) + a.cacheStoppingCondition, _ = convert.JsonToDict(resp.StoppingCondition) + a.detailsFetched = true + return nil +} + +func (a *mqlAwsSagemakerTrainingjob) iamRole() (*mqlAwsIamRole, error) { + if err := a.fetchDetails(); err != nil { + return nil, err + } + if a.cacheRoleArn == nil || *a.cacheRoleArn == "" { + a.IamRole.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + res, err := NewResource(a.MqlRuntime, "aws.iam.role", + map[string]*llx.RawData{"arn": llx.StringDataPtr(a.cacheRoleArn)}) + if err != nil { + return nil, err + } + return res.(*mqlAwsIamRole), nil +} + +func (a *mqlAwsSagemakerTrainingjob) algorithmSpecification() (map[string]any, error) { + if err := a.fetchDetails(); err != nil { + return nil, err + } + if a.cacheAlgorithmSpec == nil { + return nil, nil + } + return a.cacheAlgorithmSpec.(map[string]any), nil +} + +func (a *mqlAwsSagemakerTrainingjob) hyperParameters() (map[string]any, error) { + if err := a.fetchDetails(); err != nil { + return nil, err + } + if a.cacheHyperParams == nil { + return nil, nil + } + result := make(map[string]any, len(a.cacheHyperParams)) + for k, v := range a.cacheHyperParams { + result[k] = v + } + return result, nil +} + +func (a *mqlAwsSagemakerTrainingjob) enableNetworkIsolation() (bool, error) { + if err := a.fetchDetails(); err != nil { + return false, err + } + return a.cacheEnableNetworkIsolation, nil +} + +func (a *mqlAwsSagemakerTrainingjob) enableInterContainerTrafficEncryption() (bool, error) { + if err := a.fetchDetails(); err != nil { + return false, err + } + return a.cacheEnableInterContainerEncrypt, nil +} + +func (a *mqlAwsSagemakerTrainingjob) failureReason() (string, error) { + if err := a.fetchDetails(); err != nil { + return "", err + } + return convert.ToValue(a.cacheFailureReason), nil +} + +func (a *mqlAwsSagemakerTrainingjob) billableTimeInSeconds() (int64, error) { + if err := a.fetchDetails(); err != nil { + return 0, err + } + return a.cacheBillableTime, nil +} + +func (a *mqlAwsSagemakerTrainingjob) vpcConfig() (map[string]any, error) { + if err := a.fetchDetails(); err != nil { + return nil, err + } + if a.cacheVpcConfig == nil { + return nil, nil + } + return a.cacheVpcConfig.(map[string]any), nil +} + +func (a *mqlAwsSagemakerTrainingjob) outputDataConfig() (map[string]any, error) { + if err := a.fetchDetails(); err != nil { + return nil, err + } + if a.cacheOutputDataConfig == nil { + return nil, nil + } + return a.cacheOutputDataConfig.(map[string]any), nil +} + +func (a *mqlAwsSagemakerTrainingjob) resourceConfig() (map[string]any, error) { + if err := a.fetchDetails(); err != nil { + return nil, err + } + if a.cacheResourceConfig == nil { + return nil, nil + } + return a.cacheResourceConfig.(map[string]any), nil +} + +func (a *mqlAwsSagemakerTrainingjob) stoppingCondition() (map[string]any, error) { + if err := a.fetchDetails(); err != nil { + return nil, err + } + if a.cacheStoppingCondition == nil { + return nil, nil + } + return a.cacheStoppingCondition.(map[string]any), nil +} + +// ---- Processing Jobs ---- + +func (a *mqlAwsSagemaker) processingJobs() ([]any, error) { + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + + res := []any{} + poolOfJobs := jobpool.CreatePool(a.getProcessingJobs(conn), 5) + poolOfJobs.Run() + + if poolOfJobs.HasErrors() { + return nil, poolOfJobs.GetErrors() + } + for i := range poolOfJobs.Jobs { + res = append(res, poolOfJobs.Jobs[i].Result.([]any)...) + } + + return res, nil +} + +func (a *mqlAwsSagemaker) getProcessingJobs(conn *connection.AwsConnection) []*jobpool.Job { + tasks := make([]*jobpool.Job, 0) + regions, err := conn.Regions() + if err != nil { + return []*jobpool.Job{{Err: err}} + } + + for _, region := range regions { + f := func() (jobpool.JobResult, error) { + svc := conn.Sagemaker(region) + ctx := context.Background() + res := []any{} + + paginator := sagemaker.NewListProcessingJobsPaginator(svc, &sagemaker.ListProcessingJobsInput{}) + for paginator.HasMorePages() { + page, err := paginator.NextPage(ctx) + if err != nil { + if Is400AccessDeniedError(err) { + log.Warn().Str("region", region).Msg("error accessing region for AWS API") + return res, nil + } + return nil, err + } + + for _, job := range page.ProcessingJobSummaries { + var eagerTags map[string]any + if conn.Filters.General.HasTags() { + tags, err := getSagemakerTags(ctx, svc, job.ProcessingJobArn) + if err != nil { + return nil, err + } + if conn.Filters.General.IsFilteredOutByTags(mapStringInterfaceToStringString(tags)) { + log.Debug().Interface("processingjob", job.ProcessingJobArn).Msg("skipping sagemaker processing job due to filters") + continue + } + eagerTags = tags + } + + mqlJob, err := CreateResource(a.MqlRuntime, ResourceAwsSagemakerProcessingjob, + map[string]*llx.RawData{ + "arn": llx.StringDataPtr(job.ProcessingJobArn), + "name": llx.StringDataPtr(job.ProcessingJobName), + "region": llx.StringData(region), + "status": llx.StringData(string(job.ProcessingJobStatus)), + "createdAt": llx.TimeDataPtr(job.CreationTime), + "lastModifiedAt": llx.TimeDataPtr(job.LastModifiedTime), + "processingEndTime": llx.TimeDataPtr(job.ProcessingEndTime), + "failureReason": llx.StringDataPtr(job.FailureReason), + "exitMessage": llx.StringDataPtr(job.ExitMessage), + }) + if err != nil { + return nil, err + } + pj := mqlJob.(*mqlAwsSagemakerProcessingjob) + if eagerTags != nil { + pj.cacheTags = eagerTags + pj.tagsFetched = true + } + res = append(res, mqlJob) + } + } + return jobpool.JobResult(res), nil + } + tasks = append(tasks, jobpool.NewJob(f)) + } + return tasks +} + +type mqlAwsSagemakerProcessingjobInternal struct { + sagemakerTagsCache + detailsFetched bool + detailsLock sync.Mutex + cacheRoleArn *string + cacheEnableNetworkIsolation bool + cacheEnableInterContainerEncrypt bool + cacheVpcConfig any + cacheProcessingResources any + cacheEnvironment map[string]string +} + +func (a *mqlAwsSagemakerProcessingjob) id() (string, error) { + return a.Arn.Data, nil +} + +func (a *mqlAwsSagemakerProcessingjob) tags() (map[string]any, error) { + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + return a.fetchTags(conn, a.Region.Data, a.Arn.Data) +} + +func (a *mqlAwsSagemakerProcessingjob) fetchDetails() error { + if a.detailsFetched { + return nil + } + a.detailsLock.Lock() + defer a.detailsLock.Unlock() + if a.detailsFetched { + return nil + } + + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + svc := conn.Sagemaker(a.Region.Data) + ctx := context.Background() + name := a.Name.Data + resp, err := svc.DescribeProcessingJob(ctx, &sagemaker.DescribeProcessingJobInput{ProcessingJobName: &name}) + if err != nil { + return err + } + + a.cacheRoleArn = resp.RoleArn + if resp.NetworkConfig != nil { + if resp.NetworkConfig.EnableNetworkIsolation != nil { + a.cacheEnableNetworkIsolation = *resp.NetworkConfig.EnableNetworkIsolation + } + if resp.NetworkConfig.EnableInterContainerTrafficEncryption != nil { + a.cacheEnableInterContainerEncrypt = *resp.NetworkConfig.EnableInterContainerTrafficEncryption + } + a.cacheVpcConfig, _ = convert.JsonToDict(resp.NetworkConfig.VpcConfig) + } + a.cacheProcessingResources, _ = convert.JsonToDict(resp.ProcessingResources) + a.cacheEnvironment = resp.Environment + a.detailsFetched = true + return nil +} + +func (a *mqlAwsSagemakerProcessingjob) iamRole() (*mqlAwsIamRole, error) { + if err := a.fetchDetails(); err != nil { + return nil, err + } + if a.cacheRoleArn == nil || *a.cacheRoleArn == "" { + a.IamRole.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + res, err := NewResource(a.MqlRuntime, "aws.iam.role", + map[string]*llx.RawData{"arn": llx.StringDataPtr(a.cacheRoleArn)}) + if err != nil { + return nil, err + } + return res.(*mqlAwsIamRole), nil +} + +func (a *mqlAwsSagemakerProcessingjob) enableNetworkIsolation() (bool, error) { + if err := a.fetchDetails(); err != nil { + return false, err + } + return a.cacheEnableNetworkIsolation, nil +} + +func (a *mqlAwsSagemakerProcessingjob) enableInterContainerTrafficEncryption() (bool, error) { + if err := a.fetchDetails(); err != nil { + return false, err + } + return a.cacheEnableInterContainerEncrypt, nil +} + +func (a *mqlAwsSagemakerProcessingjob) vpcConfig() (map[string]any, error) { + if err := a.fetchDetails(); err != nil { + return nil, err + } + if a.cacheVpcConfig == nil { + return nil, nil + } + return a.cacheVpcConfig.(map[string]any), nil +} + +func (a *mqlAwsSagemakerProcessingjob) processingResources() (map[string]any, error) { + if err := a.fetchDetails(); err != nil { + return nil, err + } + if a.cacheProcessingResources == nil { + return nil, nil + } + return a.cacheProcessingResources.(map[string]any), nil +} + +func (a *mqlAwsSagemakerProcessingjob) environment() (map[string]any, error) { + if err := a.fetchDetails(); err != nil { + return nil, err + } + if a.cacheEnvironment == nil { + return nil, nil + } + result := make(map[string]any, len(a.cacheEnvironment)) + for k, v := range a.cacheEnvironment { + result[k] = v + } + return result, nil +} + +// ---- Pipelines ---- + +func (a *mqlAwsSagemaker) pipelines() ([]any, error) { + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + + res := []any{} + poolOfJobs := jobpool.CreatePool(a.getPipelines(conn), 5) + poolOfJobs.Run() + + if poolOfJobs.HasErrors() { + return nil, poolOfJobs.GetErrors() + } + for i := range poolOfJobs.Jobs { + res = append(res, poolOfJobs.Jobs[i].Result.([]any)...) + } + + return res, nil +} + +func (a *mqlAwsSagemaker) getPipelines(conn *connection.AwsConnection) []*jobpool.Job { + tasks := make([]*jobpool.Job, 0) + regions, err := conn.Regions() + if err != nil { + return []*jobpool.Job{{Err: err}} + } + + for _, region := range regions { + f := func() (jobpool.JobResult, error) { + svc := conn.Sagemaker(region) + ctx := context.Background() + res := []any{} + + paginator := sagemaker.NewListPipelinesPaginator(svc, &sagemaker.ListPipelinesInput{}) + for paginator.HasMorePages() { + page, err := paginator.NextPage(ctx) + if err != nil { + if Is400AccessDeniedError(err) { + log.Warn().Str("region", region).Msg("error accessing region for AWS API") + return res, nil + } + return nil, err + } + + for _, pipeline := range page.PipelineSummaries { + var eagerTags map[string]any + if conn.Filters.General.HasTags() { + tags, err := getSagemakerTags(ctx, svc, pipeline.PipelineArn) + if err != nil { + return nil, err + } + if conn.Filters.General.IsFilteredOutByTags(mapStringInterfaceToStringString(tags)) { + log.Debug().Interface("pipeline", pipeline.PipelineArn).Msg("skipping sagemaker pipeline due to filters") + continue + } + eagerTags = tags + } + + mqlPipeline, err := CreateResource(a.MqlRuntime, ResourceAwsSagemakerPipeline, + map[string]*llx.RawData{ + "arn": llx.StringDataPtr(pipeline.PipelineArn), + "name": llx.StringDataPtr(pipeline.PipelineName), + "displayName": llx.StringDataPtr(pipeline.PipelineDisplayName), + "description": llx.StringDataPtr(pipeline.PipelineDescription), + "region": llx.StringData(region), + "createdAt": llx.TimeDataPtr(pipeline.CreationTime), + "lastModifiedAt": llx.TimeDataPtr(pipeline.LastModifiedTime), + "lastExecutionTime": llx.TimeDataPtr(pipeline.LastExecutionTime), + }) + if err != nil { + return nil, err + } + p := mqlPipeline.(*mqlAwsSagemakerPipeline) + p.cacheRoleArn = pipeline.RoleArn + if eagerTags != nil { + p.cacheTags = eagerTags + p.tagsFetched = true + } + res = append(res, mqlPipeline) + } + } + return jobpool.JobResult(res), nil + } + tasks = append(tasks, jobpool.NewJob(f)) + } + return tasks +} + +type mqlAwsSagemakerPipelineInternal struct { + sagemakerTagsCache + detailsFetched bool + detailsLock sync.Mutex + cacheRoleArn *string + cachePipelineStatus *string + cacheDefinition *string + cacheParallelismConfig any +} + +func (a *mqlAwsSagemakerPipeline) id() (string, error) { + return a.Arn.Data, nil +} + +func (a *mqlAwsSagemakerPipeline) tags() (map[string]any, error) { + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + return a.fetchTags(conn, a.Region.Data, a.Arn.Data) +} + +func (a *mqlAwsSagemakerPipeline) fetchDetails() error { + if a.detailsFetched { + return nil + } + a.detailsLock.Lock() + defer a.detailsLock.Unlock() + if a.detailsFetched { + return nil + } + + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + svc := conn.Sagemaker(a.Region.Data) + ctx := context.Background() + name := a.Name.Data + resp, err := svc.DescribePipeline(ctx, &sagemaker.DescribePipelineInput{PipelineName: &name}) + if err != nil { + return err + } + + a.cacheRoleArn = resp.RoleArn + status := string(resp.PipelineStatus) + a.cachePipelineStatus = &status + a.cacheDefinition = resp.PipelineDefinition + a.cacheParallelismConfig, _ = convert.JsonToDict(resp.ParallelismConfiguration) + a.detailsFetched = true + return nil +} + +func (a *mqlAwsSagemakerPipeline) iamRole() (*mqlAwsIamRole, error) { + // RoleArn is eagerly cached from the list summary; fall back to fetchDetails + if a.cacheRoleArn == nil { + if err := a.fetchDetails(); err != nil { + return nil, err + } + } + if a.cacheRoleArn == nil || *a.cacheRoleArn == "" { + a.IamRole.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + res, err := NewResource(a.MqlRuntime, "aws.iam.role", + map[string]*llx.RawData{"arn": llx.StringDataPtr(a.cacheRoleArn)}) + if err != nil { + return nil, err + } + return res.(*mqlAwsIamRole), nil +} + +func (a *mqlAwsSagemakerPipeline) pipelineStatus() (string, error) { + if err := a.fetchDetails(); err != nil { + return "", err + } + return convert.ToValue(a.cachePipelineStatus), nil +} + +func (a *mqlAwsSagemakerPipeline) definition() (string, error) { + if err := a.fetchDetails(); err != nil { + return "", err + } + return convert.ToValue(a.cacheDefinition), nil +} + +func (a *mqlAwsSagemakerPipeline) parallelismConfiguration() (map[string]any, error) { + if err := a.fetchDetails(); err != nil { + return nil, err + } + if a.cacheParallelismConfig == nil { + return nil, nil + } + return a.cacheParallelismConfig.(map[string]any), nil +} + +// ---- Domains ---- + +func (a *mqlAwsSagemaker) domains() ([]any, error) { + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + + res := []any{} + poolOfJobs := jobpool.CreatePool(a.getDomains(conn), 5) + poolOfJobs.Run() + + if poolOfJobs.HasErrors() { + return nil, poolOfJobs.GetErrors() + } + for i := range poolOfJobs.Jobs { + res = append(res, poolOfJobs.Jobs[i].Result.([]any)...) + } + + return res, nil +} + +func (a *mqlAwsSagemaker) getDomains(conn *connection.AwsConnection) []*jobpool.Job { + tasks := make([]*jobpool.Job, 0) + regions, err := conn.Regions() + if err != nil { + return []*jobpool.Job{{Err: err}} + } + + for _, region := range regions { + f := func() (jobpool.JobResult, error) { + svc := conn.Sagemaker(region) + ctx := context.Background() + res := []any{} + + paginator := sagemaker.NewListDomainsPaginator(svc, &sagemaker.ListDomainsInput{}) + for paginator.HasMorePages() { + page, err := paginator.NextPage(ctx) + if err != nil { + if Is400AccessDeniedError(err) { + log.Warn().Str("region", region).Msg("error accessing region for AWS API") + return res, nil + } + return nil, err + } + + for _, domain := range page.Domains { + var eagerTags map[string]any + if conn.Filters.General.HasTags() { + tags, err := getSagemakerTags(ctx, svc, domain.DomainArn) + if err != nil { + return nil, err + } + if conn.Filters.General.IsFilteredOutByTags(mapStringInterfaceToStringString(tags)) { + log.Debug().Interface("domain", domain.DomainArn).Msg("skipping sagemaker domain due to filters") + continue + } + eagerTags = tags + } + + mqlDomain, err := CreateResource(a.MqlRuntime, ResourceAwsSagemakerDomain, + map[string]*llx.RawData{ + "arn": llx.StringDataPtr(domain.DomainArn), + "domainId": llx.StringDataPtr(domain.DomainId), + "name": llx.StringDataPtr(domain.DomainName), + "region": llx.StringData(region), + "status": llx.StringData(string(domain.Status)), + "url": llx.StringDataPtr(domain.Url), + "createdAt": llx.TimeDataPtr(domain.CreationTime), + "lastModifiedAt": llx.TimeDataPtr(domain.LastModifiedTime), + }) + if err != nil { + return nil, err + } + d := mqlDomain.(*mqlAwsSagemakerDomain) + if eagerTags != nil { + d.cacheTags = eagerTags + d.tagsFetched = true + } + res = append(res, mqlDomain) + } + } + return jobpool.JobResult(res), nil + } + tasks = append(tasks, jobpool.NewJob(f)) + } + return tasks +} + +type mqlAwsSagemakerDomainInternal struct { + sagemakerTagsCache + detailsFetched bool + detailsLock sync.Mutex + cacheAuthMode *string + cacheAppNetworkAccess *string + cacheVpcId *string + cacheKmsKeyId *string + cacheHomeEfsId *string + cacheDefaultUserSettings any +} + +func (a *mqlAwsSagemakerDomain) id() (string, error) { + return a.Arn.Data, nil +} + +func (a *mqlAwsSagemakerDomain) tags() (map[string]any, error) { + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + return a.fetchTags(conn, a.Region.Data, a.Arn.Data) +} + +func (a *mqlAwsSagemakerDomain) fetchDetails() error { + if a.detailsFetched { + return nil + } + a.detailsLock.Lock() + defer a.detailsLock.Unlock() + if a.detailsFetched { + return nil + } + + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + svc := conn.Sagemaker(a.Region.Data) + ctx := context.Background() + domainId := a.DomainId.Data + resp, err := svc.DescribeDomain(ctx, &sagemaker.DescribeDomainInput{DomainId: &domainId}) + if err != nil { + return err + } + + authMode := string(resp.AuthMode) + a.cacheAuthMode = &authMode + appNetworkAccess := string(resp.AppNetworkAccessType) + a.cacheAppNetworkAccess = &appNetworkAccess + a.cacheVpcId = resp.VpcId + a.cacheKmsKeyId = resp.KmsKeyId + a.cacheHomeEfsId = resp.HomeEfsFileSystemId + a.cacheDefaultUserSettings, _ = convert.JsonToDict(resp.DefaultUserSettings) + a.detailsFetched = true + return nil +} + +func (a *mqlAwsSagemakerDomain) authMode() (string, error) { + if err := a.fetchDetails(); err != nil { + return "", err + } + return convert.ToValue(a.cacheAuthMode), nil +} + +func (a *mqlAwsSagemakerDomain) appNetworkAccessType() (string, error) { + if err := a.fetchDetails(); err != nil { + return "", err + } + return convert.ToValue(a.cacheAppNetworkAccess), nil +} + +func (a *mqlAwsSagemakerDomain) vpc() (*mqlAwsVpc, error) { + if err := a.fetchDetails(); err != nil { + return nil, err + } + if a.cacheVpcId == nil || *a.cacheVpcId == "" { + a.Vpc.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + res, err := NewResource(a.MqlRuntime, "aws.vpc", + map[string]*llx.RawData{"id": llx.StringDataPtr(a.cacheVpcId)}) + if err != nil { + return nil, err + } + return res.(*mqlAwsVpc), nil +} + +func (a *mqlAwsSagemakerDomain) kmsKey() (*mqlAwsKmsKey, error) { + if err := a.fetchDetails(); err != nil { + return nil, err + } + if a.cacheKmsKeyId == nil || *a.cacheKmsKeyId == "" { + a.KmsKey.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + res, err := NewResource(a.MqlRuntime, "aws.kms.key", + map[string]*llx.RawData{"arn": llx.StringDataPtr(a.cacheKmsKeyId)}) + if err != nil { + return nil, err + } + return res.(*mqlAwsKmsKey), nil +} + +func (a *mqlAwsSagemakerDomain) homeEfsFileSystemId() (string, error) { + if err := a.fetchDetails(); err != nil { + return "", err + } + return convert.ToValue(a.cacheHomeEfsId), nil +} + +func (a *mqlAwsSagemakerDomain) defaultUserSettings() (map[string]any, error) { + if err := a.fetchDetails(); err != nil { + return nil, err + } + if a.cacheDefaultUserSettings == nil { + return nil, nil + } + return a.cacheDefaultUserSettings.(map[string]any), nil +} + func getSagemakerTags(ctx context.Context, svc *sagemaker.Client, arn *string) (map[string]any, error) { resp, err := svc.ListTags(ctx, &sagemaker.ListTagsInput{ResourceArn: arn}) var respErr *http.ResponseError diff --git a/providers/aws/resources/aws_shield.go b/providers/aws/resources/aws_shield.go index 165e23892b..eb7a42d786 100644 --- a/providers/aws/resources/aws_shield.go +++ b/providers/aws/resources/aws_shield.go @@ -178,3 +178,92 @@ func (a *mqlAwsShieldProtectionGroup) id() (string, error) { } return "aws.shield.protectionGroup/" + a.Id.Data, a.Id.Error } + +func (a *mqlAwsShield) drtAccess() (*mqlAwsShieldDrtAccess, error) { + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + svc := conn.Shield("us-east-1") + ctx := context.Background() + + resp, err := svc.DescribeDRTAccess(ctx, &shield.DescribeDRTAccessInput{}) + if err != nil { + if Is400AccessDeniedError(err) { + a.DrtAccess.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + var notFoundErr *shieldtypes.ResourceNotFoundException + if errors.As(err, ¬FoundErr) { + a.DrtAccess.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + return nil, err + } + + mqlDrt, err := CreateResource(a.MqlRuntime, "aws.shield.drtAccess", + map[string]*llx.RawData{ + "logBucketList": llx.ArrayData(llx.TArr2Raw(resp.LogBucketList), "string"), + }) + if err != nil { + return nil, err + } + mqlDrtAccess := mqlDrt.(*mqlAwsShieldDrtAccess) + mqlDrtAccess.cacheRoleArn = resp.RoleArn + return mqlDrtAccess, nil +} + +type mqlAwsShieldDrtAccessInternal struct { + cacheRoleArn *string +} + +func (a *mqlAwsShieldDrtAccess) iamRole() (*mqlAwsIamRole, error) { + if a.cacheRoleArn == nil || *a.cacheRoleArn == "" { + a.IamRole.State = plugin.StateIsNull | plugin.StateIsSet + return nil, nil + } + res, err := NewResource(a.MqlRuntime, "aws.iam.role", + map[string]*llx.RawData{"arn": llx.StringDataPtr(a.cacheRoleArn)}) + if err != nil { + return nil, err + } + return res.(*mqlAwsIamRole), nil +} + +func (a *mqlAwsShieldDrtAccess) id() (string, error) { + return "aws.shield.drtAccess", nil +} + +func (a *mqlAwsShield) emergencyContacts() ([]any, error) { + conn := a.MqlRuntime.Connection.(*connection.AwsConnection) + svc := conn.Shield("us-east-1") + ctx := context.Background() + + resp, err := svc.DescribeEmergencyContactSettings(ctx, &shield.DescribeEmergencyContactSettingsInput{}) + if err != nil { + if Is400AccessDeniedError(err) { + return []any{}, nil + } + var notFoundErr *shieldtypes.ResourceNotFoundException + if errors.As(err, ¬FoundErr) { + return []any{}, nil + } + return nil, err + } + + res := []any{} + for _, ec := range resp.EmergencyContactList { + mqlContact, err := CreateResource(a.MqlRuntime, "aws.shield.emergencyContact", + map[string]*llx.RawData{ + "emailAddress": llx.StringDataPtr(ec.EmailAddress), + "phoneNumber": llx.StringDataPtr(ec.PhoneNumber), + "contactNotes": llx.StringDataPtr(ec.ContactNotes), + }) + if err != nil { + return nil, err + } + res = append(res, mqlContact) + } + return res, nil +} + +func (a *mqlAwsShieldEmergencyContact) id() (string, error) { + return "aws.shield.emergencyContact/" + a.EmailAddress.Data, nil +}