@intentius/chant-lexicon-aws 0.124.30 → 0.124.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/dynamodb.js +41 -0
- package/dist/actions/ecr.js +9 -0
- package/dist/actions/ecs.js +5 -0
- package/dist/actions/iam.js +3 -0
- package/dist/actions/index.js +9 -0
- package/dist/actions/lambda.js +11 -0
- package/dist/actions/logs.js +4 -0
- package/dist/actions/s3.js +40 -0
- package/dist/actions/sns.js +5 -0
- package/dist/actions/sqs.js +15 -0
- package/dist/agentcore/trace-fetch.d.ts.map +1 -1
- package/dist/agentcore/trace-fetch.js +472 -0
- package/dist/agentcore/trace-render.js +359 -0
- package/dist/ambient.js +148 -0
- package/dist/api/credential-chain.d.ts +30 -3
- package/dist/api/credential-chain.d.ts.map +1 -1
- package/dist/api/credential-chain.js +509 -0
- package/dist/api/read-client.d.ts +16 -43
- package/dist/api/read-client.d.ts.map +1 -1
- package/dist/api/read-client.js +458 -0
- package/dist/api/sigv4.d.ts +4 -4
- package/dist/api/sigv4.js +185 -0
- package/dist/behaviour-kinds.js +114 -0
- package/dist/caller-identity.d.ts +3 -5
- package/dist/caller-identity.d.ts.map +1 -1
- package/dist/caller-identity.js +146 -0
- package/dist/codegen/docs-cli.js +2 -0
- package/dist/codegen/docs.js +120 -0
- package/dist/codegen/enum-overlay.js +162 -0
- package/dist/codegen/extensions.js +139 -0
- package/dist/codegen/fallback.js +32 -0
- package/dist/codegen/generate-cli.js +15 -0
- package/dist/codegen/generate-lexicon.js +70 -0
- package/dist/codegen/generate-typescript.js +226 -0
- package/dist/codegen/generate.d.ts.map +1 -1
- package/dist/codegen/generate.js +234 -0
- package/dist/codegen/naming.js +135 -0
- package/dist/codegen/package.js +67 -0
- package/dist/codegen/patches.d.ts +26 -1
- package/dist/codegen/patches.d.ts.map +1 -1
- package/dist/codegen/patches.js +90 -0
- package/dist/codegen/property-overlay.js +85 -0
- package/dist/codegen/property-overlay.json +1 -16
- package/dist/codegen/sam.js +402 -0
- package/dist/codegen/typecheck.js +4 -0
- package/dist/codegen/versions.js +31 -0
- package/dist/components/__tests__/mock-cloud-executor.js +326 -0
- package/dist/components/apply.d.ts +44 -1
- package/dist/components/apply.d.ts.map +1 -1
- package/dist/components/apply.js +752 -0
- package/dist/components/builders.js +37 -0
- package/dist/components/capability-plugin.js +66 -0
- package/dist/components/cloud-executor.d.ts +35 -0
- package/dist/components/cloud-executor.d.ts.map +1 -1
- package/dist/components/cloud-executor.js +576 -0
- package/dist/components/config-bom.js +207 -0
- package/dist/components/host-delivery.js +117 -0
- package/dist/components/index.js +18 -0
- package/dist/components/job-submission.js +77 -0
- package/dist/components/publish.js +234 -0
- package/dist/components/safety.js +62 -0
- package/dist/components/wait-aws.js +68 -0
- package/dist/composites/agentcore-agent.js +187 -0
- package/dist/composites/agentcore-trust-policy.js +13 -0
- package/dist/composites/alb-shared.js +84 -0
- package/dist/composites/bucket-deployment.js +93 -0
- package/dist/composites/catalog.js +2714 -0
- package/dist/composites/dynamodb-table.js +66 -0
- package/dist/composites/ec2-instance-bundle.js +75 -0
- package/dist/composites/ec2-instance-role.js +26 -0
- package/dist/composites/ecr-repository.js +64 -0
- package/dist/composites/ecs-trust-policy.js +10 -0
- package/dist/composites/efs-with-access-point.js +44 -0
- package/dist/composites/eks-cluster.js +118 -0
- package/dist/composites/fargate-alb.js +216 -0
- package/dist/composites/fargate-service.js +222 -0
- package/dist/composites/index.js +28 -0
- package/dist/composites/lambda-api.js +15 -0
- package/dist/composites/lambda-dynamodb.js +77 -0
- package/dist/composites/lambda-eventbridge.js +27 -0
- package/dist/composites/lambda-function.js +54 -0
- package/dist/composites/lambda-s3.js +93 -0
- package/dist/composites/lambda-sns.js +23 -0
- package/dist/composites/lambda-sqs.js +34 -0
- package/dist/composites/landing-zone.js +82 -0
- package/dist/composites/microvm-app.js +293 -0
- package/dist/composites/minimal-vpc.js +40 -0
- package/dist/composites/monitoring-stack.js +105 -0
- package/dist/composites/nlb-service.js +61 -0
- package/dist/composites/rds-instance.js +98 -0
- package/dist/composites/scheduled-lambda.js +28 -0
- package/dist/composites/solr-fargate-service.js +33 -0
- package/dist/composites/step-functions-workflow.js +78 -0
- package/dist/composites/vpc-default.js +132 -0
- package/dist/condition.js +43 -0
- package/dist/coverage.js +4 -0
- package/dist/deep-observe.d.ts.map +1 -1
- package/dist/deep-observe.js +709 -0
- package/dist/deep-topology.js +226 -0
- package/dist/default-tags.js +50 -0
- package/dist/defaults.js +85 -0
- package/dist/dependencies.js +269 -0
- package/dist/detect.js +21 -0
- package/dist/disruption.d.ts.map +1 -1
- package/dist/disruption.js +129 -0
- package/dist/effect-receipt-row.js +107 -0
- package/dist/generated/index.d.ts +1297 -82
- package/dist/generated/index.d.ts.map +1 -1
- package/dist/generated/index.js +12382 -0
- package/dist/generated/runtime.js +4 -0
- package/dist/governance.js +131 -0
- package/dist/identity-observe.d.ts.map +1 -1
- package/dist/identity-observe.js +127 -0
- package/dist/import/generator.js +757 -0
- package/dist/import/live-export.js +34 -0
- package/dist/import/parser.js +394 -0
- package/dist/index.js +69 -0
- package/dist/integrity.json +6 -6
- package/dist/intrinsics.js +393 -0
- package/dist/lint/audit-catalog.js +87 -0
- package/dist/lint/audit-lineage.js +150 -0
- package/dist/lint/post-synth/cf-refs.js +247 -0
- package/dist/lint/post-synth/cor020.js +60 -0
- package/dist/lint/post-synth/ext001.d.ts.map +1 -1
- package/dist/lint/post-synth/ext001.js +197 -0
- package/dist/lint/post-synth/index.js +124 -0
- package/dist/lint/post-synth/waw010.js +41 -0
- package/dist/lint/post-synth/waw011.js +41 -0
- package/dist/lint/post-synth/waw013.js +38 -0
- package/dist/lint/post-synth/waw014.js +42 -0
- package/dist/lint/post-synth/waw015.js +88 -0
- package/dist/lint/post-synth/waw016.d.ts.map +1 -1
- package/dist/lint/post-synth/waw016.js +116 -0
- package/dist/lint/post-synth/waw017.js +43 -0
- package/dist/lint/post-synth/waw018.js +61 -0
- package/dist/lint/post-synth/waw019.js +64 -0
- package/dist/lint/post-synth/waw020.js +56 -0
- package/dist/lint/post-synth/waw021.js +44 -0
- package/dist/lint/post-synth/waw022.js +36 -0
- package/dist/lint/post-synth/waw023.js +40 -0
- package/dist/lint/post-synth/waw024.js +46 -0
- package/dist/lint/post-synth/waw025.js +36 -0
- package/dist/lint/post-synth/waw026.js +38 -0
- package/dist/lint/post-synth/waw027.js +41 -0
- package/dist/lint/post-synth/waw028.js +39 -0
- package/dist/lint/post-synth/waw029.js +54 -0
- package/dist/lint/post-synth/waw030.js +282 -0
- package/dist/lint/post-synth/waw031.js +58 -0
- package/dist/lint/post-synth/waw032.js +45 -0
- package/dist/lint/post-synth/waw033.js +75 -0
- package/dist/lint/post-synth/waw034.js +52 -0
- package/dist/lint/post-synth/waw035.js +56 -0
- package/dist/lint/post-synth/waw036.js +79 -0
- package/dist/lint/post-synth/waw037.js +67 -0
- package/dist/lint/post-synth/waw038.js +42 -0
- package/dist/lint/post-synth/waw039.js +42 -0
- package/dist/lint/post-synth/waw040.js +45 -0
- package/dist/lint/post-synth/waw041.js +40 -0
- package/dist/lint/post-synth/waw042.js +99 -0
- package/dist/lint/post-synth/waw043.js +51 -0
- package/dist/lint/post-synth/waw044.js +64 -0
- package/dist/lint/post-synth/waw045.js +49 -0
- package/dist/lint/post-synth/waw046.js +52 -0
- package/dist/lint/post-synth/waw047.js +43 -0
- package/dist/lint/post-synth/waw048.js +40 -0
- package/dist/lint/post-synth/waw049.js +78 -0
- package/dist/lint/post-synth/waw050.js +44 -0
- package/dist/lint/post-synth/waw051.js +41 -0
- package/dist/lint/post-synth/waw052.js +43 -0
- package/dist/lint/post-synth/waw053.js +43 -0
- package/dist/lint/post-synth/waw054.js +41 -0
- package/dist/lint/post-synth/waw055.js +41 -0
- package/dist/lint/post-synth/waw056.js +65 -0
- package/dist/lint/post-synth/waw057.js +43 -0
- package/dist/lint/post-synth/waw058.js +61 -0
- package/dist/lint/post-synth/waw059.js +338 -0
- package/dist/lint/post-synth/waw060.js +83 -0
- package/dist/lint/post-synth/waw061.js +60 -0
- package/dist/lint/post-synth/waw062.js +0 -0
- package/dist/lint/post-synth/waw063.js +0 -0
- package/dist/lint/post-synth/waw064.js +45 -0
- package/dist/lint/post-synth/waw065.js +104 -0
- package/dist/lint/post-synth/waw066.js +145 -0
- package/dist/lint/post-synth/waw067.js +115 -0
- package/dist/lint/post-synth/waw068.js +69 -0
- package/dist/lint/post-synth/waw069.js +0 -0
- package/dist/lint/rules/hardcoded-region.js +38 -0
- package/dist/lint/rules/iam-wildcard.js +60 -0
- package/dist/lint/rules/index.js +6 -0
- package/dist/lint/rules/s3-encryption.js +60 -0
- package/dist/live-attrs.js +42 -0
- package/dist/lsp/completions.d.ts.map +1 -1
- package/dist/lsp/completions.js +18 -0
- package/dist/lsp/hover.d.ts.map +1 -1
- package/dist/lsp/hover.js +66 -0
- package/dist/manifest.json +1 -1
- package/dist/mapping.js +33 -0
- package/dist/meta.json +17359 -784
- package/dist/nested-stack.js +95 -0
- package/dist/okf/index.md +203 -0
- package/dist/okf/rules/EXT001.md +1 -0
- package/dist/okf/rules/WAW016.md +2 -0
- package/dist/okf/rules/WAW019.md +1 -0
- package/dist/okf/rules/WAW028.md +1 -0
- package/dist/okf/rules/WAW030.md +2 -0
- package/dist/okf/rules/WAW039.md +1 -0
- package/dist/okf/rules/WAW049.md +1 -0
- package/dist/okf/rules/WAW056.md +1 -0
- package/dist/okf/rules/WAW058.md +1 -0
- package/dist/okf/rules/WAW062.md +1 -0
- package/dist/okf/rules/WAW064.md +1 -0
- package/dist/okf/rules/WAW065.md +1 -0
- package/dist/okf/rules/WAW066.md +1 -0
- package/dist/okf/rules/WAW067.md +1 -0
- package/dist/okf/rules/WAW068.md +1 -0
- package/dist/okf/rules/WAW069.md +4 -0
- package/dist/okf/types/AIWorkloadConfig.md +23 -0
- package/dist/okf/types/ARCRegionSwitchPlan.md +1 -0
- package/dist/okf/types/AccountAccessApplication.md +28 -0
- package/dist/okf/types/AccountAccessEntitlement.md +22 -0
- package/dist/okf/types/ActionTarget.md +20 -0
- package/dist/okf/types/AdConfiguration.md +21 -0
- package/dist/okf/types/Adapter.md +26 -0
- package/dist/okf/types/AgentContext.md +35 -0
- package/dist/okf/types/AgentGoal.md +31 -0
- package/dist/okf/types/AgentProfile.md +34 -0
- package/dist/okf/types/Alarm.md +3 -1
- package/dist/okf/types/AlarmModel.md +14 -9
- package/dist/okf/types/AmplifyWebhook.md +25 -0
- package/dist/okf/types/ApiCache.md +8 -8
- package/dist/okf/types/ApiGatewayManagedOverrides.md +5 -5
- package/dist/okf/types/AppAuthorization.md +35 -0
- package/dist/okf/types/AppBlockBuilder.md +1 -0
- package/dist/okf/types/AppInstance.md +2 -2
- package/dist/okf/types/AppInstanceBot.md +2 -2
- package/dist/okf/types/AppStreamFleet.md +3 -2
- package/dist/okf/types/AppSyncApiKey.md +6 -6
- package/dist/okf/types/AppSyncType.md +22 -0
- package/dist/okf/types/ApplicationStatusCheck.md +36 -0
- package/dist/okf/types/ApplicationVersion.md +4 -1
- package/dist/okf/types/ApplicationsList.md +26 -0
- package/dist/okf/types/ApprovalPolicy.md +28 -0
- package/dist/okf/types/ArchiveRule.md +24 -0
- package/dist/okf/types/Asset.md +30 -0
- package/dist/okf/types/Backup.md +31 -0
- package/dist/okf/types/BedrockAgentCoreDataset.md +1 -1
- package/dist/okf/types/BedrockAgentCoreGateway.md +3 -0
- package/dist/okf/types/BedrockSession.md +28 -0
- package/dist/okf/types/BillEstimate.md +35 -0
- package/dist/okf/types/Brand.md +32 -0
- package/dist/okf/types/CallAnalyticsCategory.md +25 -0
- package/dist/okf/types/Campaign.md +28 -0
- package/dist/okf/types/CapacityProvider.md +30 -0
- package/dist/okf/types/Case.md +24 -0
- package/dist/okf/types/CertificateAssociation.md +13 -0
- package/dist/okf/types/ChangeSet.md +36 -0
- package/dist/okf/types/ChannelFlow.md +29 -0
- package/dist/okf/types/ChimeChannel.md +39 -0
- package/dist/okf/types/Classifier.md +6 -6
- package/dist/okf/types/ClientVpnAuthorizationRule.md +6 -6
- package/dist/okf/types/ClientVpnEndpoint.md +2 -0
- package/dist/okf/types/ClientVpnRoute.md +5 -5
- package/dist/okf/types/CloudConnector.md +29 -0
- package/dist/okf/types/Cluster.md +39 -0
- package/dist/okf/types/ClusterSchedulerConfig.md +30 -0
- package/dist/okf/types/CodeCommitRepository.md +12 -12
- package/dist/okf/types/CodeConnectionsHost.md +26 -0
- package/dist/okf/types/CodeRepository.md +5 -5
- package/dist/okf/types/CompositeAlarm.md +1 -0
- package/dist/okf/types/ComputeEnvironment.md +2 -0
- package/dist/okf/types/ComputeNodeGroup.md +1 -1
- package/dist/okf/types/ComputeQuota.md +34 -0
- package/dist/okf/types/ConfigRule.md +1 -1
- package/dist/okf/types/ConfigurationRecorder.md +7 -6
- package/dist/okf/types/ConnectAttachment.md +2 -0
- package/dist/okf/types/ConnectQueue.md +5 -1
- package/dist/okf/types/ConnectVocabulary.md +28 -0
- package/dist/okf/types/ConnectionType.md +24 -0
- package/dist/okf/types/ConsentPortal.md +33 -0
- package/dist/okf/types/ContactMethod.md +29 -0
- package/dist/okf/types/ContainerAssociation.md +26 -0
- package/dist/okf/types/ContainerFleet.md +1 -1
- package/dist/okf/types/ContainerGroupDefinition.md +1 -1
- package/dist/okf/types/Content.md +40 -0
- package/dist/okf/types/ContentAssociation.md +28 -0
- package/dist/okf/types/CustomDetectionRuleAssociation.md +28 -0
- package/dist/okf/types/CustomEntityType.md +4 -9
- package/dist/okf/types/Customization.md +22 -0
- package/dist/okf/types/CwIntegration.md +31 -0
- package/dist/okf/types/DAXParameterGroup.md +3 -8
- package/dist/okf/types/DAXSubnetGroup.md +0 -5
- package/dist/okf/types/DBClusterEndpoint.md +31 -0
- package/dist/okf/types/DBProxyTargetGroup.md +1 -0
- package/dist/okf/types/DBSnapshot.md +62 -0
- package/dist/okf/types/DLMLifecyclePolicy.md +12 -12
- package/dist/okf/types/DLPSetting.md +31 -0
- package/dist/okf/types/DMSInstanceProfile.md +1 -1
- package/dist/okf/types/DRSLaunchConfigurationTemplate.md +28 -0
- package/dist/okf/types/Daemon.md +1 -0
- package/dist/okf/types/DataExchangeDataSet.md +29 -0
- package/dist/okf/types/DataIntegrationFlow.md +27 -0
- package/dist/okf/types/DataMigration.md +1 -1
- package/dist/okf/types/DataProvider.md +2 -1
- package/dist/okf/types/DataQualityRuleset.md +6 -11
- package/dist/okf/types/DataSource.md +23 -0
- package/dist/okf/types/Dataset.md +20 -0
- package/dist/okf/types/DatasetIntegration.md +23 -0
- package/dist/okf/types/DbCluster.md +1 -1
- package/dist/okf/types/DbInstance.md +8 -2
- package/dist/okf/types/DeadlineBudget.md +29 -0
- package/dist/okf/types/DelegationSet.md +23 -0
- package/dist/okf/types/DeliveryChannel.md +6 -11
- package/dist/okf/types/DevOpsAgentAgentSpace.md +4 -0
- package/dist/okf/types/DevOpsAgentService.md +1 -0
- package/dist/okf/types/DevOpsAgentTrigger.md +28 -0
- package/dist/okf/types/DirectConnectGatewayAttachment.md +2 -0
- package/dist/okf/types/Directory.md +60 -0
- package/dist/okf/types/DocDBDBClusterParameterGroup.md +5 -10
- package/dist/okf/types/DocDBDBSubnetGroup.md +4 -9
- package/dist/okf/types/DocDBElasticClusterSnapshot.md +36 -0
- package/dist/okf/types/DocumentClassifierEndpoint.md +27 -0
- package/dist/okf/types/Domain.md +27 -0
- package/dist/okf/types/EKSCertificateAuthority.md +42 -0
- package/dist/okf/types/EKSCluster.md +8 -0
- package/dist/okf/types/EcSnapshot.md +66 -0
- package/dist/okf/types/EmailIdentityCertificate.md +15 -0
- package/dist/okf/types/EndpointConfig.md +14 -13
- package/dist/okf/types/EntityRecognizer.md +27 -0
- package/dist/okf/types/EntityRecognizerEndpoint.md +31 -0
- package/dist/okf/types/EnvironmentEC2.md +13 -13
- package/dist/okf/types/EvaluationForm.md +1 -0
- package/dist/okf/types/Evaluator.md +6 -2
- package/dist/okf/types/EventAction.md +26 -0
- package/dist/okf/types/EventRule.md +2 -0
- package/dist/okf/types/EventSource.md +30 -0
- package/dist/okf/types/EventTracker.md +22 -0
- package/dist/okf/types/EventsV2EventBus.md +28 -0
- package/dist/okf/types/EventsV2ResourcePolicy.md +19 -0
- package/dist/okf/types/EventsV2Subscriber.md +39 -0
- package/dist/okf/types/ExperimentDefinition.md +39 -0
- package/dist/okf/types/ExperimentRun.md +33 -0
- package/dist/okf/types/ExperimentTrialComponent.md +13 -11
- package/dist/okf/types/FHIRDatastore.md +3 -0
- package/dist/okf/types/FSxSnapshot.md +5 -5
- package/dist/okf/types/FSxVolume.md +9 -9
- package/dist/okf/types/FeaturedResultsSet.md +26 -0
- package/dist/okf/types/Feed.md +1 -0
- package/dist/okf/types/FieldLevelEncryptionConfig.md +25 -0
- package/dist/okf/types/FieldLevelEncryptionProfile.md +22 -0
- package/dist/okf/types/FileCache.md +45 -0
- package/dist/okf/types/Filter.md +27 -0
- package/dist/okf/types/Firewall.md +6 -0
- package/dist/okf/types/FlowMediaStream.md +28 -0
- package/dist/okf/types/FlowOutput.md +1 -0
- package/dist/okf/types/FpgaImage.md +38 -0
- package/dist/okf/types/Function.md +2 -2
- package/dist/okf/types/Gateway.md +41 -0
- package/dist/okf/types/GatewayClusterAssociations.md +23 -0
- package/dist/okf/types/GatewayRateLimit.md +26 -0
- package/dist/okf/types/GatewayRule.md +32 -0
- package/dist/okf/types/GlobalReplicationGroup.md +3 -0
- package/dist/okf/types/GlobalResolver.md +1 -1
- package/dist/okf/types/GlobalTable.md +1 -0
- package/dist/okf/types/GlueConnection.md +5 -4
- package/dist/okf/types/GlueSecurityConfiguration.md +1 -6
- package/dist/okf/types/GlueSession.md +38 -0
- package/dist/okf/types/GlueTable.md +5 -10
- package/dist/okf/types/GlueWorkflow.md +5 -10
- package/dist/okf/types/Group.md +27 -0
- package/dist/okf/types/Harness.md +1 -0
- package/dist/okf/types/HostKey.md +33 -0
- package/dist/okf/types/HostedZone.md +1 -0
- package/dist/okf/types/HttpApi.md +2 -0
- package/dist/okf/types/HttpNamespace.md +5 -5
- package/dist/okf/types/HubV2.md +1 -0
- package/dist/okf/types/HumanTaskUi.md +22 -0
- package/dist/okf/types/IPv4Pool.md +28 -0
- package/dist/okf/types/ImageBuilder.md +1 -0
- package/dist/okf/types/ImageBuilderImage.md +1 -1
- package/dist/okf/types/ImagePipeline.md +1 -1
- package/dist/okf/types/InferenceComponent.md +5 -1
- package/dist/okf/types/InfluxDBBackup.md +65 -0
- package/dist/okf/types/InfluxDBCluster.md +3 -0
- package/dist/okf/types/InfrastructureConfiguration.md +2 -0
- package/dist/okf/types/IngestionDestination.md +28 -0
- package/dist/okf/types/InputSecurityGroup.md +6 -4
- package/dist/okf/types/InspectorV2Connector.md +38 -0
- package/dist/okf/types/InstanceEventWindow.md +25 -0
- package/dist/okf/types/InstanceFleetConfig.md +10 -10
- package/dist/okf/types/InstanceGroupConfig.md +3 -3
- package/dist/okf/types/InstrumentationConfig.md +31 -0
- package/dist/okf/types/IntegrationAssociation.md +3 -0
- package/dist/okf/types/IoTSiteWiseApplication.md +34 -0
- package/dist/okf/types/IoTSiteWiseDataset.md +5 -2
- package/dist/okf/types/IoTSiteWiseTask.md +24 -0
- package/dist/okf/types/IpamExternalResourceVerificationToken.md +35 -0
- package/dist/okf/types/IpamInternetRegistryAssociation.md +32 -0
- package/dist/okf/types/Job.md +35 -0
- package/dist/okf/types/JobTemplate.md +26 -0
- package/dist/okf/types/KinesisChannel.md +31 -0
- package/dist/okf/types/KinesisStream.md +1 -0
- package/dist/okf/types/LambdaResourcePolicy.md +14 -0
- package/dist/okf/types/Lexicon.md +34 -0
- package/dist/okf/types/LicenseAssetGroup.md +23 -0
- package/dist/okf/types/LicenseConfiguration.md +33 -0
- package/dist/okf/types/LicenseServerEndpoint.md +32 -0
- package/dist/okf/types/LightsailKeyPair.md +29 -0
- package/dist/okf/types/LimitsProfile.md +27 -0
- package/dist/okf/types/LocationAzureBlob.md +2 -1
- package/dist/okf/types/LocationObjectStorage.md +1 -0
- package/dist/okf/types/LogAlarm.md +2 -0
- package/dist/okf/types/MGNConnector.md +23 -0
- package/dist/okf/types/MGNLaunchConfigurationTemplate.md +37 -0
- package/dist/okf/types/MLTransform.md +15 -15
- package/dist/okf/types/MWAAServerlessWorkflow.md +3 -0
- package/dist/okf/types/ManagedNotificationAccountContactAssociation.md +1 -0
- package/dist/okf/types/ManagedNotificationAdditionalChannelAssociation.md +1 -0
- package/dist/okf/types/MediaConvertJobTemplate.md +11 -13
- package/dist/okf/types/MediaConvertQueue.md +8 -10
- package/dist/okf/types/MediaInsightsPipelineConfiguration.md +28 -0
- package/dist/okf/types/MediaLiveInput.md +41 -18
- package/dist/okf/types/MediaPackageV2Channel.md +3 -0
- package/dist/okf/types/MediaPackageV2OriginEndpoint.md +1 -0
- package/dist/okf/types/MediaPipelineKinesisVideoStreamPool.md +28 -0
- package/dist/okf/types/MediaTailorFunction.md +27 -0
- package/dist/okf/types/MedicalVocabulary.md +21 -0
- package/dist/okf/types/Member.md +26 -0
- package/dist/okf/types/Memory.md +6 -0
- package/dist/okf/types/MemoryDBSnapshot.md +29 -0
- package/dist/okf/types/Metric.md +59 -0
- package/dist/okf/types/MetricAttribution.md +23 -0
- package/dist/okf/types/MicrosoftAD.md +11 -11
- package/dist/okf/types/MigrationProject.md +8 -1
- package/dist/okf/types/Monitor.md +26 -0
- package/dist/okf/types/NFSFileShare.md +44 -0
- package/dist/okf/types/NeptuneGraphGraph.md +1 -0
- package/dist/okf/types/NetworkConnector.md +4 -0
- package/dist/okf/types/NetworkFlowMonitorScope.md +23 -0
- package/dist/okf/types/NetworkMigrationDefinition.md +31 -0
- package/dist/okf/types/NetworkSecurityManagerDeployment.md +31 -0
- package/dist/okf/types/NetworkSecurityManagerPolicy.md +32 -0
- package/dist/okf/types/NetworkSecurityManagerScope.md +29 -0
- package/dist/okf/types/NotebookInstance.md +18 -18
- package/dist/okf/types/NotebookInstanceLifecycleConfig.md +6 -5
- package/dist/okf/types/NotifyConfiguration.md +35 -0
- package/dist/okf/types/OTelEnrichment.md +2 -0
- package/dist/okf/types/OnlineEvaluationConfig.md +0 -1
- package/dist/okf/types/OrganizationConfigRule.md +7 -7
- package/dist/okf/types/Outpost.md +32 -0
- package/dist/okf/types/ParallelData.md +40 -0
- package/dist/okf/types/Partition.md +5 -5
- package/dist/okf/types/PaymentConnector.md +4 -1
- package/dist/okf/types/Pentest.md +1 -0
- package/dist/okf/types/PerfReports.md +28 -0
- package/dist/okf/types/PermissionAssociation.md +30 -0
- package/dist/okf/types/PersonalizeDataset.md +1 -0
- package/dist/okf/types/PersonalizeDatasetGroup.md +1 -0
- package/dist/okf/types/PersonalizeSchema.md +1 -0
- package/dist/okf/types/Pipeline.md +25 -0
- package/dist/okf/types/PlaybackConfiguration.md +1 -0
- package/dist/okf/types/PolicyAssociation.md +1 -1
- package/dist/okf/types/PolicyGrant.md +2 -2
- package/dist/okf/types/PolicyPrincipalAttachment.md +2 -7
- package/dist/okf/types/PortalProduct.md +24 -0
- package/dist/okf/types/PrefetchSchedule.md +25 -0
- package/dist/okf/types/PricingPlanManagerSubscription.md +31 -0
- package/dist/okf/types/PrincipalAssociation.md +27 -0
- package/dist/okf/types/PrivateDnsNamespace.md +8 -8
- package/dist/okf/types/PrivateVirtualInterface.md +1 -0
- package/dist/okf/types/ProcurementPortalPreference.md +45 -0
- package/dist/okf/types/Program.md +33 -0
- package/dist/okf/types/ProjectMembership.md +1 -1
- package/dist/okf/types/ProtocolsList.md +26 -0
- package/dist/okf/types/PublicDnsNamespace.md +7 -7
- package/dist/okf/types/PublicVirtualInterface.md +1 -0
- package/dist/okf/types/QEV2IdcApplication.md +25 -0
- package/dist/okf/types/QueryLoggingConfig.md +21 -0
- package/dist/okf/types/QuerySuggestionsBlockList.md +25 -0
- package/dist/okf/types/QuickSightAssignment.md +24 -0
- package/dist/okf/types/RAMResourceAssociation.md +27 -0
- package/dist/okf/types/RDSClusterSnapshot.md +54 -0
- package/dist/okf/types/RDSDBParameterGroup.md +5 -0
- package/dist/okf/types/RDSDeployment.md +41 -0
- package/dist/okf/types/RcsAgent.md +38 -0
- package/dist/okf/types/ReceiptRule.md +5 -5
- package/dist/okf/types/ReceiptRuleSet.md +1 -6
- package/dist/okf/types/RecommenderFilter.md +27 -0
- package/dist/okf/types/RecommenderSchema.md +25 -0
- package/dist/okf/types/RecordSet.md +16 -22
- package/dist/okf/types/RecoveryPlan.md +28 -0
- package/dist/okf/types/RedshiftIdcApplication.md +31 -0
- package/dist/okf/types/RedshiftSnapshot.md +59 -0
- package/dist/okf/types/RegistrationAttachment.md +28 -0
- package/dist/okf/types/Registry.md +41 -0
- package/dist/okf/types/RegistryRecord.md +38 -0
- package/dist/okf/types/RelatedItem.md +24 -0
- package/dist/okf/types/ReplicationConfigurationTemplate.md +35 -0
- package/dist/okf/types/ReplicationSubnetGroup.md +4 -9
- package/dist/okf/types/ReplicationTask.md +14 -14
- package/dist/okf/types/ReportGenerator.md +29 -0
- package/dist/okf/types/ReportGroup.md +1 -3
- package/dist/okf/types/ResilienceHubV2Policy.md +1 -0
- package/dist/okf/types/ResilienceHubV2Service.md +1 -0
- package/dist/okf/types/ResourceConfiguration.md +1 -1
- package/dist/okf/types/ResourceMetricsConfiguration.md +21 -0
- package/dist/okf/types/RestApi.md +1 -0
- package/dist/okf/types/RetrievalInstruction.md +32 -0
- package/dist/okf/types/RouterOutput.md +1 -0
- package/dist/okf/types/Rule.md +31 -0
- package/dist/okf/types/RunCache.md +29 -0
- package/dist/okf/types/Runtime.md +2 -1
- package/dist/okf/types/SCNInstance.md +33 -0
- package/dist/okf/types/SDBDomain.md +2 -2
- package/dist/okf/types/SMBFileShare.md +49 -0
- package/dist/okf/types/SageMakerArtifact.md +27 -0
- package/dist/okf/types/SageMakerEndpoint.md +0 -1
- package/dist/okf/types/ScalableTarget.md +1 -0
- package/dist/okf/types/ScalingPlan.md +6 -6
- package/dist/okf/types/ScheduledReport.md +31 -0
- package/dist/okf/types/SecondaryNetwork.md +26 -0
- package/dist/okf/types/SecurityAgentArtifact.md +25 -0
- package/dist/okf/types/SecurityAgentIntegration.md +31 -0
- package/dist/okf/types/Server.md +1 -0
- package/dist/okf/types/ServerlessCache.md +2 -0
- package/dist/okf/types/ServerlessCacheSnapshot.md +31 -0
- package/dist/okf/types/ServerlessRepoApplication.md +32 -0
- package/dist/okf/types/ServiceDiscoveryInstance.md +3 -7
- package/dist/okf/types/SipMediaApplication.md +27 -0
- package/dist/okf/types/SiteToSiteVpnAttachment.md +2 -0
- package/dist/okf/types/SnapshotCopyGrant.md +20 -0
- package/dist/okf/types/Solution.md +1 -0
- package/dist/okf/types/SourceAssociation.md +25 -0
- package/dist/okf/types/SourceCredential.md +6 -6
- package/dist/okf/types/SourceNetwork.md +23 -0
- package/dist/okf/types/StackFleetAssociation.md +2 -7
- package/dist/okf/types/StorageTierPolicy.md +20 -0
- package/dist/okf/types/StorageVirtualMachine.md +9 -9
- package/dist/okf/types/Stream.md +28 -0
- package/dist/okf/types/SubnetCidrReservation.md +26 -0
- package/dist/okf/types/SubscriptionProvider.md +26 -0
- package/dist/okf/types/SupportPermit.md +29 -0
- package/dist/okf/types/Table.md +2 -1
- package/dist/okf/types/TableOptimizer.md +5 -10
- package/dist/okf/types/Tape.md +31 -0
- package/dist/okf/types/Template.md +36 -0
- package/dist/okf/types/Tenant.md +2 -0
- package/dist/okf/types/Terminology.md +39 -0
- package/dist/okf/types/Thesaurus.md +25 -0
- package/dist/okf/types/ThingPrincipalAttachment.md +3 -8
- package/dist/okf/types/Topic.md +1 -0
- package/dist/okf/types/TopicRuleDestination.md +1 -0
- package/dist/okf/types/TrafficPolicy.md +26 -0
- package/dist/okf/types/TrafficPolicyInstance.md +28 -0
- package/dist/okf/types/TranscribeVocabulary.md +27 -0
- package/dist/okf/types/TransitGatewayRouteTableAttachment.md +2 -0
- package/dist/okf/types/TransitVirtualInterface.md +1 -0
- package/dist/okf/types/Tunnel.md +25 -0
- package/dist/okf/types/UsageLimit.md +26 -0
- package/dist/okf/types/UseCase.md +23 -0
- package/dist/okf/types/User.md +47 -0
- package/dist/okf/types/VPCEndpoint.md +1 -1
- package/dist/okf/types/VPCEndpointService.md +6 -0
- package/dist/okf/types/VPCPeeringConnection.md +2 -2
- package/dist/okf/types/VPNConcentrator.md +1 -1
- package/dist/okf/types/VPNConnection.md +1 -1
- package/dist/okf/types/VerifiedDestinationNumber.md +25 -0
- package/dist/okf/types/View.md +27 -0
- package/dist/okf/types/VoiceConnector.md +30 -0
- package/dist/okf/types/Volume.md +44 -0
- package/dist/okf/types/Vpc.md +1 -1
- package/dist/okf/types/VpcAttachment.md +2 -0
- package/dist/okf/types/WebFunction.md +27 -0
- package/dist/okf/types/WebFunctionEndpoint.md +44 -0
- package/dist/okf/types/WebFunctionRevision.md +32 -0
- package/dist/okf/types/WickrNetwork.md +27 -0
- package/dist/okf/types/Worker.md +29 -0
- package/dist/okf/types/Workforce.md +26 -0
- package/dist/okf/types/Workload.md +35 -0
- package/dist/okf/types/WorkloadEstimate.md +35 -0
- package/dist/okf/types/Workspace.md +28 -0
- package/dist/okf/types/Workteam.md +8 -8
- package/dist/op/activities/aws-apply.js +214 -0
- package/dist/op/activities/floci.js +97 -0
- package/dist/op/activities/index.js +32 -0
- package/dist/op/builders.js +50 -0
- package/dist/ownership.js +52 -0
- package/dist/package-cli.js +25 -0
- package/dist/parameter.js +19 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +1006 -0
- package/dist/properties.js +166 -0
- package/dist/pseudo.js +25 -0
- package/dist/receipt-store.d.ts.map +1 -1
- package/dist/receipt-store.js +233 -0
- package/dist/reference-catalog.js +106 -0
- package/dist/rules/ext001.ts +3 -3
- package/dist/rules/waw016.ts +2 -2
- package/dist/serializer.js +529 -0
- package/dist/spec/fetch.js +193 -0
- package/dist/spec/parse.js +259 -0
- package/dist/spec/pin.js +185 -0
- package/dist/spec/pinned-types.json +203 -0
- package/dist/stack-errors.js +14 -0
- package/dist/taggable.d.ts.map +1 -1
- package/dist/taggable.js +33 -0
- package/dist/teardown.js +199 -0
- package/dist/template-sections.js +53 -0
- package/dist/template-transform.js +50 -0
- package/dist/types/index.d.ts +18847 -1124
- package/dist/validate-cli.js +16 -0
- package/dist/validate.js +33 -0
- package/package.json +9 -9
- package/src/agentcore/trace-fetch.ts +2 -1
- package/src/api/credential-chain.ts +119 -9
- package/src/api/credential-isolation.test.ts +72 -0
- package/src/api/read-client-chain.test.ts +159 -0
- package/src/api/read-client.ts +42 -6
- package/src/api/sigv4.ts +4 -4
- package/src/caller-identity.ts +3 -5
- package/src/codegen/any-budget.test.ts +12 -2
- package/src/codegen/generate.ts +9 -0
- package/src/codegen/package.ts +2 -2
- package/src/codegen/patches.test.ts +95 -0
- package/src/codegen/patches.ts +53 -9
- package/src/codegen/property-overlay.json +1 -16
- package/src/components/apply.ts +218 -6
- package/src/components/cfn-plan-floci.e2e.test.ts +76 -0
- package/src/components/cfn-plan.test.ts +225 -16
- package/src/components/cloud-executor.ts +73 -25
- package/src/deep-observe.ts +2 -1
- package/src/disruption.ts +2 -1
- package/src/generated/index.d.ts +18847 -1124
- package/src/generated/index.ts +1376 -161
- package/src/generated/lexicon-aws.json +17359 -784
- package/src/identity-observe.ts +2 -1
- package/src/lint/post-synth/ext001.ts +3 -3
- package/src/lint/post-synth/waw016.ts +2 -2
- package/src/lsp/completions.ts +2 -1
- package/src/lsp/hover.ts +2 -1
- package/src/plugin.ts +2 -1
- package/src/receipt-store.ts +2 -1
- package/src/spec/pin.ts +3 -3
- package/src/spec/pinned-types.json +203 -0
- package/src/taggable.ts +2 -2
package/src/api/read-client.ts
CHANGED
|
@@ -21,8 +21,11 @@
|
|
|
21
21
|
*
|
|
22
22
|
* Requests are signed with SigV4 (#1686) when credentials resolve — see
|
|
23
23
|
* `./sigv4.ts`, which holds the implementation so that cedar's AVP client can
|
|
24
|
-
* adopt the same one rather than growing a second.
|
|
25
|
-
*
|
|
24
|
+
* adopt the same one rather than growing a second. With none injected, they
|
|
25
|
+
* resolve through the AWS CLI's chain (`./credential-chain.ts`, the one
|
|
26
|
+
* `chant lifecycle whoami` walks) once per process, by
|
|
27
|
+
* {@link withChainCredentials} (#3958). Two cases stay unsigned, and both are
|
|
28
|
+
* deliberate:
|
|
26
29
|
*
|
|
27
30
|
* - **No credentials.** The caller's existing no-credentials path is
|
|
28
31
|
* untouched: the request still goes out carrying only the credential scope
|
|
@@ -41,6 +44,8 @@
|
|
|
41
44
|
* a lexicon build compiles against the published core, so a helper hoisted
|
|
42
45
|
* into core would not be visible to either until the next core release.
|
|
43
46
|
*/
|
|
47
|
+
import { homedir } from "node:os";
|
|
48
|
+
import { transportCredentials } from "./credential-chain";
|
|
44
49
|
import { resolveCredentials, signRequest, type AwsCredentialSource } from "./sigv4";
|
|
45
50
|
|
|
46
51
|
export type { AwsCredentials, AwsCredentialResolver, AwsCredentialSource } from "./sigv4";
|
|
@@ -219,6 +224,37 @@ export function requestHeaders(
|
|
|
219
224
|
});
|
|
220
225
|
}
|
|
221
226
|
|
|
227
|
+
/**
|
|
228
|
+
* `options` with literal credentials from the AWS CLI's credential chain
|
|
229
|
+
* (#3958), when the caller injected none and the request will be signed.
|
|
230
|
+
*
|
|
231
|
+
* Every request function awaits this after {@link withEndpointOverride} and
|
|
232
|
+
* before {@link requestHeaders}, whose seam is synchronous. The chain is not
|
|
233
|
+
* walked against an endpoint override that is not signed: an emulator read
|
|
234
|
+
* should not start an SSO refresh or a `credential_process`, the same rule
|
|
235
|
+
* whoami follows. When nothing resolves the options come back unchanged and
|
|
236
|
+
* the request goes out unsigned, as it did before.
|
|
237
|
+
*
|
|
238
|
+
* An injected `env` without `HOME`, `USERPROFILE`, `AWS_CONFIG_FILE` or
|
|
239
|
+
* `AWS_SHARED_CREDENTIALS_FILE` names no shared files, so only its keys are
|
|
240
|
+
* read; the process's own `~/.aws` is not consulted behind it.
|
|
241
|
+
*/
|
|
242
|
+
export async function withChainCredentials(options: AwsReadClientOptions): Promise<AwsReadClientOptions> {
|
|
243
|
+
if (options.credentials) return options;
|
|
244
|
+
if (options.endpoint && options.signEndpointOverride !== true) return options;
|
|
245
|
+
const env = options.env ?? process.env;
|
|
246
|
+
const home = env.HOME || env.USERPROFILE;
|
|
247
|
+
if (options.env && options.env !== process.env && !home && !env.AWS_CONFIG_FILE && !env.AWS_SHARED_CREDENTIALS_FILE) {
|
|
248
|
+
return options;
|
|
249
|
+
}
|
|
250
|
+
const credentials = await transportCredentials({
|
|
251
|
+
env,
|
|
252
|
+
home: home || homedir(),
|
|
253
|
+
sts: { ...(options.http ? { http: options.http } : {}), env },
|
|
254
|
+
});
|
|
255
|
+
return credentials ? { ...options, credentials } : options;
|
|
256
|
+
}
|
|
257
|
+
|
|
222
258
|
/* ── CloudFormation Query ─────────────────────────────────────────────────── */
|
|
223
259
|
|
|
224
260
|
/**
|
|
@@ -275,7 +311,7 @@ export async function cfnQuery(
|
|
|
275
311
|
params: Record<string, string>,
|
|
276
312
|
options: AwsReadClientOptions = {},
|
|
277
313
|
): Promise<string> {
|
|
278
|
-
options = withEndpointOverride("cloudformation", options);
|
|
314
|
+
options = await withChainCredentials(withEndpointOverride("cloudformation", options));
|
|
279
315
|
const http = options.http ?? defaultHttp;
|
|
280
316
|
const url = serviceUrl("cloudformation", options.endpoint, options.region);
|
|
281
317
|
const body = new URLSearchParams({ Action: action, Version: CFN_API_VERSION, ...params }).toString();
|
|
@@ -388,7 +424,7 @@ export interface CallerIdentity {
|
|
|
388
424
|
* and the narrower the surface, the fewer ways a credential reaches a report.
|
|
389
425
|
*/
|
|
390
426
|
export async function getCallerIdentity(options: AwsReadClientOptions = {}): Promise<CallerIdentity> {
|
|
391
|
-
options = withEndpointOverride("sts", options);
|
|
427
|
+
options = await withChainCredentials(withEndpointOverride("sts", options));
|
|
392
428
|
const http = options.http ?? defaultHttp;
|
|
393
429
|
const url = serviceUrl("sts", options.endpoint, options.region);
|
|
394
430
|
const body = new URLSearchParams({ Action: "GetCallerIdentity", Version: STS_API_VERSION }).toString();
|
|
@@ -431,7 +467,7 @@ export async function assumeRole(
|
|
|
431
467
|
params: { roleArn: string; sessionName: string; externalId?: string; durationSeconds?: number },
|
|
432
468
|
options: AwsReadClientOptions = {},
|
|
433
469
|
): Promise<AssumedRoleCredentials> {
|
|
434
|
-
options = withEndpointOverride("sts", options);
|
|
470
|
+
options = await withChainCredentials(withEndpointOverride("sts", options));
|
|
435
471
|
const http = options.http ?? defaultHttp;
|
|
436
472
|
const url = serviceUrl("sts", options.endpoint, options.region);
|
|
437
473
|
const body = new URLSearchParams({
|
|
@@ -484,7 +520,7 @@ async function cloudControl(
|
|
|
484
520
|
payload: Record<string, unknown>,
|
|
485
521
|
options: AwsReadClientOptions = {},
|
|
486
522
|
): Promise<Record<string, unknown>> {
|
|
487
|
-
options = withEndpointOverride("cloudcontrolapi", options);
|
|
523
|
+
options = await withChainCredentials(withEndpointOverride("cloudcontrolapi", options));
|
|
488
524
|
const http = options.http ?? defaultHttp;
|
|
489
525
|
const url = serviceUrl("cloudcontrolapi", options.endpoint, options.region);
|
|
490
526
|
const payloadJson = JSON.stringify(payload);
|
package/src/api/sigv4.ts
CHANGED
|
@@ -70,10 +70,10 @@ export type AwsCredentialSource = AwsCredentials | AwsCredentialResolver;
|
|
|
70
70
|
* environment — a key id with no secret — is absent rather than a signature
|
|
71
71
|
* that cannot verify.
|
|
72
72
|
*
|
|
73
|
-
*
|
|
74
|
-
* credential
|
|
75
|
-
*
|
|
76
|
-
*
|
|
73
|
+
* The shared profile files are resolved asynchronously by
|
|
74
|
+
* `./credential-chain.ts`, and the read transport passes its answer in as
|
|
75
|
+
* literal credentials (#3958), so this function stays synchronous. Not
|
|
76
|
+
* implemented anywhere: IMDS and the container credential endpoints.
|
|
77
77
|
*/
|
|
78
78
|
export function resolveCredentials(
|
|
79
79
|
source?: AwsCredentialSource,
|
package/src/caller-identity.ts
CHANGED
|
@@ -29,11 +29,9 @@
|
|
|
29
29
|
* while `aws sts get-caller-identity` answered with a principal. An expired
|
|
30
30
|
* SSO session is `no-credentials` naming `aws sso login --profile <p>`.
|
|
31
31
|
*
|
|
32
|
-
* The native read transport
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* yet say what `describeResources` signs with. The `source` column names the
|
|
36
|
-
* profile, so the difference is visible.
|
|
32
|
+
* The native read transport walks the same chain (`transportCredentials`,
|
|
33
|
+
* #3958), so a profile-sourced row also says what `describeResources` signs
|
|
34
|
+
* with.
|
|
37
35
|
*
|
|
38
36
|
* Against an endpoint override the chain is not walked: the emulator call is
|
|
39
37
|
* unsigned whatever resolves, and a whoami against Floci should not start an
|
|
@@ -25,9 +25,19 @@ const dtsPath = join(pkgDir, "src/generated/index.d.ts");
|
|
|
25
25
|
* with nothing beside it, one upstream `$ref` to an undeclared definition, and
|
|
26
26
|
* one `$ref` to a definition that is itself a bare `$ref`. Plus 38
|
|
27
27
|
* non-constructor `any`s (readonly attributes and intrinsic return types).
|
|
28
|
+
*
|
|
29
|
+
* The 2026-10-19 spec pin (#3960) added 5 of each, all from schemas the new
|
|
30
|
+
* spec brought in rather than from a resolver change. `: any;`:
|
|
31
|
+
* QuickSight::DLPSetting.ProviderConfig, QuickSight::ApprovalPolicy
|
|
32
|
+
* ApplicableTo.Type (exported twice) and the new Connect::Rule
|
|
33
|
+
* InAppNotificationRecipientType.UserTags (exported twice). `: any[];`:
|
|
34
|
+
* QuickSight::ApprovalPolicy Actions and AssetTypes, BedrockAgentCore::GatewayRule
|
|
35
|
+
* Actions and Conditions, and the new BedrockAgentCore::Gateway
|
|
36
|
+
* InterceptorPayloadFilter.Exclude (exported twice), less one: the bare `Group`
|
|
37
|
+
* export now names AWS::QuickSight::Group.
|
|
28
38
|
*/
|
|
29
|
-
const ANY_BUDGET =
|
|
30
|
-
const ANY_ARRAY_BUDGET =
|
|
39
|
+
const ANY_BUDGET = 231;
|
|
40
|
+
const ANY_ARRAY_BUDGET = 25;
|
|
31
41
|
|
|
32
42
|
describe.skipIf(!existsSync(dtsPath))("generated `any` budget", () => {
|
|
33
43
|
const dts = existsSync(dtsPath) ? readFileSync(dtsPath, "utf-8") : "";
|
package/src/codegen/generate.ts
CHANGED
|
@@ -104,9 +104,18 @@ const awsPipelineConfig: GeneratePipelineConfig<SchemaParseResult> = {
|
|
|
104
104
|
const { schemas: patched, stats } = applyPatches(schemas, patchesDir);
|
|
105
105
|
schemas = patched;
|
|
106
106
|
log(`Applied ${stats.patchesApplied} patches across ${stats.resourcesFixed} resources`);
|
|
107
|
+
for (const s of stats.skipped) {
|
|
108
|
+
log(`Skipped known-stale patch ${s.stale.typeName}/${s.stale.patchFile}: ${s.stale.reason} (${s.error.message})`);
|
|
109
|
+
}
|
|
107
110
|
for (const w of stats.warnings) {
|
|
108
111
|
warnings.push({ file: `${w.typeName}/${w.patchFile}`, error: w.error.message });
|
|
109
112
|
}
|
|
113
|
+
for (const r of stats.retirable) {
|
|
114
|
+
warnings.push({
|
|
115
|
+
file: `${r.typeName}/${r.patchFile}`,
|
|
116
|
+
error: `listed in KNOWN_STALE_PATCHES (src/codegen/patches.ts) but did not fail; retire the entry`,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
110
119
|
} catch (err) {
|
|
111
120
|
log(`WARNING: failed to fetch cfn-lint patches: ${err}`);
|
|
112
121
|
}
|
package/src/codegen/package.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { readFileSync } from "fs";
|
|
7
7
|
import { awsPlugin } from "../plugin";
|
|
8
8
|
import { join, dirname } from "path";
|
|
9
|
-
import {
|
|
9
|
+
import { moduleSourceDir } from "@intentius/chant/module-source";
|
|
10
10
|
import type { IntrinsicDef } from "@intentius/chant/lexicon";
|
|
11
11
|
import {
|
|
12
12
|
packagePipeline,
|
|
@@ -18,7 +18,7 @@ import { generate } from "./generate";
|
|
|
18
18
|
|
|
19
19
|
export type { PackageOptions, PackageResult };
|
|
20
20
|
|
|
21
|
-
const pkgDir = dirname(
|
|
21
|
+
const pkgDir = dirname(moduleSourceDir(import.meta.url));
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* Map intrinsic name to its CloudFormation output key.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { describe, test, expect, beforeEach, afterEach } from "vitest";
|
|
2
|
+
import { mkdtempSync, mkdirSync, rmSync, writeFileSync } from "fs";
|
|
3
|
+
import { join } from "path";
|
|
4
|
+
import { tmpdir } from "os";
|
|
5
|
+
import { applyPatches, KNOWN_STALE_PATCHES, typeNameToPatchDir, type StalePatch } from "./patches";
|
|
6
|
+
import { PINNED_VERSIONS } from "./versions";
|
|
7
|
+
|
|
8
|
+
const MEDIALIVE = "AWS::MediaLive::InputSecurityGroup";
|
|
9
|
+
|
|
10
|
+
// The patch cfn-lint v1.32.4 ships for MediaLive, verbatim.
|
|
11
|
+
const MEDIALIVE_FORMAT_PATCH = [
|
|
12
|
+
{ op: "add", path: "/definitions/InputWhitelistRuleCidr/properties/Cidr/format", value: "ipv4-network" },
|
|
13
|
+
];
|
|
14
|
+
|
|
15
|
+
// The shape the 2026-10-19 spec gives the definition, trimmed.
|
|
16
|
+
const medialiveSchema = (definition: string) =>
|
|
17
|
+
Buffer.from(
|
|
18
|
+
JSON.stringify({
|
|
19
|
+
typeName: MEDIALIVE,
|
|
20
|
+
definitions: { [definition]: { type: "object", properties: { Cidr: { type: "string" } } } },
|
|
21
|
+
properties: {},
|
|
22
|
+
}),
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
let dir: string;
|
|
26
|
+
|
|
27
|
+
const writePatch = (typeName: string, file: string, ops: unknown) => {
|
|
28
|
+
const d = join(dir, typeNameToPatchDir(typeName));
|
|
29
|
+
mkdirSync(d, { recursive: true });
|
|
30
|
+
writeFileSync(join(d, file), JSON.stringify(ops));
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
beforeEach(() => {
|
|
34
|
+
dir = mkdtempSync(join(tmpdir(), "cfn-lint-patches-"));
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
afterEach(() => {
|
|
38
|
+
rmSync(dir, { recursive: true, force: true });
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
describe("applyPatches known-stale tracking", () => {
|
|
42
|
+
test("the MediaLive patch against the renamed definition is a skip, not a warning", () => {
|
|
43
|
+
writePatch(MEDIALIVE, "format.json", MEDIALIVE_FORMAT_PATCH);
|
|
44
|
+
const schemas = new Map([[MEDIALIVE, medialiveSchema("InputWhitelistRule")]]);
|
|
45
|
+
|
|
46
|
+
const { stats } = applyPatches(schemas, dir);
|
|
47
|
+
|
|
48
|
+
expect(stats.patchesApplied).toBe(0);
|
|
49
|
+
expect(stats.warnings).toEqual([]);
|
|
50
|
+
expect(stats.skipped.map((s) => `${s.stale.typeName}/${s.stale.patchFile}`)).toEqual([`${MEDIALIVE}/format.json`]);
|
|
51
|
+
expect(stats.skipped[0].error.message).toContain("InputWhitelistRuleCidr");
|
|
52
|
+
expect(stats.retirable).toEqual([]);
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
test("a failure not on the list stays a warning", () => {
|
|
56
|
+
writePatch(MEDIALIVE, "format.json", MEDIALIVE_FORMAT_PATCH);
|
|
57
|
+
const schemas = new Map([[MEDIALIVE, medialiveSchema("InputWhitelistRule")]]);
|
|
58
|
+
|
|
59
|
+
const { stats } = applyPatches(schemas, dir, []);
|
|
60
|
+
|
|
61
|
+
expect(stats.skipped).toEqual([]);
|
|
62
|
+
expect(stats.warnings.map((w) => `${w.typeName}/${w.patchFile}`)).toEqual([`${MEDIALIVE}/format.json`]);
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
test("an entry whose patch applies again is retirable", () => {
|
|
66
|
+
writePatch(MEDIALIVE, "format.json", MEDIALIVE_FORMAT_PATCH);
|
|
67
|
+
const schemas = new Map([[MEDIALIVE, medialiveSchema("InputWhitelistRuleCidr")]]);
|
|
68
|
+
|
|
69
|
+
const { schemas: patched, stats } = applyPatches(schemas, dir);
|
|
70
|
+
|
|
71
|
+
expect(stats.patchesApplied).toBe(1);
|
|
72
|
+
expect(stats.skipped).toEqual([]);
|
|
73
|
+
expect(stats.retirable.map((s) => s.typeName)).toEqual([MEDIALIVE]);
|
|
74
|
+
const doc = JSON.parse(patched.get(MEDIALIVE)!.toString("utf-8"));
|
|
75
|
+
expect(doc.definitions.InputWhitelistRuleCidr.properties.Cidr.format).toBe("ipv4-network");
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
test("an entry with no patch file to fail is retirable", () => {
|
|
79
|
+
const stale: StalePatch = { typeName: "AWS::Test::Gone", patchFile: "manual.json", cfnLint: "v0", reason: "test" };
|
|
80
|
+
const { stats } = applyPatches(new Map(), dir, [stale]);
|
|
81
|
+
expect(stats.retirable).toEqual([stale]);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
describe("KNOWN_STALE_PATCHES", () => {
|
|
86
|
+
// Moving the cfn-lint pin changes which patches fail, so every entry has to
|
|
87
|
+
// be re-checked against the new release before this passes again.
|
|
88
|
+
test("every entry was checked against the pinned cfn-lint release", () => {
|
|
89
|
+
for (const s of KNOWN_STALE_PATCHES) expect(s.cfnLint).toBe(PINNED_VERSIONS.cfnLint);
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
test("lists the MediaLive rename and nothing else", () => {
|
|
93
|
+
expect(KNOWN_STALE_PATCHES.map((s) => `${s.typeName}/${s.patchFile}`)).toEqual([`${MEDIALIVE}/format.json`]);
|
|
94
|
+
});
|
|
95
|
+
});
|
package/src/codegen/patches.ts
CHANGED
|
@@ -11,10 +11,12 @@ import { join } from "path";
|
|
|
11
11
|
import { homedir } from "os";
|
|
12
12
|
import { rfc6902Apply } from "@intentius/chant/codegen/json-patch";
|
|
13
13
|
import { fetchAndExtractTar } from "@intentius/chant/codegen/fetch";
|
|
14
|
-
import { cfnLintTarballUrl } from "./versions";
|
|
14
|
+
import { cfnLintTarballUrl, PINNED_VERSIONS } from "./versions";
|
|
15
15
|
|
|
16
16
|
const CFN_LINT_TARBALL_URL = cfnLintTarballUrl();
|
|
17
|
-
|
|
17
|
+
// Keyed by version: the cache lives for 7 days, so an unkeyed directory would
|
|
18
|
+
// keep serving the old release's patches after the pin moves.
|
|
19
|
+
const PATCHES_DEST_DIR = join(homedir(), ".chant", `cfn-lint-patches-${PINNED_VERSIONS.cfnLint}`);
|
|
18
20
|
const PATCHES_TAR_PREFIX = "src/cfnlint/data/schemas/patches/extensions/all/";
|
|
19
21
|
const PATCH_FILES = ["manual.json", "smithy.json", "format.json"] as const;
|
|
20
22
|
|
|
@@ -24,10 +26,48 @@ export interface PatchWarning {
|
|
|
24
26
|
error: Error;
|
|
25
27
|
}
|
|
26
28
|
|
|
29
|
+
/**
|
|
30
|
+
* A patch in the pinned cfn-lint release that is known not to apply to the
|
|
31
|
+
* pinned spec. Its failure is reported as a skip rather than a warning; an
|
|
32
|
+
* entry that applies again, or whose patch file is gone, is reported as
|
|
33
|
+
* retirable so the list cannot go stale.
|
|
34
|
+
*/
|
|
35
|
+
export interface StalePatch {
|
|
36
|
+
typeName: string;
|
|
37
|
+
patchFile: (typeof PATCH_FILES)[number];
|
|
38
|
+
/** The cfn-lint release the entry was checked against. */
|
|
39
|
+
cfnLint: string;
|
|
40
|
+
reason: string;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export const KNOWN_STALE_PATCHES: readonly StalePatch[] = [
|
|
44
|
+
{
|
|
45
|
+
// Adds `format: ipv4-network` to `Cidr`, a constraint only; no generated
|
|
46
|
+
// type changes. Every cfn-lint release from v1.32.4 to v1.51.5 still
|
|
47
|
+
// targets the old name, and v1.52.0 removed the patch tree from cfn-lint
|
|
48
|
+
// (it moved to aws-cloudformation/resource-provider-enhanced-schemas,
|
|
49
|
+
// which has the corrected path but publishes only a rolling `latest`).
|
|
50
|
+
typeName: "AWS::MediaLive::InputSecurityGroup",
|
|
51
|
+
patchFile: "format.json",
|
|
52
|
+
cfnLint: "v1.32.4",
|
|
53
|
+
reason: "the 2026-10-19 spec renamed definition InputWhitelistRuleCidr to InputWhitelistRule (#4144)",
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
|
|
57
|
+
export interface PatchSkip {
|
|
58
|
+
stale: StalePatch;
|
|
59
|
+
error: Error;
|
|
60
|
+
}
|
|
61
|
+
|
|
27
62
|
export interface PatchStats {
|
|
28
63
|
patchesApplied: number;
|
|
29
64
|
resourcesFixed: number;
|
|
65
|
+
/** Failures not in `KNOWN_STALE_PATCHES`. */
|
|
30
66
|
warnings: PatchWarning[];
|
|
67
|
+
/** Failures listed in `KNOWN_STALE_PATCHES`. */
|
|
68
|
+
skipped: PatchSkip[];
|
|
69
|
+
/** `KNOWN_STALE_PATCHES` entries that did not fail: applied, or no such schema or patch file. */
|
|
70
|
+
retirable: StalePatch[];
|
|
31
71
|
}
|
|
32
72
|
|
|
33
73
|
/**
|
|
@@ -49,9 +89,11 @@ export async function fetchCfnLintPatches(force = false): Promise<string> {
|
|
|
49
89
|
*/
|
|
50
90
|
export function applyPatches(
|
|
51
91
|
schemas: Map<string, Buffer>,
|
|
52
|
-
patchesDir: string
|
|
92
|
+
patchesDir: string,
|
|
93
|
+
knownStale: readonly StalePatch[] = KNOWN_STALE_PATCHES,
|
|
53
94
|
): { schemas: Map<string, Buffer>; stats: PatchStats } {
|
|
54
|
-
const stats: PatchStats = { patchesApplied: 0, resourcesFixed: 0, warnings: [] };
|
|
95
|
+
const stats: PatchStats = { patchesApplied: 0, resourcesFixed: 0, warnings: [], skipped: [], retirable: [] };
|
|
96
|
+
const staleByKey = new Map(knownStale.map((s) => [`${s.typeName}/${s.patchFile}`, s]));
|
|
55
97
|
const result = new Map<string, Buffer>();
|
|
56
98
|
|
|
57
99
|
for (const [typeName, data] of schemas) {
|
|
@@ -72,11 +114,10 @@ export function applyPatches(
|
|
|
72
114
|
patched = Buffer.from(rfc6902Apply(patched.toString("utf-8"), patchData.toString("utf-8")));
|
|
73
115
|
stats.patchesApplied++;
|
|
74
116
|
} catch (err) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
});
|
|
117
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
118
|
+
const stale = staleByKey.get(`${typeName}/${pf}`);
|
|
119
|
+
if (stale) stats.skipped.push({ stale, error });
|
|
120
|
+
else stats.warnings.push({ typeName, patchFile: pf, error });
|
|
80
121
|
}
|
|
81
122
|
}
|
|
82
123
|
|
|
@@ -86,6 +127,9 @@ export function applyPatches(
|
|
|
86
127
|
result.set(typeName, patched);
|
|
87
128
|
}
|
|
88
129
|
|
|
130
|
+
const skippedStale = new Set(stats.skipped.map((s) => s.stale));
|
|
131
|
+
stats.retirable = knownStale.filter((s) => !skippedStale.has(s));
|
|
132
|
+
|
|
89
133
|
return { schemas: result, stats };
|
|
90
134
|
}
|
|
91
135
|
|
|
@@ -1,19 +1,4 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$comment": "Properties CloudFormation has shipped since the pinned Registry spec (src/spec/pin.ts) was accepted (chant #3953). Hand-maintained, merged into the raw schema at codegen time by src/codegen/property-overlay.ts. Each entry is copied from the live Registry schema; retire it when a pin bump (#3960) brings the property in; generation warns when it does.",
|
|
3
|
-
"entries": [
|
|
4
|
-
{
|
|
5
|
-
"type": "AWS::BedrockAgentCore::Runtime",
|
|
6
|
-
"property": "PlatformVersion",
|
|
7
|
-
"issue": 3953,
|
|
8
|
-
"source": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip (aws-bedrockagentcore-runtime.json)",
|
|
9
|
-
"reviewed": "2026-10-12",
|
|
10
|
-
"schema": {
|
|
11
|
-
"type": "string",
|
|
12
|
-
"description": "The version of the runtime platform",
|
|
13
|
-
"minLength": 1,
|
|
14
|
-
"maxLength": 128,
|
|
15
|
-
"pattern": "^[^\\s]+$"
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
]
|
|
3
|
+
"entries": []
|
|
19
4
|
}
|