Skip to content

Conversation

@aws-cdk-automation
Copy link
Contributor

⚠️ This Pull Request updates daily and will overwrite all manual changes pushed to the branch

Updates the cfn-schema source from upstream. See details in workflow run.


Automatically created by projen via the "update-source-cfn-schema" workflow

> ⚠️ This Pull Request updates daily and will overwrite **all** manual changes pushed to the branch

Updates the cfn-schema source from upstream. See details in [workflow run].

[Workflow Run]: https://github.com/cdklabs/awscdk-service-spec/actions/runs/19672136993

------

*Automatically created by projen via the "update-source-cfn-schema" workflow*

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@github-actions
Copy link
Contributor

To work on this Pull Request, please create a new branch and PR. This prevents your work from being deleted by the automation.

Run the following commands inside the repo:

gh co 2241
git switch -c fix-pr-2241 && git push -u origin HEAD
gh pr create -t "fix: PR #2241" --body "Fixes https://github.com/cdklabs/awscdk-service-spec/pull/2241"

@github-actions
Copy link
Contributor

@aws-cdk/aws-service-spec: Model database diff detected
📁 Download full diff

├[~] service aws-athena
│ └ resources
│    └[~]  resource AWS::Athena::WorkGroup
│       ├ types
│       │  ├[+]  type Classification
│       │  │  ├      documentation: A classification refers to a set of specific configurations.
│       │  │  │      name: Classification
│       │  │  └ properties
│       │  │     ├ Name: string
│       │  │     └ Properties: Map<string, string>
│       │  ├[+]  type CloudWatchLoggingConfiguration
│       │  │  ├      documentation: Configuration settings for delivering logs to Amazon CloudWatch log groups.
│       │  │  │      name: CloudWatchLoggingConfiguration
│       │  │  └ properties
│       │  │     ├ Enabled: boolean
│       │  │     ├ LogGroup: string
│       │  │     ├ LogStreamNamePrefix: string
│       │  │     └ LogTypes: Map<string, Array<string>>
│       │  ├[+]  type EngineConfiguration
│       │  │  ├      documentation: The engine configuration for running queries.
│       │  │  │      name: EngineConfiguration
│       │  │  └ properties
│       │  │     ├ CoordinatorDpuSize: integer
│       │  │     ├ MaxConcurrentDpus: integer
│       │  │     ├ DefaultExecutorDpuSize: integer
│       │  │     ├ AdditionalConfigs: Map<string, string>
│       │  │     ├ SparkProperties: Map<string, string>
│       │  │     └ Classifications: Array<Classification>
│       │  ├[+]  type ManagedLoggingConfiguration
│       │  │  ├      documentation: Configuration settings for managed log persistence.
│       │  │  │      name: ManagedLoggingConfiguration
│       │  │  └ properties
│       │  │     ├ Enabled: boolean
│       │  │     └ KmsKey: string
│       │  ├[+]  type MonitoringConfiguration
│       │  │  ├      documentation: Contains the configuration settings for managed log persistence, delivering logs to Amazon S3 buckets, Amazon CloudWatch log groups etc.
│       │  │  │      name: MonitoringConfiguration
│       │  │  └ properties
│       │  │     ├ CloudWatchLoggingConfiguration: CloudWatchLoggingConfiguration
│       │  │     ├ ManagedLoggingConfiguration: ManagedLoggingConfiguration
│       │  │     └ S3LoggingConfiguration: S3LoggingConfiguration
│       │  ├[+]  type S3LoggingConfiguration
│       │  │  ├      documentation: Configuration settings for delivering logs to Amazon S3 buckets.
│       │  │  │      name: S3LoggingConfiguration
│       │  │  └ properties
│       │  │     ├ Enabled: boolean
│       │  │     ├ LogLocation: string
│       │  │     └ KmsKey: string
│       │  ├[~] type WorkGroupConfiguration
│       │  │ └ properties
│       │  │    ├[+] EngineConfiguration: EngineConfiguration
│       │  │    └[+] MonitoringConfiguration: MonitoringConfiguration
│       │  └[~] type WorkGroupConfigurationUpdates
│       │    └ properties
│       │       ├[+] EngineConfiguration: EngineConfiguration
│       │       ├ ExecutionRole: (documentation changed)
│       │       └[+] MonitoringConfiguration: MonitoringConfiguration
│       └ events
│          └[~]  event aws.athena@AthenaQueryStateChange
│             └      - rootProperty: AthenaQueryStateChange
│                    + rootProperty: AthenaQueryStateChange
│                    - resourcesField: [AthenaQueryStateChange.workgroupName]
│                    + resourcesField: [AthenaQueryStateChange.workgroupName]
├[~] service aws-autoscaling
│ └ resources
│    └[~]  resource AWS::AutoScaling::AutoScalingGroup
│       └ events
│          ├[~]  event aws.autoscaling@EC2InstanceLaunchLifecycleAction
│          │  └      - rootProperty: EC2InstanceLaunchLifecycleAction
│          │         + rootProperty: EC2InstanceLaunchLifecycleAction
│          │         - resourcesField: [EC2InstanceLaunchLifecycleAction.AutoScalingGroupName]
│          │         + resourcesField: [EC2InstanceLaunchLifecycleAction.AutoScalingGroupName]
│          ├[~]  event aws.autoscaling@EC2InstanceLaunchSuccessful
│          │  └      - rootProperty: EC2InstanceLaunchSuccessful
│          │         + rootProperty: EC2InstanceLaunchSuccessful
│          │         - resourcesField: [EC2InstanceLaunchSuccessful.AutoScalingGroupName]
│          │         + resourcesField: [EC2InstanceLaunchSuccessful.AutoScalingGroupName]
│          ├[~]  event aws.autoscaling@EC2InstanceLaunchUnsuccessful
│          │  └      - rootProperty: EC2InstanceLaunchUnsuccessful
│          │         + rootProperty: EC2InstanceLaunchUnsuccessful
│          │         - resourcesField: [EC2InstanceLaunchUnsuccessful.AutoScalingGroupName]
│          │         + resourcesField: [EC2InstanceLaunchUnsuccessful.AutoScalingGroupName]
│          ├[~]  event aws.autoscaling@EC2InstanceTerminateLifecycleAction
│          │  └      - rootProperty: EC2InstanceTerminateLifecycleAction
│          │         + rootProperty: EC2InstanceTerminateLifecycleAction
│          │         - resourcesField: [EC2InstanceTerminateLifecycleAction.AutoScalingGroupName]
│          │         + resourcesField: [EC2InstanceTerminateLifecycleAction.AutoScalingGroupName]
│          ├[~]  event aws.autoscaling@EC2InstanceTerminateSuccessful
│          │  └      - rootProperty: EC2InstanceTerminateSuccessful
│          │         + rootProperty: EC2InstanceTerminateSuccessful
│          │         - resourcesField: [EC2InstanceTerminateSuccessful.AutoScalingGroupName]
│          │         + resourcesField: [EC2InstanceTerminateSuccessful.AutoScalingGroupName]
│          └[~]  event aws.autoscaling@EC2InstanceTerminateUnsuccessful
│             └      - rootProperty: EC2InstanceTerminateUnsuccessful
│                    + rootProperty: EC2InstanceTerminateUnsuccessful
│                    - resourcesField: [EC2InstanceTerminateUnsuccessful.AutoScalingGroupName]
│                    + resourcesField: [EC2InstanceTerminateUnsuccessful.AutoScalingGroupName]
├[~] service aws-batch
│ └ resources
│    └[~]  resource AWS::Batch::JobDefinition
│       └ events
│          ├[~]  event aws.batch@AWSAPICallViaCloudTrail
│          │  └      - rootProperty: AWSAPICallViaCloudTrail
│          │         + rootProperty: AWSAPICallViaCloudTrail
│          │         - resourcesField: [RequestParameters.jobDefinition]
│          │         + resourcesField: [RequestParameters.jobDefinition]
│          └[~]  event aws.batch@BatchJobStateChange
│             └      - rootProperty: BatchJobStateChange
│                    + rootProperty: BatchJobStateChange
│                    - resourcesField: [BatchJobStateChange.jobDefinition]
│                    + resourcesField: [BatchJobStateChange.jobDefinition]
├[~] service aws-bedrock
│ └ resources
│    ├[~]  resource AWS::Bedrock::DataAutomationProject
│    │  ├ properties
│    │  │  └[+] ProjectType: string (immutable)
│    │  └ types
│    │     ├[~] type AudioOverrideConfiguration
│    │     │ └ properties
│    │     │    └[+] SensitiveDataConfiguration: SensitiveDataConfiguration
│    │     ├[~] type DocumentOverrideConfiguration
│    │     │ └ properties
│    │     │    └[+] SensitiveDataConfiguration: SensitiveDataConfiguration
│    │     ├[~] type ImageOverrideConfiguration
│    │     │ └ properties
│    │     │    └[+] SensitiveDataConfiguration: SensitiveDataConfiguration
│    │     ├[+]  type PIIEntitiesConfiguration
│    │     │  ├      name: PIIEntitiesConfiguration
│    │     │  └ properties
│    │     │     ├ PiiEntityTypes: Array<string>
│    │     │     └ RedactionMaskMode: string
│    │     ├[+]  type SensitiveDataConfiguration
│    │     │  ├      name: SensitiveDataConfiguration
│    │     │  └ properties
│    │     │     ├ DetectionMode: string
│    │     │     ├ DetectionScope: Array<string>
│    │     │     └ PiiEntitiesConfiguration: PIIEntitiesConfiguration
│    │     └[~] type VideoOverrideConfiguration
│    │       └ properties
│    │          └[+] SensitiveDataConfiguration: SensitiveDataConfiguration
│    └[~]  resource AWS::Bedrock::KnowledgeBase
│       └ types
│          ├[+]  type S3VectorsConfiguration
│          │  ├      documentation: Contains the storage configuration of the knowledge base for S3 vectors.
│          │  │      name: S3VectorsConfiguration
│          │  └ properties
│          │     ├ VectorBucketArn: string
│          │     ├ IndexArn: string
│          │     └ IndexName: string
│          └[~] type StorageConfiguration
│            └ properties
│               └[+] S3VectorsConfiguration: S3VectorsConfiguration
├[~] service aws-cassandra
│ └ resources
│    └[~]  resource AWS::Cassandra::Table
│       ├ properties
│       │  └[+] WarmThroughput: WarmThroughput
│       └ types
│          └[+]  type WarmThroughput
│             ├      documentation: Warm throughput configuration for the table
│             │      name: WarmThroughput
│             └ properties
│                ├ ReadUnitsPerSecond: integer
│                └ WriteUnitsPerSecond: integer
├[~] service aws-cloudformation
│ └ resources
│    ├[~]  resource AWS::CloudFormation::HookVersion
│    │  └ events
│    │     └[~]  event aws.cloudformation@CloudFormationHookInvocationProgress
│    │        └      - rootProperty: CloudFormationHookInvocationProgress
│    │               + rootProperty: CloudFormationHookInvocationProgress
│    │               - resourcesField: [Hook-detail.hook-version]
│    │               + resourcesField: [Hook-detail.hook-version]
│    └[~]  resource AWS::CloudFormation::StackSet
│       └ types
│          └[~] type AutoDeployment
│            └ properties
│               └[+] DependsOn: Array<string>
├[~] service aws-cloudfront
│ └ resources
│    ├[~]  resource AWS::CloudFront::Distribution
│    │  └ types
│    │     ├[+]  type ConnectionFunctionAssociation
│    │     │  ├      name: ConnectionFunctionAssociation
│    │     │  └ properties
│    │     │     └ Id: string (required)
│    │     ├[~] type DistributionConfig
│    │     │ └ properties
│    │     │    ├[+] ConnectionFunctionAssociation: ConnectionFunctionAssociation
│    │     │    └[+] ViewerMtlsConfig: ViewerMtlsConfig
│    │     ├[+]  type TrustStoreConfig
│    │     │  ├      name: TrustStoreConfig
│    │     │  └ properties
│    │     │     ├ TrustStoreId: string (required)
│    │     │     ├ AdvertiseTrustStoreCaNames: boolean
│    │     │     └ IgnoreCertificateExpiry: boolean
│    │     └[+]  type ViewerMtlsConfig
│    │        ├      name: ViewerMtlsConfig
│    │        └ properties
│    │           ├ Mode: string
│    │           └ TrustStoreConfig: TrustStoreConfig
│    └[+]  resource AWS::CloudFront::TrustStore
│       ├      name: TrustStore
│       │      cloudFormationType: AWS::CloudFront::TrustStore
│       │      documentation: Resource Type definition for AWS::CloudFront::TrustStore. TrustStores contain CA certificates for mTLS authentication and can be associated with CloudFront distributions.
│       │      tagInformation: {"tagPropertyName":"Tags","variant":"standard"}
│       ├ properties
│       │  ├ Name: string (required, immutable)
│       │  ├ CaCertificatesBundleSource: CaCertificatesBundleSource
│       │  └ Tags: Array<tag>
│       ├ attributes
│       │  ├ Id: string
│       │  ├ Arn: string
│       │  ├ Status: string
│       │  ├ ETag: string
│       │  ├ LastModifiedTime: string
│       │  └ NumberOfCaCertificates: integer
│       └ types
│          ├ type CaCertificatesBundleS3Location
│          │ ├      name: CaCertificatesBundleS3Location
│          │ └ properties
│          │    ├ Bucket: string (required)
│          │    ├ Key: string (required)
│          │    ├ Region: string (required)
│          │    └ Version: string
│          └ type CaCertificatesBundleSource
│            ├      name: CaCertificatesBundleSource
│            └ properties
│               └ CaCertificatesBundleS3Location: CaCertificatesBundleS3Location (required)
├[~] service aws-cloudwatch
│ └ resources
│    └[~]  resource AWS::CloudWatch::Alarm
│       └ events
│          ├[~]  event aws.cloudwatch@CloudWatchAlarmConfigurationChange
│          │  └      - rootProperty: CloudWatchAlarmConfigurationChange
│          │         + rootProperty: CloudWatchAlarmConfigurationChange
│          │         - resourcesField: [Configuration.alarmName]
│          │         + resourcesField: [Configuration.alarmName]
│          └[~]  event aws.cloudwatch@CloudWatchAlarmStateChange
│             └      - rootProperty: CloudWatchAlarmStateChange
│                    + rootProperty: CloudWatchAlarmStateChange
│                    - resourcesField: [CloudWatchAlarmStateChange.alarmName]
│                    + resourcesField: [CloudWatchAlarmStateChange.alarmName]
├[~] service aws-codebuild
│ └ resources
│    └[~]  resource AWS::CodeBuild::Project
│       └ events
│          ├[~]  event aws.codebuild@CodeBuildBuildPhaseChange
│          │  └      - rootProperty: CodeBuildBuildPhaseChange
│          │         + rootProperty: CodeBuildBuildPhaseChange
│          │         - resourcesField: [CodeBuildBuildPhaseChange.project-name]
│          │         + resourcesField: [CodeBuildBuildPhaseChange.project-name]
│          └[~]  event aws.codebuild@CodeBuildBuildStateChange
│             └      - rootProperty: CodeBuildBuildStateChange
│                    + rootProperty: CodeBuildBuildStateChange
│                    - resourcesField: [CodeBuildBuildStateChange.project-name]
│                    + resourcesField: [CodeBuildBuildStateChange.project-name]
├[~] service aws-codecommit
│ └ resources
│    └[~]  resource AWS::CodeCommit::Repository
│       └ events
│          ├[~]  event aws.codecommit@AWSAPICallViaCloudTrail
│          │  └      - rootProperty: AWSAPICallViaCloudTrail
│          │         + rootProperty: AWSAPICallViaCloudTrail
│          │         - resourcesField: [RequestParametersItem_2.repositoryName]
│          │         + resourcesField: [RequestParametersItem_2.repositoryName]
│          ├[~]  event aws.codecommit@CodeCommitCommentOnCommit
│          │  └      - rootProperty: CodeCommitCommentOnCommit
│          │         + rootProperty: CodeCommitCommentOnCommit
│          │         - resourcesField: [CodeCommitCommentOnCommit.repositoryId]
│          │         + resourcesField: [CodeCommitCommentOnCommit.repositoryId]
│          ├[~]  event aws.codecommit@CodeCommitCommentOnPullRequest
│          │  └      - rootProperty: CodeCommitCommentOnPullRequest
│          │         + rootProperty: CodeCommitCommentOnPullRequest
│          │         - resourcesField: [CodeCommitCommentOnPullRequest.repositoryId]
│          │         + resourcesField: [CodeCommitCommentOnPullRequest.repositoryId]
│          └[~]  event aws.codecommit@CodeCommitRepositoryStateChange
│             └      - rootProperty: CodeCommitRepositoryStateChange
│                    + rootProperty: CodeCommitRepositoryStateChange
│                    - resourcesField: [CodeCommitRepositoryStateChange.repositoryId]
│                    + resourcesField: [CodeCommitRepositoryStateChange.repositoryId]
├[~] service aws-codedeploy
│ └ resources
│    └[~]  resource AWS::CodeDeploy::Application
│       └ events
│          ├[~]  event aws.codedeploy@CodeDeployDeploymentStateChangeNotification
│          │  └      - rootProperty: CodeDeployDeploymentStateChangeNotification
│          │         + rootProperty: CodeDeployDeploymentStateChangeNotification
│          │         - resourcesField: [CodeDeployDeploymentStateChangeNotification.application]
│          │         + resourcesField: [CodeDeployDeploymentStateChangeNotification.application]
│          └[~]  event aws.codedeploy@CodeDeployInstanceStateChangeNotification
│             └      - rootProperty: CodeDeployInstanceStateChangeNotification
│                    + rootProperty: CodeDeployInstanceStateChangeNotification
│                    - resourcesField: [CodeDeployInstanceStateChangeNotification.application]
│                    + resourcesField: [CodeDeployInstanceStateChangeNotification.application]
├[~] service aws-codepipeline
│ └ resources
│    └[~]  resource AWS::CodePipeline::Pipeline
│       └ events
│          ├[~]  event aws.codepipeline@CodePipelineActionExecutionStateChange
│          │  └      - rootProperty: CodePipelineActionExecutionStateChange
│          │         + rootProperty: CodePipelineActionExecutionStateChange
│          │         - resourcesField: [CodePipelineActionExecutionStateChange.pipeline]
│          │         + resourcesField: [CodePipelineActionExecutionStateChange.pipeline]
│          ├[~]  event aws.codepipeline@CodePipelinePipelineExecutionStateChange
│          │  └      - rootProperty: CodePipelinePipelineExecutionStateChange
│          │         + rootProperty: CodePipelinePipelineExecutionStateChange
│          │         - resourcesField: [CodePipelinePipelineExecutionStateChange.pipeline]
│          │         + resourcesField: [CodePipelinePipelineExecutionStateChange.pipeline]
│          └[~]  event aws.codepipeline@CodePipelineStageExecutionStateChange
│             └      - rootProperty: CodePipelineStageExecutionStateChange
│                    + rootProperty: CodePipelineStageExecutionStateChange
│                    - resourcesField: [CodePipelineStageExecutionStateChange.pipeline]
│                    + resourcesField: [CodePipelineStageExecutionStateChange.pipeline]
├[~] service aws-connect
│ └ resources
│    └[~]  resource AWS::Connect::Instance
│       └ events
│          ├[~]  event aws.connect@CodeConnectContact
│          │  └      - rootProperty: AmazonConnectContactEvent
│          │         + rootProperty: AmazonConnectContactEvent
│          │         - resourcesField: [AmazonConnectContactEvent.instanceArn]
│          │         + resourcesField: [AmazonConnectContactEvent.instanceArn]
│          ├[~]  event aws.connect@ContactLensPostCallRulesMatched
│          │  └      - rootProperty: ContactLensPostCallRulesMatched
│          │         + rootProperty: ContactLensPostCallRulesMatched
│          │         - resourcesField: [ContactLensPostCallRulesMatched.instanceArn]
│          │         + resourcesField: [ContactLensPostCallRulesMatched.instanceArn]
│          └[~]  event aws.connect@ContactLensRealtimeRulesMatched
│             └      - rootProperty: ContactLensRealtimeRulesMatched
│                    + rootProperty: ContactLensRealtimeRulesMatched
│                    - resourcesField: [ContactLensRealtimeRulesMatched.instanceArn]
│                    + resourcesField: [ContactLensRealtimeRulesMatched.instanceArn]
├[~] service aws-connectcampaignsv2
│ └ resources
│    └[~]  resource AWS::ConnectCampaignsV2::Campaign
│       └ types
│          └[~] type TelephonyOutboundConfig
│            └ properties
│               └[+] RingTimeout: integer
├[~] service aws-deadline
│ └ resources
│    └[~]  resource AWS::Deadline::Farm
│       └ events
│          └[~]  event aws.deadline@FleetSizeRecommendationChange
│             └      - rootProperty: FleetSizeRecommendationChange
│                    + rootProperty: FleetSizeRecommendationChange
│                    - resourcesField: [FleetSizeRecommendationChange.farmId]
│                    + resourcesField: [FleetSizeRecommendationChange.farmId]
├[~] service aws-devopsguru
│ └ resources
│    └[~]  resource AWS::DevOpsGuru::ResourceCollection
│       └ events
│          ├[~]  event aws.devopsguru@DevOpsGuruInsightClosed
│          │  └      - rootProperty: Detail
│          │         + rootProperty: Detail
│          │         - resourcesField: [Detail.resourceCollection]
│          │         + resourcesField: [Detail.resourceCollection]
│          ├[~]  event aws.devopsguru@DevOpsGuruInsightSeverityUpgraded
│          │  └      - rootProperty: Detail
│          │         + rootProperty: Detail
│          │         - resourcesField: [Detail.resourceCollection]
│          │         + resourcesField: [Detail.resourceCollection]
│          ├[~]  event aws.devopsguru@DevOpsGuruNewAnomalyAssociation
│          │  └      - rootProperty: Detail
│          │         + rootProperty: Detail
│          │         - resourcesField: [Detail.resourceCollection]
│          │         + resourcesField: [Detail.resourceCollection]
│          └[~]  event aws.devopsguru@DevOpsGuruNewInsightOpen
│             └      - rootProperty: Detail
│                    + rootProperty: Detail
│                    - resourcesField: [Detail.resourceCollection]
│                    + resourcesField: [Detail.resourceCollection]
├[~] service aws-ec2
│ └ resources
│    ├[~]  resource AWS::EC2::Instance
│    │  └ events
│    │     ├[~]  event aws.ec2@AWSAPICallViaCloudTrail
│    │     │  └      - rootProperty: AWSAPICallViaCloudTrail
│    │     │         + rootProperty: AWSAPICallViaCloudTrail
│    │     │         - resourcesField: [InstancesSetItem.instanceId]
│    │     │         + resourcesField: [InstancesSetItem.instanceId]
│    │     ├[~]  event aws.ec2@EC2InstanceStateChangeNotification
│    │     │  └      - rootProperty: EC2InstanceStateChangeNotification
│    │     │         + rootProperty: EC2InstanceStateChangeNotification
│    │     │         - resourcesField: [EC2InstanceStateChangeNotification.instance-id]
│    │     │         + resourcesField: [EC2InstanceStateChangeNotification.instance-id]
│    │     └[~]  event aws.ec2@EC2SpotInstanceInterruptionWarning
│    │        └      - rootProperty: EC2SpotInstanceInterruptionWarning
│    │               + rootProperty: EC2SpotInstanceInterruptionWarning
│    │               - resourcesField: [EC2SpotInstanceInterruptionWarning.instance-id]
│    │               + resourcesField: [EC2SpotInstanceInterruptionWarning.instance-id]
│    ├[+]  resource AWS::EC2::TransitGatewayMeteringPolicy
│    │  ├      name: TransitGatewayMeteringPolicy
│    │  │      cloudFormationType: AWS::EC2::TransitGatewayMeteringPolicy
│    │  │      documentation: AWS::EC2::TransitGatewayMeteringPolicy Resource Definition
│    │  │      tagInformation: {"tagPropertyName":"Tags","variant":"standard"}
│    │  ├ properties
│    │  │  ├ TransitGatewayId: string (required, immutable)
│    │  │  ├ MiddleboxAttachmentIds: Array<string>
│    │  │  └ Tags: Array<tag>
│    │  └ attributes
│    │     ├ TransitGatewayMeteringPolicyId: string
│    │     ├ State: string
│    │     └ UpdateEffectiveAt: string
│    ├[+]  resource AWS::EC2::TransitGatewayMeteringPolicyEntry
│    │  ├      name: TransitGatewayMeteringPolicyEntry
│    │  │      cloudFormationType: AWS::EC2::TransitGatewayMeteringPolicyEntry
│    │  │      documentation: AWS::EC2::TransitGatewayMeteringPolicyEntry Resource Definition
│    │  ├ properties
│    │  │  ├ DestinationTransitGatewayAttachmentId: string (immutable)
│    │  │  ├ SourcePortRange: string (immutable)
│    │  │  ├ PolicyRuleNumber: integer (required, immutable)
│    │  │  ├ DestinationTransitGatewayAttachmentType: string (immutable)
│    │  │  ├ DestinationCidrBlock: string (immutable)
│    │  │  ├ TransitGatewayMeteringPolicyId: string (required, immutable)
│    │  │  ├ DestinationPortRange: string (immutable)
│    │  │  ├ MeteredAccount: string (required, immutable)
│    │  │  ├ SourceCidrBlock: string (immutable)
│    │  │  ├ Protocol: string (immutable)
│    │  │  ├ SourceTransitGatewayAttachmentId: string (immutable)
│    │  │  └ SourceTransitGatewayAttachmentType: string (immutable)
│    │  └ attributes
│    │     ├ UpdateEffectiveAt: string
│    │     └ State: string
│    └[+]  resource AWS::EC2::VPCEncryptionControl
│       ├      name: VPCEncryptionControl
│       │      cloudFormationType: AWS::EC2::VPCEncryptionControl
│       │      documentation: Resource Type definition for AWS::EC2::VPCEncryptionControl
│       │      tagInformation: {"tagPropertyName":"Tags","variant":"standard"}
│       ├ properties
│       │  ├ Tags: Array<tag>
│       │  ├ VpcId: string (immutable)
│       │  ├ Mode: string
│       │  ├ InternetGatewayExclusionInput: string
│       │  ├ EgressOnlyInternetGatewayExclusionInput: string
│       │  ├ NatGatewayExclusionInput: string
│       │  ├ VirtualPrivateGatewayExclusionInput: string
│       │  ├ VpcPeeringExclusionInput: string
│       │  ├ VpcLatticeExclusionInput: string
│       │  ├ ElasticFileSystemExclusionInput: string
│       │  └ LambdaExclusionInput: string
│       ├ attributes
│       │  ├ VpcEncryptionControlId: string
│       │  ├ State: string
│       │  ├ StateMessage: string
│       │  ├ ResourceExclusions: ResourceExclusions
│       │  ├ ResourceExclusions.InternetGateway: VpcEncryptionControlExclusion
│       │  ├ ResourceExclusions.InternetGateway.State: string
│       │  ├ ResourceExclusions.InternetGateway.StateMessage: string
│       │  ├ ResourceExclusions.EgressOnlyInternetGateway: VpcEncryptionControlExclusion
│       │  ├ ResourceExclusions.EgressOnlyInternetGateway.State: string
│       │  ├ ResourceExclusions.EgressOnlyInternetGateway.StateMessage: string
│       │  ├ ResourceExclusions.NatGateway: VpcEncryptionControlExclusion
│       │  ├ ResourceExclusions.NatGateway.State: string
│       │  ├ ResourceExclusions.NatGateway.StateMessage: string
│       │  ├ ResourceExclusions.VirtualPrivateGateway: VpcEncryptionControlExclusion
│       │  ├ ResourceExclusions.VirtualPrivateGateway.State: string
│       │  ├ ResourceExclusions.VirtualPrivateGateway.StateMessage: string
│       │  ├ ResourceExclusions.VpcPeering: VpcEncryptionControlExclusion
│       │  ├ ResourceExclusions.VpcPeering.State: string
│       │  ├ ResourceExclusions.VpcPeering.StateMessage: string
│       │  ├ ResourceExclusions.VpcLattice: VpcEncryptionControlExclusion
│       │  ├ ResourceExclusions.VpcLattice.State: string
│       │  ├ ResourceExclusions.VpcLattice.StateMessage: string
│       │  ├ ResourceExclusions.ElasticFileSystem: VpcEncryptionControlExclusion
│       │  ├ ResourceExclusions.ElasticFileSystem.State: string
│       │  ├ ResourceExclusions.ElasticFileSystem.StateMessage: string
│       │  ├ ResourceExclusions.Lambda: VpcEncryptionControlExclusion
│       │  ├ ResourceExclusions.Lambda.State: string
│       │  └ ResourceExclusions.Lambda.StateMessage: string
│       └ types
│          ├ type ResourceExclusions
│          │ ├      name: ResourceExclusions
│          │ └ properties
│          │    ├ InternetGateway: VpcEncryptionControlExclusion
│          │    ├ EgressOnlyInternetGateway: VpcEncryptionControlExclusion
│          │    ├ NatGateway: VpcEncryptionControlExclusion
│          │    ├ VirtualPrivateGateway: VpcEncryptionControlExclusion
│          │    ├ VpcPeering: VpcEncryptionControlExclusion
│          │    ├ VpcLattice: VpcEncryptionControlExclusion
│          │    ├ ElasticFileSystem: VpcEncryptionControlExclusion
│          │    └ Lambda: VpcEncryptionControlExclusion
│          └ type VpcEncryptionControlExclusion
│            ├      name: VpcEncryptionControlExclusion
│            └ properties
│               ├ State: string
│               └ StateMessage: string
├[~] service aws-ecr
│ └ resources
│    ├[+]  resource AWS::ECR::PullTimeUpdateExclusion
│    │  ├      name: PullTimeUpdateExclusion
│    │  │      cloudFormationType: AWS::ECR::PullTimeUpdateExclusion
│    │  │      documentation: Resource Type definition for AWS::ECR::PullTimeUpdateExclusion controls the exclusion configuration for ecr image pull time update.
│    │  └ properties
│    │     └ PrincipalArn: string (required, immutable)
│    ├[~]  resource AWS::ECR::Repository
│    │  └ events
│    │     ├[~]  event aws.ecr@AWSAPICallViaCloudTrail
│    │     │  └      - rootProperty: AWSAPICallViaCloudTrail
│    │     │         + rootProperty: AWSAPICallViaCloudTrail
│    │     │         - resourcesField: [RequestParameters.repositoryName]
│    │     │         + resourcesField: [RequestParameters.repositoryName]
│    │     ├[~]  event aws.ecr@ECRImageAction
│    │     │  └      - rootProperty: ECRImageAction
│    │     │         + rootProperty: ECRImageAction
│    │     │         - resourcesField: [ECRImageAction.repository-name]
│    │     │         + resourcesField: [ECRImageAction.repository-name]
│    │     ├[~]  event aws.ecr@ECRImageScan
│    │     │  └      - rootProperty: ECRImageScan
│    │     │         + rootProperty: ECRImageScan
│    │     │         - resourcesField: [ECRImageScan.repository-name]
│    │     │         + resourcesField: [ECRImageScan.repository-name]
│    │     ├[~]  event aws.ecr@ECRPullThroughCacheAction
│    │     │  └      - rootProperty: ECRPullThroughCacheAction
│    │     │         + rootProperty: ECRPullThroughCacheAction
│    │     │         - resourcesField: [ECRPullThroughCacheAction.repository-name]
│    │     │         + resourcesField: [ECRPullThroughCacheAction.repository-name]
│    │     ├[~]  event aws.ecr@ECRReferrerAction
│    │     │  └      - rootProperty: ECRReferrerAction
│    │     │         + rootProperty: ECRReferrerAction
│    │     │         - resourcesField: [ECRReferrerAction.repository-name]
│    │     │         + resourcesField: [ECRReferrerAction.repository-name]
│    │     └[~]  event aws.ecr@ECRReplicationAction
│    │        └      - rootProperty: ECRReplicationAction
│    │               + rootProperty: ECRReplicationAction
│    │               - resourcesField: [ECRReplicationAction.repository-name]
│    │               + resourcesField: [ECRReplicationAction.repository-name]
│    └[+]  resource AWS::ECR::SigningConfiguration
│       ├      name: SigningConfiguration
│       │      cloudFormationType: AWS::ECR::SigningConfiguration
│       │      documentation: The AWS::ECR::SigningConfiguration resource creates or updates the signing configuration for an Amazon ECR registry.
│       ├ properties
│       │  └ Rules: Array<Rule> (required)
│       ├ attributes
│       │  └ RegistryId: string
│       └ types
│          ├ type RepositoryFilter
│          │ ├      documentation: An array of objects representing the details of a repository filter.
│          │ │      name: RepositoryFilter
│          │ └ properties
│          │    ├ Filter: string (required)
│          │    └ FilterType: string (required)
│          └ type Rule
│            ├      name: Rule
│            └ properties
│               ├ SigningProfileArn: string (required)
│               └ RepositoryFilters: Array<RepositoryFilter>
├[~] service aws-ecs
│ └ resources
│    ├[~]  resource AWS::ECS::Cluster
│    │  └ events
│    │     ├[~]  event aws.ecs@AWSAPICallViaCloudTrail
│    │     │  └      - rootProperty: AWSAPICallViaCloudTrail
│    │     │         + rootProperty: AWSAPICallViaCloudTrail
│    │     │         - resourcesField: [ResponseElementsItem.clusterArn]
│    │     │         + resourcesField: [ResponseElementsItem.clusterArn]
│    │     ├[~]  event aws.ecs@ECSContainerInstanceStateChange
│    │     │  └      - rootProperty: ECSContainerInstanceStateChange
│    │     │         + rootProperty: ECSContainerInstanceStateChange
│    │     │         - resourcesField: [ECSContainerInstanceStateChange.clusterArn]
│    │     │         + resourcesField: [ECSContainerInstanceStateChange.clusterArn]
│    │     ├[~]  event aws.ecs@ECSServiceAction
│    │     │  └      - rootProperty: ECSServiceAction
│    │     │         + rootProperty: ECSServiceAction
│    │     │         - resourcesField: [ECSServiceAction.clusterArn]
│    │     │         + resourcesField: [ECSServiceAction.clusterArn]
│    │     └[~]  event aws.ecs@ECSTaskStateChange
│    │        └      - rootProperty: ECSTaskStateChange
│    │               + rootProperty: ECSTaskStateChange
│    │               - resourcesField: [ECSTaskStateChange.clusterArn]
│    │               + resourcesField: [ECSTaskStateChange.clusterArn]
│    └[+]  resource AWS::ECS::ExpressGatewayService
│       ├      name: ExpressGatewayService
│       │      cloudFormationType: AWS::ECS::ExpressGatewayService
│       │      documentation: Resource Type definition for AWS::ECS::ExpressGatewayService
│       │      tagInformation: {"tagPropertyName":"Tags","variant":"standard"}
│       ├ properties
│       │  ├ TaskRoleArn: string
│       │  ├ PrimaryContainer: ExpressGatewayContainer (required)
│       │  ├ Memory: string (default="512")
│       │  ├ HealthCheckPath: string (default="HTTP:80/ping")
│       │  ├ Cluster: string (default="default", immutable)
│       │  ├ Cpu: string (default="256")
│       │  ├ ExecutionRoleArn: string (required)
│       │  ├ InfrastructureRoleArn: string (required, immutable)
│       │  ├ ScalingTarget: ExpressGatewayScalingTarget (immutable)
│       │  ├ ServiceName: string (immutable)
│       │  ├ NetworkConfiguration: ExpressGatewayServiceNetworkConfiguration
│       │  └ Tags: Array<tag> (immutable)
│       ├ attributes
│       │  ├ ServiceArn: string
│       │  ├ ActiveConfigurations: Array<ExpressGatewayServiceConfiguration>
│       │  ├ Status: ExpressGatewayServiceStatus
│       │  ├ CreatedAt: string
│       │  └ UpdatedAt: string
│       └ types
│          ├ type ExpressGatewayContainer
│          │ ├      name: ExpressGatewayContainer
│          │ └ properties
│          │    ├ RepositoryCredentials: ExpressGatewayRepositoryCredentials
│          │    ├ Secrets: Array<Secret>
│          │    ├ Command: Array<string>
│          │    ├ AwsLogsConfiguration: ExpressGatewayServiceAwsLogsConfiguration
│          │    ├ ContainerPort: integer (default=80)
│          │    ├ Environment: Array<KeyValuePair>
│          │    └ Image: string (required)
│          ├ type ExpressGatewayRepositoryCredentials
│          │ ├      name: ExpressGatewayRepositoryCredentials
│          │ └ properties
│          │    └ CredentialsParameter: string (required)
│          ├ type ExpressGatewayScalingTarget
│          │ ├      name: ExpressGatewayScalingTarget
│          │ └ properties
│          │    ├ MinTaskCount: integer (default=1)
│          │    ├ MaxTaskCount: integer (default=1)
│          │    ├ AutoScalingMetric: string (default="AVERAGE_CPU")
│          │    └ AutoScalingTargetValue: integer (default=60)
│          ├ type ExpressGatewayServiceAwsLogsConfiguration
│          │ ├      name: ExpressGatewayServiceAwsLogsConfiguration
│          │ └ properties
│          │    ├ LogStreamPrefix: string (required, default="ecs")
│          │    └ LogGroup: string (required)
│          ├ type ExpressGatewayServiceConfiguration
│          │ ├      name: ExpressGatewayServiceConfiguration
│          │ └ properties
│          │    ├ ServiceRevisionArn: string
│          │    ├ ExecutionRoleArn: string
│          │    ├ TaskRoleArn: string
│          │    ├ ScalingTarget: ExpressGatewayScalingTarget
│          │    ├ IngressPaths: Array<IngressPathSummary>
│          │    ├ PrimaryContainer: ExpressGatewayContainer
│          │    ├ Memory: string
│          │    ├ HealthCheckPath: string
│          │    ├ CreatedAt: string
│          │    ├ Cpu: string
│          │    └ NetworkConfiguration: ExpressGatewayServiceNetworkConfiguration
│          ├ type ExpressGatewayServiceNetworkConfiguration
│          │ ├      name: ExpressGatewayServiceNetworkConfiguration
│          │ └ properties
│          │    ├ SecurityGroups: Array<string>
│          │    └ Subnets: Array<string>
│          ├ type ExpressGatewayServiceStatus
│          │ ├      name: ExpressGatewayServiceStatus
│          │ └ properties
│          │    └ StatusCode: string
│          ├ type IngressPathSummary
│          │ ├      name: IngressPathSummary
│          │ └ properties
│          │    ├ Endpoint: string
│          │    └ AccessType: string
│          ├ type KeyValuePair
│          │ ├      name: KeyValuePair
│          │ └ properties
│          │    ├ Value: string (required)
│          │    └ Name: string (required)
│          └ type Secret
│            ├      name: Secret
│            └ properties
│               ├ ValueFrom: string (required)
│               └ Name: string (required)
├[~] service aws-eks
│ └ resources
│    └[~]  resource AWS::EKS::Cluster
│       ├ properties
│       │  └[+] ControlPlaneScalingConfig: ControlPlaneScalingConfig
│       └ types
│          └[+]  type ControlPlaneScalingConfig
│             ├      documentation: Configuration for provisioned control plane scaling.
│             │      name: ControlPlaneScalingConfig
│             └ properties
│                └ Tier: string
├[~] service aws-glue
│ └ resources
│    ├[~]  resource AWS::Glue::Database
│    │  └ events
│    │     ├[~]  event aws.glue@GlueDataCatalogDatabaseStateChange
│    │     │  └      - rootProperty: GlueDataCatalogDatabaseStateChange
│    │     │         + rootProperty: GlueDataCatalogDatabaseStateChange
│    │     │         - resourcesField: [GlueDataCatalogDatabaseStateChange.databaseName]
│    │     │         + resourcesField: [GlueDataCatalogDatabaseStateChange.databaseName]
│    │     └[~]  event aws.glue@GlueDataCatalogTableStateChange
│    │        └      - rootProperty: GlueDataCatalogTableStateChange
│    │               + rootProperty: GlueDataCatalogTableStateChange
│    │               - resourcesField: [GlueDataCatalogTableStateChange.databaseName]
│    │               + resourcesField: [GlueDataCatalogTableStateChange.databaseName]
│    └[~]  resource AWS::Glue::Job
│       └ events
│          ├[~]  event aws.glue@AWSAPICallViaCloudTrail
│          │  └      - rootProperty: AWSAPICallViaCloudTrail
│          │         + rootProperty: AWSAPICallViaCloudTrail
│          │         - resourcesField: [RequestParameters.jobName]
│          │         + resourcesField: [RequestParameters.jobName]
│          ├[~]  event aws.glue@GlueJobRunStatus
│          │  └      - rootProperty: GlueJobRunStatus
│          │         + rootProperty: GlueJobRunStatus
│          │         - resourcesField: [GlueJobRunStatus.jobName]
│          │         + resourcesField: [GlueJobRunStatus.jobName]
│          └[~]  event aws.glue@GlueJobStateChange
│             └      - rootProperty: GlueJobStateChange
│                    + rootProperty: GlueJobStateChange
│                    - resourcesField: [GlueJobStateChange.jobName]
│                    + resourcesField: [GlueJobStateChange.jobName]
├[~] service aws-guardduty
│ └ resources
│    └[~]  resource AWS::GuardDuty::Detector
│       └ events
│          └[~]  event aws.guardduty@GuardDutyFinding
│             └      - rootProperty: GuardDutyFinding
│                    + rootProperty: GuardDutyFinding
│                    - resourcesField: [Service.detectorId]
│                    + resourcesField: [Service.detectorId]
├[~] service aws-healthimaging
│ └ resources
│    └[~]  resource AWS::HealthImaging::Datastore
│       └ events
│          ├[~]  event aws.healthimaging@DataStoreCreated
│          │  └      - rootProperty: DataStoreCreated
│          │         + rootProperty: DataStoreCreated
│          │         - resourcesField: [DataStoreCreated.datastoreId]
│          │         + resourcesField: [DataStoreCreated.datastoreId]
│          ├[~]  event aws.healthimaging@DataStoreCreating
│          │  └      - rootProperty: DataStoreCreating
│          │         + rootProperty: DataStoreCreating
│          │         - resourcesField: [DataStoreCreating.datastoreId]
│          │         + resourcesField: [DataStoreCreating.datastoreId]
│          ├[~]  event aws.healthimaging@DataStoreCreationFailed
│          │  └      - rootProperty: DataStoreCreationFailed
│          │         + rootProperty: DataStoreCreationFailed
│          │         - resourcesField: [DataStoreCreationFailed.datastoreId]
│          │         + resourcesField: [DataStoreCreationFailed.datastoreId]
│          ├[~]  event aws.healthimaging@DataStoreDeleted
│          │  └      - rootProperty: DataStoreDeleted
│          │         + rootProperty: DataStoreDeleted
│          │         - resourcesField: [DataStoreDeleted.datastoreId]
│          │         + resourcesField: [DataStoreDeleted.datastoreId]
│          ├[~]  event aws.healthimaging@DataStoreDeleting
│          │  └      - rootProperty: DataStoreDeleting
│          │         + rootProperty: DataStoreDeleting
│          │         - resourcesField: [DataStoreDeleting.datastoreId]
│          │         + resourcesField: [DataStoreDeleting.datastoreId]
│          ├[~]  event aws.healthimaging@ImageSetCopied
│          │  └      - rootProperty: ImageSetCopied
│          │         + rootProperty: ImageSetCopied
│          │         - resourcesField: [ImageSetCopied.datastoreId]
│          │         + resourcesField: [ImageSetCopied.datastoreId]
│          ├[~]  event aws.healthimaging@ImageSetCopyFailed
│          │  └      - rootProperty: ImageSetCopyFailed
│          │         + rootProperty: ImageSetCopyFailed
│          │         - resourcesField: [ImageSetCopyFailed.datastoreId]
│          │         + resourcesField: [ImageSetCopyFailed.datastoreId]
│          ├[~]  event aws.healthimaging@ImageSetCopying
│          │  └      - rootProperty: ImageSetCopying
│          │         + rootProperty: ImageSetCopying
│          │         - resourcesField: [ImageSetCopying.datastoreId]
│          │         + resourcesField: [ImageSetCopying.datastoreId]
│          ├[~]  event aws.healthimaging@ImageSetCopyingWithReadOnlyAccess
│          │  └      - rootProperty: ImageSetCopyingWithReadOnlyAccess
│          │         + rootProperty: ImageSetCopyingWithReadOnlyAccess
│          │         - resourcesField: [ImageSetCopyingWithReadOnlyAccess.datastoreId]
│          │         + resourcesField: [ImageSetCopyingWithReadOnlyAccess.datastoreId]
│          ├[~]  event aws.healthimaging@ImageSetCreated
│          │  └      - rootProperty: ImageSetCreated
│          │         + rootProperty: ImageSetCreated
│          │         - resourcesField: [ImageSetCreated.datastoreId]
│          │         + resourcesField: [ImageSetCreated.datastoreId]
│          ├[~]  event aws.healthimaging@ImageSetDeleted
│          │  └      - rootProperty: ImageSetDeleted
│          │         + rootProperty: ImageSetDeleted
│          │         - resourcesField: [ImageSetDeleted.datastoreId]
│          │         + resourcesField: [ImageSetDeleted.datastoreId]
│          ├[~]  event aws.healthimaging@ImageSetDeleting
│          │  └      - rootProperty: ImageSetDeleting
│          │         + rootProperty: ImageSetDeleting
│          │         - resourcesField: [ImageSetDeleting.datastoreId]
│          │         + resourcesField: [ImageSetDeleting.datastoreId]
│          ├[~]  event aws.healthimaging@ImageSetUpdated
│          │  └      - rootProperty: ImageSetUpdated
│          │         + rootProperty: ImageSetUpdated
│          │         - resourcesField: [ImageSetUpdated.datastoreId]
│          │         + resourcesField: [ImageSetUpdated.datastoreId]
│          ├[~]  event aws.healthimaging@ImageSetUpdateFailed
│          │  └      - rootProperty: ImageSetUpdateFailed
│          │         + rootProperty: ImageSetUpdateFailed
│          │         - resourcesField: [ImageSetUpdateFailed.datastoreId]
│          │         + resourcesField: [ImageSetUpdateFailed.datastoreId]
│          ├[~]  event aws.healthimaging@ImageSetUpdating
│          │  └      - rootProperty: ImageSetUpdating
│          │         + rootProperty: ImageSetUpdating
│          │         - resourcesField: [ImageSetUpdating.datastoreId]
│          │         + resourcesField: [ImageSetUpdating.datastoreId]
│          ├[~]  event aws.healthimaging@ImportJobCompleted
│          │  └      - rootProperty: ImportJobCompleted
│          │         + rootProperty: ImportJobCompleted
│          │         - resourcesField: [ImportJobCompleted.datastoreId]
│          │         + resourcesField: [ImportJobCompleted.datastoreId]
│          ├[~]  event aws.healthimaging@ImportJobFailed
│          │  └      - rootProperty: ImportJobFailed
│          │         + rootProperty: ImportJobFailed
│          │         - resourcesField: [ImportJobFailed.datastoreId]
│          │         + resourcesField: [ImportJobFailed.datastoreId]
│          ├[~]  event aws.healthimaging@ImportJobInProgress
│          │  └      - rootProperty: ImportJobInProgress
│          │         + rootProperty: ImportJobInProgress
│          │         - resourcesField: [ImportJobInProgress.datastoreId]
│          │         + resourcesField: [ImportJobInProgress.datastoreId]
│          └[~]  event aws.healthimaging@ImportJobSubmitted
│             └      - rootProperty: ImportJobSubmitted
│                    + rootProperty: ImportJobSubmitted
│                    - resourcesField: [ImportJobSubmitted.datastoreId]
│                    + resourcesField: [ImportJobSubmitted.datastoreId]
├[~] service aws-iotanalytics
│ └ resources
│    └[~]  resource AWS::IoTAnalytics::Dataset
│       └ events
│          └[~]  event aws.iotanalytics@IoTAnalyticsDataSetLifeCycleNotification
│             └      - rootProperty: IoTAnalyticsDataSetLifeCycleNotification
│                    + rootProperty: IoTAnalyticsDataSetLifeCycleNotification
│                    - resourcesField: [IoTAnalyticsDataSetLifeCycleNotification.dataset-name]
│                    + resourcesField: [IoTAnalyticsDataSetLifeCycleNotification.dataset-name]
├[~] service aws-ivs
│ └ resources
│    └[~]  resource AWS::IVS::Channel
│       └ events
│          ├[~]  event aws.ivs@RecordingStateChange
│          │  └      - rootProperty: IVSRecordingStateChange
│          │         + rootProperty: IVSRecordingStateChange
│          │         - resourcesField: [IVSRecordingStateChange.channel_name]
│          │         + resourcesField: [IVSRecordingStateChange.channel_name]
│          ├[~]  event aws.ivs@StreamHealthChange
│          │  └      - rootProperty: IVSStreamHealthChange
│          │         + rootProperty: IVSStreamHealthChange
│          │         - resourcesField: [IVSStreamHealthChange.channel_name]
│          │         + resourcesField: [IVSStreamHealthChange.channel_name]
│          └[~]  event aws.ivs@StreamStateChange
│             └      - rootProperty: IVSStreamStateChange
│                    + rootProperty: IVSStreamStateChange
│                    - resourcesField: [IVSStreamStateChange.channel_name]
│                    + resourcesField: [IVSStreamStateChange.channel_name]
├[~] service aws-kinesisvideo
│ └ resources
│    └[~]  resource AWS::KinesisVideo::Stream
│       ├ properties
│       │  └[+] StreamStorageConfiguration: StreamStorageConfiguration
│       └ types
│          └[+]  type StreamStorageConfiguration
│             ├      documentation: Configuration for the storage tier of the Kinesis Video Stream.
│             │      name: StreamStorageConfiguration
│             └ properties
│                └ DefaultStorageTier: string (default="HOT")
├[~] service aws-kms
│ └ resources
│    └[~]  resource AWS::KMS::Key
│       └ events
│          ├[~]  event aws.kms@AWSAPICallViaCloudTrail
│          │  └      - rootProperty: AWSAPICallViaCloudTrail
│          │         + rootProperty: AWSAPICallViaCloudTrail
│          │         - resourcesField: [RequestParameters.keyId]
│          │         + resourcesField: [RequestParameters.keyId]
│          ├[~]  event aws.kms@KMSCMKDeletion
│          │  └      - rootProperty: KMSCMKDeletion
│          │         + rootProperty: KMSCMKDeletion
│          │         - resourcesField: [KMSCMKDeletion.key-id]
│          │         + resourcesField: [KMSCMKDeletion.key-id]
│          ├[~]  event aws.kms@KMSCMKRotation
│          │  └      - rootProperty: KMSCMKRotation
│          │         + rootProperty: KMSCMKRotation
│          │         - resourcesField: [KMSCMKRotation.key-id]
│          │         + resourcesField: [KMSCMKRotation.key-id]
│          └[~]  event aws.kms@KMSImportedKeyMaterialExpiration
│             └      - rootProperty: KMSImportedKeyMaterialExpiration
│                    + rootProperty: KMSImportedKeyMaterialExpiration
│                    - resourcesField: [KMSImportedKeyMaterialExpiration.key-id]
│                    + resourcesField: [KMSImportedKeyMaterialExpiration.key-id]
├[~] service aws-logs
│ └ resources
│    └[~]  resource AWS::Logs::LogGroup
│       └ events
│          └[~]  event aws.logs@AWSAPICallViaCloudTrail
│             └      - rootProperty: AWSAPICallViaCloudTrail
│                    + rootProperty: AWSAPICallViaCloudTrail
│                    - resourcesField: [RequestParameters.logGroupName]
│                    + resourcesField: [RequestParameters.logGroupName]
├[~] service aws-medialive
│ └ resources
│    ├[~]  resource AWS::MediaLive::Channel
│    │  ├ types
│    │  │  ├[~] type Av1Settings
│    │  │  │ └ properties
│    │  │  │    ├[+] SpatialAq: string
│    │  │  │    └[+] TemporalAq: string
│    │  │  └[~] type H265ColorSpaceSettings
│    │  │    └ properties
│    │  │       └[+] Hlg2020Settings: json
│    │  └ events
│    │     └[~]  event aws.medialive@MediaLiveChannelInputChange
│    │        └      - rootProperty: MediaLiveChannelInputChange
│    │               + rootProperty: MediaLiveChannelInputChange
│    │               - resourcesField: [MediaLiveChannelInputChange.channel_arn]
│    │               + resourcesField: [MediaLiveChannelInputChange.channel_arn]
│    └[~]  resource AWS::MediaLive::Input
│       ├ properties
│       │  └[+] RouterSettings: RouterSettings (immutable)
│       └ types
│          ├[+]  type RouterDestinationSettings
│          │  ├      name: RouterDestinationSettings
│          │  └ properties
│          │     └ AvailabilityZoneName: string
│          └[+]  type RouterSettings
│             ├      name: RouterSettings
│             └ properties
│                ├ SecretArn: string
│                ├ Destinations: Array<RouterDestinationSettings>
│                └ EncryptionType: string
├[~] service aws-mediapackage
│ └ resources
│    └[~]  resource AWS::MediaPackage::OriginEndpoint
│       └ events
│          └[~]  event aws.mediapackage@MediaPackageHarvestJobNotification
│             └      - rootProperty: MediaPackageHarvestJobNotification
│                    + rootProperty: MediaPackageHarvestJobNotification
│                    - resourcesField: [Harvest_job.origin_endpoint_id]
│                    + resourcesField: [Harvest_job.origin_endpoint_id]
├[~] service aws-networkmanager
│ └ resources
│    └[~]  resource AWS::NetworkManager::CoreNetwork
│       └ events
│          ├[~]  event aws.networkmanager@NetworkManagerPolicyUpdate
│          │  └      - rootProperty: NetworkManagerPolicyUpdate
│          │         + rootProperty: NetworkManagerPolicyUpdate
│          │         - resourcesField: [NetworkManagerPolicyUpdate.coreNetworkArn]
│          │         + resourcesField: [NetworkManagerPolicyUpdate.coreNetworkArn]
│          └[~]  event aws.networkmanager@NetworkManagerSegmentUpdate
│             └      - rootProperty: NetworkManagerSegmentUpdate
│                    + rootProperty: NetworkManagerSegmentUpdate
│                    - resourcesField: [NetworkManagerSegmentUpdate.coreNetworkArn]
│                    + resourcesField: [NetworkManagerSegmentUpdate.coreNetworkArn]
├[~] service aws-omics
│ └ resources
│    ├[~]  resource AWS::Omics::ReferenceStore
│    │  └ events
│    │     ├[~]  event aws.omics@ReferenceImportJobStatusChange
│    │     │  └      - rootProperty: ReferenceImportJobStatusChange
│    │     │         + rootProperty: ReferenceImportJobStatusChange
│    │     │         - resourcesField: [ReferenceImportJobStatusChange.referenceStoreId]
│    │     │         + resourcesField: [ReferenceImportJobStatusChange.referenceStoreId]
│    │     └[~]  event aws.omics@ReferenceStatusChange
│    │        └      - rootProperty: ReferenceStatusChange
│    │               + rootProperty: ReferenceStatusChange
│    │               - resourcesField: [ReferenceStatusChange.referenceStoreId]
│    │               + resourcesField: [ReferenceStatusChange.referenceStoreId]
│    └[~]  resource AWS::Omics::SequenceStore
│       └ events
│          ├[~]  event aws.omics@ReadSetActivationJobStatusChange
│          │  └      - rootProperty: ReadSetActivationJobStatusChange
│          │         + rootProperty: ReadSetActivationJobStatusChange
│          │         - resourcesField: [ReadSetActivationJobStatusChange.sequenceStoreId]
│          │         + resourcesField: [ReadSetActivationJobStatusChange.sequenceStoreId]
│          ├[~]  event aws.omics@ReadSetExportJobStatusChange
│          │  └      - rootProperty: ReadSetExportJobStatusChange
│          │         + rootProperty: ReadSetExportJobStatusChange
│          │         - resourcesField: [ReadSetExportJobStatusChange.sequenceStoreId]
│          │         + resourcesField: [ReadSetExportJobStatusChange.sequenceStoreId]
│          ├[~]  event aws.omics@ReadSetImportJobStatusChange
│          │  └      - rootProperty: ReadSetImportJobStatusChange
│          │         + rootProperty: ReadSetImportJobStatusChange
│          │         - resourcesField: [ReadSetImportJobStatusChange.sequenceStoreId]
│          │         + resourcesField: [ReadSetImportJobStatusChange.sequenceStoreId]
│          └[~]  event aws.omics@ReadSetStatusChange
│             └      - rootProperty: ReadSetStatusChange
│                    + rootProperty: ReadSetStatusChange
│                    - resourcesField: [ReadSetStatusChange.sequenceStoreId]
│                    + resourcesField: [ReadSetStatusChange.sequenceStoreId]
├[~] service aws-opensearchserverless
│ └ resources
│    └[~]  resource AWS::OpenSearchServerless::Collection
│       ├ properties
│       │  ├[-] CollectionGroupName: string (immutable)
│       │  └[-] EncryptionConfig: EncryptionConfig (immutable)
│       └ types
│          └[-]  type EncryptionConfig
│             ├      documentation: The configuration to encrypt the collection
│             │      name: EncryptionConfig
│             └ properties
│                ├ AWSOwnedKey: boolean
│                └ KmsKeyArn: string
├[~] service aws-opsworks
│ └ resources
│    ├[~]  resource AWS::OpsWorks::Instance
│    │  └ events
│    │     ├[~]  event aws.opsworks@OpsWorksAlert
│    │     │  └      - rootProperty: OpsWorksAlert
│    │     │         + rootProperty: OpsWorksAlert
│    │     │         - resourcesField: [OpsWorksAlert.instance-id]
│    │     │         + resourcesField: [OpsWorksAlert.instance-id]
│    │     ├[~]  event aws.opsworks@OpsWorksCommandStateChange
│    │     │  └      - rootProperty: OpsWorksCommandStateChange
│    │     │         + rootProperty: OpsWorksCommandStateChange
│    │     │         - resourcesField: [OpsWorksCommandStateChange.instance-id]
│    │     │         + resourcesField: [OpsWorksCommandStateChange.instance-id]
│    │     └[~]  event aws.opsworks@OpsWorksInstanceStateChange
│    │        └      - rootProperty: OpsWorksInstanceStateChange
│    │               + rootProperty: OpsWorksInstanceStateChange
│    │               - resourcesField: [OpsWorksInstanceStateChange.instance-id]
│    │               + resourcesField: [OpsWorksInstanceStateChange.instance-id]
│    └[~]  resource AWS::OpsWorks::Stack
│       └ events
│          └[~]  event aws.opsworks@OpsWorksDeploymentStateChange
│             └      - rootProperty: OpsWorksDeploymentStateChange
│                    + rootProperty: OpsWorksDeploymentStateChange
│                    - resourcesField: [OpsWorksDeploymentStateChange.stack-id]
│                    + resourcesField: [OpsWorksDeploymentStateChange.stack-id]
├[~] service aws-organizations
│ └ resources
│    └[~]  resource AWS::Organizations::Account
│       └ events
│          └[~]  event aws.organizations@AWSServiceEventViaCloudTrail
│             └      - rootProperty: AWSServiceEventViaCloudTrail
│                    + rootProperty: AWSServiceEventViaCloudTrail
│                    - resourcesField: [CreateAccountStatus.accountId]
│                    + resourcesField: [CreateAccountStatus.accountId]
├[~] service aws-pcs
│ └ resources
│    └[~]  resource AWS::PCS::Cluster
│       └ types
│          ├[+]  type JwtAuth
│          │  ├      documentation: JWT authentication configuration for Slurm.
│          │  │      name: JwtAuth
│          │  └ properties
│          │     └ JwtKey: JwtKey
│          ├[+]  type JwtKey
│          │  ├      documentation: JWT key configuration.
│          │  │      name: JwtKey
│          │  └ properties
│          │     ├ SecretArn: string (required)
│          │     └ SecretVersion: string (required)
│          ├[~] type SlurmConfiguration
│          │ └ properties
│          │    ├[+] JwtAuth: JwtAuth
│          │    └[+] SlurmRest: SlurmRest
│          └[+]  type SlurmRest
│             ├      documentation: The SlurmRest configuration includes configurable settings for Slurm Rest.
│             │      name: SlurmRest
│             └ properties
│                └ Mode: string (required, default="NONE")
├[~] service aws-qldb
│ └ resources
│    └[~]  resource AWS::QLDB::Ledger
│       └ events
│          └[~]  event aws.qldb@QLDBLedgerStateChange
│             └      - rootProperty: QLDBLedgerStateChange
│                    + rootProperty: QLDBLedgerStateChange
│                    - resourcesField: [QLDBLedgerStateChange.ledgerName]
│                    + resourcesField: [QLDBLedgerStateChange.ledgerName]
├[~] service aws-route53recoveryreadiness
│ └ resources
│    ├[~]  resource AWS::Route53RecoveryReadiness::Cell
│    │  └ events
│    │     └[~]  event aws.route53recoveryreadiness@Route53ApplicationRecoveryControllerCellReadinessStatusChange
│    │        └      - rootProperty: CellStatusChange
│    │               + rootProperty: CellStatusChange
│    │               - resourcesField: [CellStatusChange.cell-name]
│    │               + resourcesField: [CellStatusChange.cell-name]
│    ├[~]  resource AWS::Route53RecoveryReadiness::ReadinessCheck
│    │  └ events
│    │     └[~]  event aws.route53recoveryreadiness@Route53ApplicationRecoveryControllerReadinessCheckStatusChange
│    │        └      - rootProperty: ReadinessCheckStatusChange
│    │               + rootProperty: ReadinessCheckStatusChange
│    │               - resourcesField: [ReadinessCheckStatusChange.readiness-check-name]
│    │               + resourcesField: [ReadinessCheckStatusChange.readiness-check-name]
│    └[~]  resource AWS::Route53RecoveryReadiness::RecoveryGroup
│       └ events
│          └[~]  event aws.route53recoveryreadiness@Route53ApplicationRecoveryControllerRecoveryGroupReadinessStatusChange
│             └      - rootProperty: RecoveryGroupStatusChange
│                    + rootProperty: RecoveryGroupStatusChange
│                    - resourcesField: [RecoveryGroupStatusChange.recovery-group-name]
│                    + resourcesField: [RecoveryGroupStatusChange.recovery-group-name]
├[~] service aws-route53resolver
│ └ resources
│    └[~]  resource AWS::Route53Resolver::FirewallDomainList
│       └ events
│          ├[~]  event aws.route53resolver@DNSFirewallAlert
│          │  └      - rootProperty: DNSFirewallAlert
│          │         + rootProperty: DNSFirewallAlert
│          │         - resourcesField: [DNSFirewallAlert.firewall-domain-list-id]
│          │         + resourcesField: [DNSFirewallAlert.firewall-domain-list-id]
│          └[~]  event aws.route53resolver@DNSFirewallBlock
│             └      - rootProperty: DNSFirewallBlock
│                    + rootProperty: DNSFirewallBlock
│                    - resourcesField: [DNSFirewallBlock.firewall-domain-list-id]
│                    + resourcesField: [DNSFirewallBlock.firewall-domain-list-id]
├[~] service aws-s3
│ └ resources
│    └[~]  resource AWS::S3::Bucket
│       ├ properties
│       │  └[+] AbacStatus: string
│       └ events
│          ├[~]  event aws.s3@AWSAPICallViaCloudTrail
│          │  └      - rootProperty: AWSAPICallViaCloudTrail
│          │         + rootProperty: AWSAPICallViaCloudTrail
│          │         - resourcesField: [RequestParameters.bucketName]
│          │         + resourcesField: [RequestParameters.bucketName]
│          ├[~]  event aws.s3@ObjectAccessTierChanged
│          │  └      - rootProperty: ObjectAccessTierChanged
│          │         + rootProperty: ObjectAccessTierChanged
│          │         - resourcesField: [Bucket]
│          │         + resourcesField: [Bucket]
│          ├[~]  event aws.s3@ObjectACLUpdated
│          │  └      - rootProperty: ObjectACLUpdated
│          │         + rootProperty: ObjectACLUpdated
│          │         - resourcesField: [Bucket]
│          │         + resourcesField: [Bucket]
│          ├[~]  event aws.s3@ObjectCreated
│          │  └      - rootProperty: ObjectCreated
│          │         + rootProperty: ObjectCreated
│          │         - resourcesField: [Bucket]
│          │         + resourcesField: [Bucket]
│          ├[~]  event aws.s3@ObjectDeleted
│          │  └      - rootProperty: ObjectDeleted
│          │         + rootProperty: ObjectDeleted
│          │         - resourcesField: [Bucket]
│          │         + resourcesField: [Bucket]
│          ├[~]  event aws.s3@ObjectRestoreCompleted
│          │  └      - rootProperty: ObjectRestoreCompleted
│          │         + rootProperty: ObjectRestoreCompleted
│          │         - resourcesField: [Bucket]
│          │         + resourcesField: [Bucket]
│          ├[~]  event aws.s3@ObjectRestoreExpired
│          │  └      - rootProperty: ObjectRestoreExpired
│          │         + rootProperty: ObjectRestoreExpired
│          │         - resourcesField: [Bucket]
│          │         + resourcesField: [Bucket]
│          ├[~]  event aws.s3@ObjectRestoreInitiated
│          │  └      - rootProperty: ObjectRestoreInitiated
│          │         + rootProperty: ObjectRestoreInitiated
│          │         - resourcesField: [Bucket]
│          │         + resourcesField: [Bucket]
│          ├[~]  event aws.s3@ObjectStorageClassChanged
│          │  └      - rootProperty: ObjectStorageClassChanged
│          │         + rootProperty: ObjectStorageClassChanged
│          │         - resourcesField: [Bucket]
│          │         + resourcesField: [Bucket]
│          ├[~]  event aws.s3@ObjectTagsAdded
│          │  └      - rootProperty: ObjectTagsAdded
│          │         + rootProperty: ObjectTagsAdded
│          │         - resourcesField: [Bucket]
│          │         + resourcesField: [Bucket]
│          └[~]  event aws.s3@ObjectTagsDeleted
│             └      - rootProperty: ObjectTagsDeleted
│                    + rootProperty: ObjectTagsDeleted
│                    - resourcesField: [Bucket]
│                    + resourcesField: [Bucket]
├[~] service aws-sagemaker
│ └ resources
│    ├[~]  resource AWS::SageMaker::Cluster
│    │  └ types
│    │     ├[+]  type ClusterCapacityRequirements
│    │     │  ├      documentation: Specifies the capacity requirements configuration for an instance group
│    │     │  │      name: ClusterCapacityRequirements
│    │     │  └ properties
│    │     │     ├ Spot: json
│    │     │     └ OnDemand: json
│    │     ├[~] type ClusterInstanceGroup
│    │     │ └ properties
│    │     │    ├[+] CapacityRequirements: ClusterCapacityRequirements
│    │     │    └[+] KubernetesConfig: ClusterKubernetesConfig
│    │     ├[+]  type ClusterKubernetesConfig
│    │     │  ├      documentation: Kubernetes configuration for cluster nodes including labels and taints.
│    │     │  │      name: ClusterKubernetesConfig
│    │     │  └ properties
│    │     │     ├ Labels: Map<string, string>
│    │     │     └ Taints: Array<ClusterKubernetesTaint>
│    │     └[+]  type ClusterKubernetesTaint
│    │        ├      documentation: A Kubernetes taint to apply to cluster nodes.
│    │        │      name: ClusterKubernetesTaint
│    │        └ properties
│    │           ├ Value: string
│    │           ├ Effect: string (required)
│    │           └ Key: string (required)
│    ├[~]  resource AWS::SageMaker::EndpointConfig
│    │  └ events
│    │     └[~]  event aws.sagemaker@SageMakerEndpointConfigStateChange
│    │        └      - rootProperty: SageMakerEndpointConfigStateChange
│    │               + rootProperty: SageMakerEndpointConfigStateChange
│    │               - resourcesField: [SageMakerEndpointConfigStateChange.EndpointConfigName]
│    │               + resourcesField: [SageMakerEndpointConfigStateChange.EndpointConfigName]
│    ├[~]  resource AWS::SageMaker::Image
│    │  └ events
│    │     └[~]  event aws.sagemaker@SageMakerModelStateChange
│    │        └      - rootProperty: SageMakerModelStateChange
│    │               + rootProperty: SageMakerModelStateChange
│    │               - resourcesField: [PrimaryContainer.Image]
│    │               + resourcesField: [PrimaryContainer.Image]
│    ├[~]  resource AWS::SageMaker::Model
│    │  └ events
│    │     ├[~]  event aws.sagemaker@AWSAPICallViaCloudTrail
│    │     │  └      - rootProperty: AWSAPICallViaCloudTrail
│    │     │         + rootProperty: AWSAPICallViaCloudTrail
│    │     │         - resourcesField: [RequestParametersItem.modelName]
│    │     │         + resourcesField: [RequestParametersItem.modelName]
│    │     └[~]  event aws.sagemaker@SageMakerTransformJobStateChange
│    │        └      - rootProperty: SageMakerTransformJobStateChange
│    │               + rootProperty: SageMakerTransformJobStateChange
│    │               - resourcesField: [SageMakerTransformJobStateChange.ModelName]
│    │               + resourcesField: [SageMakerTransformJobStateChange.ModelName]
│    └[~]  resource AWS::SageMaker::Pipeline
│       └ events
│          ├[~]  event aws.sagemaker@SageMakerModelBuildingPipelineExecutionStatusChange
│          │  └      - rootProperty: SageMakerModelBuildingPipelineExecutionStatusChange
│          │         + rootProperty: SageMakerModelBuildingPipelineExecutionStatusChange
│          │         - resourcesField: [SageMakerModelBuildingPipelineExecutionStatusChange.pipelineArn]
│          │         + resourcesField: [SageMakerModelBuildingPipelineExecutionStatusChange.pipelineArn]
│          └[~]  event aws.sagemaker@SageMakerModelBuildingPipelineExecutionStepStatusChange
│             └      - rootProperty: SageMakerModelBuildingPipelineExecutionStepStatusChange
│                    + rootProperty: SageMakerModelBuildingPipelineExecutionStepStatusChange
│                    - resourcesField: [SageMakerModelBuildingPipelineExecutionStepStatusChange.pipelineArn]
│                    + resourcesField: [SageMakerModelBuildingPipelineExecutionStepStatusChange.pipelineArn]
├[~] service aws-secretsmanager
│ └ resources
│    ├[~]  resource AWS::SecretsManager::RotationSchedule
│    │  ├ properties
│    │  │  ├[+] ExternalSecretRotationMetadata: Array<ExternalSecretRotationMetadataItem>
│    │  │  └[+] ExternalSecretRotationRoleArn: string
│    │  └ types
│    │     └[+]  type ExternalSecretRotationMetadataItem
│    │        ├      documentation: The metadata needed to successfully rotate a managed external secret. Each metadata item is a key and value pair of strings in a JSON text string.
│    │        │      name: ExternalSecretRotationMetadataItem
│    │        └ properties
│    │           ├ Value: string (required)
│    │           └ Key: string (required)
│    └[~]  resource AWS::SecretsManager::Secret
│       └ properties
│          └[+] Type: string
├[~] service aws-securityhub
│ └ resources
│    └[~]  resource AWS::SecurityHub::Insight
│       └ events
│          └[~]  event aws.securityhub@SecurityHubInsightResults
│             └      - rootProperty: SecurityHubInsightResults
│                    + rootProperty: SecurityHubInsightResults
│                    - resourcesField: [SecurityHubInsightResults.insightName]
│                    + resourcesField: [SecurityHubInsightResults.insightName]
├[~] service aws-synthetics
│ └ resources
│    └[~]  resource AWS::Synthetics::Canary
│       └ events
│          ├[~]  event aws.synthetics@SyntheticsCanaryStatusChange
│          │  └      - rootProperty: SyntheticsCanaryStatusChange
│          │         + rootProperty: SyntheticsCanaryStatusChange
│          │         - resourcesField: [SyntheticsCanaryStatusChange.canary-id]
│          │         + resourcesField: [SyntheticsCanaryStatusChange.canary-id]
│          ├[~]  event aws.synthetics@SyntheticsCanaryTestRunFailure
│          │  └      - rootProperty: SyntheticsCanaryTestRunFailure
│          │         + rootProperty: SyntheticsCanaryTestRunFailure
│          │         - resourcesField: [SyntheticsCanaryTestRunFailure.canary-id]
│          │         + resourcesField: [SyntheticsCanaryTestRunFailure.canary-id]
│          └[~]  event aws.synthetics@SyntheticsCanaryTestRunSuccessful
│             └      - rootProperty: SyntheticsCanaryTestRunSuccessful
│                    + rootProperty: SyntheticsCanaryTestRunSuccessful
│                    - resourcesField: [SyntheticsCanaryTestRunSuccessful.canary-id]
│                    + resourcesField: [SyntheticsCanaryTestRunSuccessful.canary-id]
├[~] service aws-transfer
│ └ resources
│    ├[~]  resource AWS::Transfer::Agreement
│    │  └ events
│    │     ├[~]  event aws.transfer@AS2MDNSendCompleted
│    │     │  └      - rootProperty: AS2MDNSendCompleted
│    │     │         + rootProperty: AS2MDNSendCompleted
│    │     │         - resourcesField: [AS2MDNSendCompleted.agreement-id]
│    │     │         + resourcesField: [AS2MDNSendCompleted.agreement-id]
│    │     ├[~]  event aws.transfer@AS2MDNSendFailed
│    │     │  └      - rootProperty: AS2MDNSendFailed
│    │     │         + rootProperty: AS2MDNSendFailed
│    │     │         - resourcesField: [AS2MDNSendFailed.agreement-id]
│    │     │         + resourcesField: [AS2MDNSendFailed.agreement-id]
│    │     ├[~]  event aws.transfer@AS2PayloadReceiveCompleted
│    │     │  └      - rootProperty: AS2PayloadReceiveCompleted
│    │     │         + rootProperty: AS2PayloadReceiveCompleted
│    │     │         - resourcesField: [AS2PayloadReceiveCompleted.agreement-id]
│    │     │         + resourcesField: [AS2PayloadReceiveCompleted.agreement-id]
│    │     └[~]  event aws.transfer@AS2PayloadReceiveFailed
│    │        └      - rootProperty: AS2PayloadReceiveFailed
│    │               + rootProperty: AS2PayloadReceiveFailed
│    │               - resourcesField: [AS2PayloadReceiveFailed.agreement-id]
│    │               + resourcesField: [AS2PayloadReceiveFailed.agreement-id]
│    ├[~]  resource AWS::Transfer::Connector
│    │  └ events
│    │     ├[~]  event aws.transfer@AS2MDNReceiveCompleted
│    │     │  └      - rootProperty: AS2MDNReceiveCompleted
│    │     │         + rootProperty: AS2MDNReceiveCompleted
│    │     │         - resourcesField: [AS2MDNReceiveCompleted.connector-id]
│    │     │         + resourcesField: [AS2MDNReceiveCompleted.connector-id]
│    │     ├[~]  event aws.transfer@AS2MDNReceiveFailed
│    │     │  └      - rootProperty: AS2MDNReceiveFailed
│    │     │         + rootProperty: AS2MDNReceiveFailed
│    │     │         - resourcesField: [AS2MDNReceiveFailed.connector-id]
│    │     │         + resourcesField: [AS2MDNReceiveFailed.connector-id]
│    │     ├[~]  event aws.transfer@AS2PayloadSendCompleted
│    │     │  └      - rootProperty: AS2PayloadSendCompleted
│    │     │         + rootProperty: AS2PayloadSendCompleted
│    │     │         - resourcesField: [AS2PayloadSendCompleted.connector-id]
│    │     │         + resourcesField: [AS2PayloadSendCompleted.connector-id]
│    │     ├[~]  event aws.transfer@AS2PayloadSendFailed
│    │     │  └      - rootProperty: AS2PayloadSendFailed
│    │     │         + rootProperty: AS2PayloadSendFailed
│    │     │         - resourcesField: [AS2PayloadSendFailed.connector-id]
│    │     │         + resourcesField: [AS2PayloadSendFailed.connector-id]
│    │     ├[~]  event aws.transfer@SFTPConnectorDirectoryListingCompleted
│    │     │  └      - rootProperty: SFTPConnectorDirectoryListingCompleted
│    │     │         + rootProperty: SFTPConnectorDirectoryListingCompleted
│    │     │         - resourcesField: [SFTPConnectorDirectoryListingCompleted.connector-id]
│    │     │         + resourcesField: [SFTPConnectorDirectoryListingCompleted.connector-id]
│    │     ├[~]  event aws.transfer@SFTPConnectorDirectoryListingFailed
│    │     │  └      - rootProperty: SFTPConnectorDirectoryListingFailed
│    │     │         + rootProperty: SFTPConnectorDirectoryListingFailed
│    │     │         - resourcesField: [SFTPConnectorDirectoryListingFailed.connector-id]
│    │     │         + resourcesField: [SFTPConnectorDirectoryListingFailed.connector-id]
│    │     ├[~]  event aws.transfer@SFTPConnectorFileRetrieveCompleted
│    │     │  └      - rootProperty: SFTPConnectorFileRetrieveCompleted
│    │     │         + rootProperty: SFTPConnectorFileRetrieveCompleted
│    │     │         - resourcesField: [SFTPConnectorFileRetrieveCompleted.connector-id]
│    │     │         + resourcesField: [SFTPConnectorFileRetrieveCompleted.connector-id]
│    │     ├[~]  event aws.transfer@SFTPConnectorFileRetrieveFailed
│    │     │  └      - rootProperty: SFTPConnectorFileRetrieveFailed
│    │     │         + rootProperty: SFTPConnectorFileRetrieveFailed
│    │     │         - resourcesField: [SFTPConnectorFileRetrieveFailed.connector-id]
│    │     │         + resourcesField: [SFTPConnectorFileRetrieveFailed.connector-id]
│    │     ├[~]  event aws.transfer@SFTPConnectorFileSendCompleted
│    │     │  └      - rootProperty: SFTPConnectorFileSendCompleted
│    │     │         + rootProperty: SFTPConnectorFileSendCompleted
│    │     │         - resourcesField: [SFTPConnectorFileSendCompleted.connector-id]
│    │     │         + resourcesField: [SFTPConnectorFileSendCompleted.connector-id]
│    │     ├[~]  event aws.transfer@SFTPConnectorFileSendFailed
│    │     │  └      - rootProperty: SFTPConnectorFileSendFailed
│    │     │         + rootProperty: SFTPConnectorFileSendFailed
│    │     │         - resourcesField: [SFTPConnectorFileSendFailed.connector-id]
│    │     │         + resourcesField: [SFTPConnectorFileSendFailed.connector-id]
│    │     ├[~]  event aws.transfer@SFTPConnectorRemoteDeleteCompleted
│    │     │  └      - rootProperty: SFTPConnectorRemoteDeleteCompleted
│    │     │         + rootProperty: SFTPConnectorRemoteDeleteCompleted
│    │     │         - resourcesField: [SFTPConnectorRemoteDeleteCompleted.connector-id]
│    │     │         + resourcesField: [SFTPConnectorRemoteDeleteCompleted.connector-id]
│    │     ├[~]  event aws.transfer@SFTPConnectorRemoteDeleteFailed
│    │     │  └      - rootProperty: SFTPConnectorRemoteDeleteFailed
│    │     │         + rootProperty: SFTPConnectorRemoteDeleteFailed
│    │     │         - resourcesField: [SFTPConnectorRemoteDeleteFailed.connector-id]
│    │     │         + resourcesField: [SFTPConnectorRemoteDeleteFailed.connector-id]
│    │     ├[~]  event aws.transfer@SFTPConnectorRemoteMoveCompleted
│    │     │  └      - rootProperty: SFTPConnectorRemoteMoveCompleted
│    │     │         + rootProperty: SFTPConnectorRemoteMoveCompleted
│    │     │         - resourcesField: [SFTPConnectorRemoteMoveCompleted.connector-id]
│    │     │         + resourcesField: [SFTPConnectorRemoteMoveCompleted.connector-id]
│    │     └[~]  event aws.transfer@SFTPConnectorRemoteMoveFailed
│    │        └      - rootProperty: SFTPConnectorRemoteMoveFailed
│    │               + rootProperty: SFTPConnectorRemoteMoveFailed
│    │               - resourcesField: [SFTPConnectorRemoteMoveFailed.connector-id]
│    │               + resourcesField: [SFTPConnectorRemoteMoveFailed.connector-id]
│    └[~]  resource AWS::Transfer::Server
│       └ events
│          ├[~]  event aws.transfer@FTPServerDirectoryCreateCompleted
│          │  └      - rootProperty: FTPServerDirectoryCreateCompleted
│          │         + rootProperty: FTPServerDirectoryCreateCompleted
│          │         - resourcesField: [FTPServerDirectoryCreateCompleted.server-id]
│          │         + resourcesField: [FTPServerDirectoryCreateCompleted.server-id]
│          ├[~]  event aws.transfer@FTPServerDirectoryCreateFailed
│          │  └      - rootProperty: FTPServerDirectoryCreateFailed
│          │         + rootProperty: FTPServerDirectoryCreateFailed
│          │         - resourcesField: [FTPServerDirectoryCreateFailed.server-id]
│          │         + resourcesField: [FTPServerDirectoryCreateFailed.server-id]
│          ├[~]  event aws.transfer@FTPServerDirectoryDeleteCompleted
│          │  └      - rootProperty: FTPServerDirectoryDeleteCompleted
│          │         + rootProperty: FTPServerDirectoryDeleteCompleted
│          │         - resourcesField: [FTPServerDirectoryDeleteCompleted.server-id]
│          │         + resourcesField: [FTPServerDirectoryDeleteCompleted.server-id]
│          ├[~]  event aws.transfer@FTPServerDirectoryDeleteFailed
│          │  └      - rootProperty: FTPServerDirectoryDeleteFailed
│          │         + rootProperty: FTPServerDirectoryDeleteFailed
│          │         - resourcesField: [FTPServerDirectoryDeleteFailed.server-id]
│          │         + resourcesField: [FTPServerDirectoryDeleteFailed.server-id]
│          ├[~]  event aws.transfer@FTPServerFileDeleteCompleted
│          │  └      - rootProperty: FTPServerFileDeleteCompleted
│          │         + rootProperty: FTPServerFileDeleteCompleted
│          │         - resourcesField: [FTPServerFileDeleteCompleted.server-id]
│          │         + resourcesField: [FTPServerFileDeleteCompleted.server-id]
│          ├[~]  event aws.transfer@FTPServerFileDeleteFailed
│          │  └      - rootProperty: FTPServerFileDeleteFailed
│          │         + rootProperty: FTPServerFileDeleteFailed
│          │         - resourcesField: [FTPServerFileDeleteFailed.server-id]
│          │         + resourcesField: [FTPServerFileDeleteFailed.server-id]
│          ├[~]  event aws.transfer@FTPServerFileDownloadCompleted
│          │  └      - rootProperty: FTPServerFileDownloadCompleted
│          │         + rootProperty: FTPServerFileDownloadCompleted
│          │         - resourcesField: [FTPServerFileDownloadCompleted.server-id]
│          │         + resourcesField: [FTPServerFileDownloadCompleted.server-id]
│          ├[~]  event aws.transfer@FTPServerFileDownloadFailed
│          │  └      - rootProperty: FTPServerFileDownloadFailed
│          │         + rootProperty: FTPServerFileDownloadFailed
│          │         - resourcesField: [FTPServerFileDownloadFailed.server-id]
│          │         + resourcesField: [FTPServerFileDownloadFailed.server-id]
│          ├[~]  event aws.transfer@FTPServerFileRenameCompleted
│          │  └      - rootProperty: FTPServerFileRenameCompleted
│          │         + rootProperty: FTPServerFileRenameCompleted
│          │         - resourcesField: [FTPServerFileRenameCompleted.server-id]
│          │         + resourcesField: [FTPServerFileRenameCompleted.server-id]
│          ├[~]  event aws.transfer@FTPServerFileRenameFailed
│          │  └      - rootProperty: FTPServerFileRenameFailed
│          │         + rootProperty: FTPServerFileRenameFailed
│          │         - resourcesField: [FTPServerFileRenameFailed.server-id]
│          │         + resourcesField: [FTPServerFileRenameFailed.server-id]
│          ├[~]  event aws.transfer@FTPServerFileUploadCompleted
│          │  └      - rootProperty: FTPServerFileUploadCompleted
│          │         + rootProperty: FTPServerFileUploadCompleted
│          │         - resourcesField: [FTPServerFileUploadCompleted.server-id]
│          │         + resourcesField: [FTPServerFileUploadCompleted.server-id]
│          ├[~]  event aws.transfer@FTPServerFileUploadFailed
│          │  └      - rootProperty: FTPServerFileUploadFailed
│          │         + rootProperty: FTPServerFileUploadFailed
│          │         - resourcesField: [FTPServerFileUploadFailed.server-id]
│          │         + resourcesField: [FTPServerFileUploadFailed.server-id]
│          ├[~]  event aws.transfer@FTPSServerDirectoryCreateCompleted
│          │  └      - rootProperty: FTPSServerDirectoryCreateCompleted
│          │         + rootProperty: FTPSServerDirectoryCreateCompleted
│          │         - resourcesField: [FTPSServerDirectoryCreateCompleted.server-id]
│          │         + resourcesField: [FTPSServerDirectoryCreateCompleted.server-id]
│          ├[~]  event aws.transfer@FTPSServerDirectoryCreateFailed
│          │  └      - rootProperty: FTPSServerDirectoryCreateFailed
│          │         + rootProperty: FTPSServerDirectoryCreateFailed
│          │         - resourcesField: [FTPSServerDirectoryCreateFailed.server-id]
│          │         + resourcesField: [FTPSServerDirectoryCreateFailed.server-id]
│          ├[~]  event aws.transfer@FTPSServerDirectoryDeleteCompleted
│          │  └      - rootProperty: FTPSServerDirectoryDeleteCompleted
│          │         + rootProperty: FTPSServerDirectoryDeleteCompleted
│          │         - resourcesField: [FTPSServerDirectoryDeleteCompleted.server-id]
│          │         + resourcesField: [FTPSServerDirectoryDeleteCompleted.server-id]
│          ├[~]  event aws.transfer@FTPSServerDirectoryDeleteFailed
│          │  └      - rootProperty: FTPSServerDirectoryDeleteFailed
│          │         + rootProperty: FTPSServerDirectoryDeleteFailed
│          │         - resourcesField: [FTPSServerDirectoryDeleteFailed.server-id]
│          │         + resourcesField: [FTPSServerDirectoryDeleteFailed.server-id]
│          ├[~]  event aws.transfer@FTPSServerFileDeleteCompleted
│          │  └      - rootProperty: FTPSServerFileDeleteCompleted
│          │         + rootProperty: FTPSServerFileDeleteCompleted
│          │         - resourcesField: [FTPSServerFileDeleteCompleted.server-id]
│          │         + resourcesField: [FTPSServerFileDeleteCompleted.server-id]
│          ├[~]  event aws.transfer@FTPSServerFileDeleteFailed
│          │  └      - rootProperty: FTPSServerFileDeleteFailed
│          │         + rootProperty: FTPSServerFileDeleteFailed
│          │         - resourcesField: [FTPSServerFileDeleteFailed.server-id]
│          │         + resourcesField: [FTPSServerFileDeleteFailed.server-id]
│          ├[~]  event aws.transfer@FTPSServerFileDownloadCompleted
│          │  └      - rootProperty: FTPSServerFileDownloadCompleted
│          │         + rootProperty: FTPSServerFileDownloadCompleted
│          │         - resourcesField: [FTPSServerFileDownloadCompleted.server-id]
│          │         + resourcesField: [FTPSServerFileDownloadCompleted.server-id]
│          ├[~]  event aws.transfer@FTPSServerFileDownloadFailed
│          │  └      - rootProperty: FTPSServerFileDownloadFailed
│          │         + rootProperty: FTPSServerFileDownloadFailed
│          │         - resourcesField: [FTPSServerFileDownloadFailed.server-id]
│          │         + resourcesField: [FTPSServerFileDownloadFailed.server-id]
│          ├[~]  event aws.transfer@FTPSServerFileRenameCompleted
│          │  └      - rootProperty: FTPSServerFileRenameCompleted
│          │         + rootProperty: FTPSServerFileRenameCompleted
│          │         - resourcesField: [FTPSServerFileRenameCompleted.server-id]
│          │         + resourcesField: [FTPSServerFileRenameCompleted.server-id]
│          ├[~]  event aws.transfer@FTPSServerFileRenameFailed
│          │  └      - rootProperty: FTPSServerFileRenameFailed
│          │         + rootProperty: FTPSServerFileRenameFailed
│          │         - resourcesField: [FTPSServerFileRenameFailed.server-id]
│          │         + resourcesField: [FTPSServerFileRenameFailed.server-id]
│          ├[~]  event aws.transfer@FTPSServerFileUploadCompleted
│          │  └      - rootProperty: FTPSServerFileUploadCompleted
│          │         + rootProperty: FTPSServerFileUploadCompleted
│          │         - resourcesField: [FTPSServerFileUploadCompleted.server-id]
│          │         + resourcesField: [FTPSServerFileUploadCompleted.server-id]
│          ├[~]  event aws.transfer@FTPSServerFileUploadFailed
│          │  └      - rootProperty: FTPSServerFileUploadFailed
│          │         + rootProperty: FTPSServerFileUploadFailed
│          │         - resourcesField: [FTPSServerFileUploadFailed.server-id]
│          │         + resourcesField: [FTPSServerFileUploadFailed.server-id]
│          ├[~]  event aws.transfer@SFTPServerDirectoryCreateCompleted
│          │  └      - rootProperty: SFTPServerDirectoryCreateCompleted
│          │         + rootProperty: SFTPServerDirectoryCreateCompleted
│          │         - resourcesField: [SFTPServerDirectoryCreateCompleted.server-id]
│          │         + resourcesField: [SFTPServerDirectoryCreateCompleted.server-id]
│          ├[~]  event aws.transfer@SFTPServerDirectoryCreateFailed
│          │  └      - rootProperty: SFTPServerDirectoryCreateFailed
│          │         + rootProperty: SFTPServerDirectoryCreateFailed
│          │         - resourcesField: [SFTPServerDirectoryCreateFailed.server-id]
│          │         + resourcesField: [SFTPServerDirectoryCreateFailed.server-id]
│          ├[~]  event aws.transfer@SFTPServerDirectoryDeleteCompleted
│          │  └      - rootProperty: SFTPServerDirectoryDeleteCompleted
│          │         + rootProperty: SFTPServerDirectoryDeleteCompleted
│          │         - resourcesField: [SFTPServerDirectoryDeleteCompleted.server-id]
│          │         + resourcesField: [SFTPServerDirectoryDeleteCompleted.server-id]
│          ├[~]  event aws.transfer@SFTPServerDirectoryDeleteFailed
│          │  └      - rootProperty: SFTPServerDirectoryDeleteFailed
│          │         + rootProperty: SFTPServerDirectoryDeleteFailed
│          │         - resourcesField: [SFTPServerDirectoryDeleteFailed.server-id]
│          │         + resourcesField: [SFTPServerDirectoryDeleteFailed.server-id]
│          ├[~]  event aws.transfer@SFTPServerFileDeleteCompleted
│          │  └      - rootProperty: SFTPServerFileDeleteCompleted
│          │         + rootProperty: SFTPServerFileDeleteCompleted
│          │         - resourcesField: [SFTPServerFileDeleteCompleted.server-id]
│          │         + resourcesField: [SFTPServerFileDeleteCompleted.server-id]
│          ├[~]  event aws.transfer@SFTPServerFileDeleteFailed
│          │  └      - rootProperty: SFTPServerFileDeleteFailed
│          │         + rootProperty: SFTPServerFileDeleteFailed
│          │         - resourcesField: [SFTPServerFileDeleteFailed.server-id]
│          │         + resourcesField: [SFTPServerFileDeleteFailed.server-id]
│          ├[~]  event aws.transfer@SFTPServerFileDownloadCompleted
│          │  └      - rootProperty: SFTPServerFileDownloadCompleted
│          │         + rootProperty: SFTPServerFileDownloadCompleted
│          │         - resourcesField: [SFTPServerFileDownloadCompleted.server-id]
│          │         + resourcesField: [SFTPServerFileDownloadCompleted.server-id]
│          ├[~]  event aws.transfer@SFTPServerFileDownloadFailed
│          │  └      - rootProperty: SFTPServerFileDownloadFailed
│          │         + rootProperty: SFTPServerFileDownloadFailed
│          │         - resourcesField: [SFTPServerFileDownloadFailed.server-id]
│          │         + resourcesField: [SFTPServerFileDownloadFailed.server-id]
│          ├[~]  event aws.transfer@SFTPServerFileRenameCompleted
│          │  └      - rootProperty: SFTPServerFileRenameCompleted
│          │         + rootProperty: SFTPServerFileRenameCompleted
│          │         - resourcesField: [SFTPServerFileRenameCompleted.server-id]
│          │         + resourcesField: [SFTPServerFileRenameCompleted.server-id]
│          ├[~]  event aws.transfer@SFTPServerFileRenameFailed
│          │  └      - rootProperty: SFTPServerFileRenameFailed
│          │         + rootProperty: SFTPServerFileRenameFailed
│          │         - resourcesField: [SFTPServerFileRenameFailed.server-id]
│          │         + resourcesField: [SFTPServerFileRenameFailed.server-id]
│          ├[~]  event aws.transfer@SFTPServerFileUploadCompleted
│          │  └      - rootProperty: SFTPServerFileUploadCompleted
│          │         + rootProperty: SFTPServerFileUploadCompleted
│          │         - resourcesField: [SFTPServerFileUploadCompleted.server-id]
│          │         + resourcesField: [SFTPServerFileUploadCompleted.server-id]
│          └[~]  event aws.transfer@SFTPServerFileUploadFailed
│             └      - rootProperty: SFTPServerFileUploadFailed
│                    + rootProperty: SFTPServerFileUploadFailed
│                    - resourcesField: [SFTPServerFileUploadFailed.server-id]
│                    + resourcesField: [SFTPServerFileUploadFailed.server-id]
├[~] service aws-voiceid
│ └ resources
│    └[~]  resource AWS::VoiceID::Domain
│       └ events
│          ├[~]  event aws.voiceid@VoiceIdBatchFraudsterRegistrationAction
│          │  └      - rootProperty: VoiceIdBatchFraudsterRegistrationAction
│          │         + rootProperty: VoiceIdBatchFraudsterRegistrationAction
│          │         - resourcesField: [VoiceIdBatchFraudsterRegistrationAction.domainId]
│          │         + resourcesField: [VoiceIdBatchFraudsterRegistrationAction.domainId]
│          ├[~]  event aws.voiceid@VoiceIdBatchSpeakerEnrollmentAction
│          │  └      - rootProperty: VoiceIdBatchSpeakerEnrollmentAction
│          │         + rootProperty: VoiceIdBatchSpeakerEnrollmentAction
│          │         - resourcesField: [VoiceIdBatchSpeakerEnrollmentAction.domainId]
│          │         + resourcesField: [VoiceIdBatchSpeakerEnrollmentAction.domainId]
│          ├[~]  event aws.voiceid@VoiceIdEvaluateSessionAction
│          │  └      - rootProperty: VoiceIdEvaluateSessionAction
│          │         + rootProperty: VoiceIdEvaluateSessionAction
│          │         - resourcesField: [VoiceIdEvaluateSessionAction.domainId]
│          │         + resourcesField: [VoiceIdEvaluateSessionAction.domainId]
│          ├[~]  event aws.voiceid@VoiceIdFraudsterAction
│          │  └      - rootProperty: VoiceIdFraudsterAction
│          │         + rootProperty: VoiceIdFraudsterAction
│          │         - resourcesField: [VoiceIdFraudsterAction.domainId]
│          │         + resourcesField: [VoiceIdFraudsterAction.domainId]
│          ├[~]  event aws.voiceid@VoiceIdSessionSpeakerEnrollmentAction
│          │  └      - rootProperty: VoiceIdSessionSpeakerEnrollmentAction
│          │         + rootProperty: VoiceIdSessionSpeakerEnrollmentAction
│          │         - resourcesField: [VoiceIdSessionSpeakerEnrollmentAction.domainId]
│          │         + resourcesField: [VoiceIdSessionSpeakerEnrollmentAction.domainId]
│          ├[~]  event aws.voiceid@VoiceIdSpeakerAction
│          │  └      - rootProperty: VoiceIdSpeakerAction
│          │         + rootProperty: VoiceIdSpeakerAction
│          │         - resourcesField: [VoiceIdSpeakerAction.domainId]
│          │         + resourcesField: [VoiceIdSpeakerAction.domainId]
│          ├[~]  event aws.voiceid@VoiceIdStartSessionAction
│          │  └      - rootProperty: VoiceIdStartSessionAction
│          │         + rootProperty: VoiceIdStartSessionAction
│          │         - resourcesField: [VoiceIdStartSessionAction.domainId]
│          │         + resourcesField: [VoiceIdStartSessionAction.domainId]
│          └[~]  event aws.voiceid@VoiceIdUpdateSessionAction
│             └      - rootProperty: VoiceIdUpdateSessionAction
│                    + rootProperty: VoiceIdUpdateSessionAction
│                    - resourcesField: [VoiceIdUpdateSessionAction.domainId]
│                    + resourcesField: [VoiceIdUpdateSessionAction.domainId]
├[~] service aws-workspaces
│ └ resources
│    └[~]  resource AWS::WorkSpaces::Workspace
│       └ events
│          └[~]  event aws.workspaces@WorkSpacesAccess
│             └      - rootProperty: WorkSpacesAccess
│                    + rootProperty: WorkSpacesAccess
│                    - resourcesField: [WorkSpacesAccess.workspaceId]
│                    + resourcesField: [WorkSpacesAccess.workspaceId]
└[~] service aws-xray
  └ resources
     └[~]  resource AWS::XRay::Group
        └ events
           └[~]  event aws.xray@AWSXRayInsightUpdate
              └      - rootProperty: AWSXRayInsightUpdate
                     + rootProperty: AWSXRayInsightUpdate
                     - resourcesField: [AWSXRayInsightUpdate.GroupName]
                     + resourcesField: [AWSXRayInsightUpdate.GroupName]

@aws-cdk-automation aws-cdk-automation added this pull request to the merge queue Nov 25, 2025
Merged via the queue into main with commit e2d1af7 Nov 25, 2025
13 checks passed
@aws-cdk-automation aws-cdk-automation deleted the update-source/cfn-schema branch November 25, 2025 14:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant