diff --git a/aws_doc_sdk_examples_tools/config/entities.yaml b/aws_doc_sdk_examples_tools/config/entities.yaml
index 6094a30..8221c4f 100644
--- a/aws_doc_sdk_examples_tools/config/entities.yaml
+++ b/aws_doc_sdk_examples_tools/config/entities.yaml
@@ -1,18 +1,751 @@
expanded_override:
"&AWS;": "AWS"
"&aws_sec_sdk_use-federation-warning;": ""
- "&ASH;": "Security Hub"
- "&DAX;": "DynamoDB Accelerator"
- "&EC2long;": "Amazon Elastic Compute Cloud"
- "&ELB;": "Elastic Load Balancing"
- "&ELBlong;": "Elastic Load Balancing"
- "&GLUDCLong;": "AWS Glue Data Catalog"
- "&GLUDC;": "Data Catalog"
"&IAM-user;": "IAM user"
"&IAM-users;": "IAM users"
- "&kms-key;": "KMS key"
- "&kms-keys;": "KMS keys"
- "&kms-keys-long;": "AWS KMS keys"
- "&S3long;": "Amazon Simple Storage Service"
"&S3only;": "S3"
- "&SLN;": "Amazon States Language"
\ No newline at end of file
+ "&SLN;": "Amazon States Language"
+ '&A2Clong;': App2Container
+ '&A2C;': App2Container
+ '&a2ilong;': Amazon Augmented AI
+ '&a2ishort;': Amazon A2I
+ '&ABUSlong;': Alexa for Business
+ '&ABUS;': Alexa for Business
+ '&ACCTlong;': Account Management
+ '&ACCT;': Account Management
+ '&PCAlong;': Private Certificate Authority
+ '&ACPRlong;': Amazon CodeGuru Profiler
+ '&ACPR;': CodeGuru Profiler
+ '&ACRElong;': Amazon CodeGuru Reviewer
+ '&ACRE;': CodeGuru Reviewer
+ '&AWSConnectorServicelong;': Connector Service
+ '&AWSConnectorService;': Connector Service
+ '&ActivateConsolelong;': Activate Console
+ '&ActivateConsole;': Activate Console
+ '&AFDlong;': Amazon Fraud Detector
+ '&AFD;': Amazon Fraud Detector
+ '&AGTSVClong;': Agent Service
+ '&MWAA;': Amazon MWAA
+ '&AKlong;': Amazon Kinesis
+ '&AK;': Kinesis
+ '&AKVSlong;': Amazon Kinesis Video Streams
+ '&AKVS;': Kinesis Video Streams
+ '&AKVS-res-long;': Amazon Kinesis video stream
+ '&AKVS-res;': Kinesis video stream
+ '&ALYlong;': Amazon Lumberyard
+ '&ALY;': Lumberyard
+ '&DocDBlong;': Amazon DocumentDB (with MongoDB compatibility)
+ '&DocDB;': Amazon DocumentDB
+ '&AMQlong;': Amazon MQ
+ '&AMQ;': Amazon MQ
+ '&AMBlong;': Amazon Managed Blockchain
+ '&AMB;': Managed Blockchain
+ '&AMHlong;': Mobile Hub
+ '&AMH;': Mobile Hub
+ '&long;': Management Portal for vCenter
+ '&': management portal
+ '&Clong;': Connector for vCenter
+ '&C;': connector
+ '&LIFYlong;': Amplify
+ '&LIFY;': Amplify
+ '&AMSlong;': Managed Services
+ '&AMS;': AMS
+ '&Androidlong;': Mobile SDK for Android
+ '&Android;': Mobile SDK for Android
+ '&ANSlong;': Amazon Nimble Studio
+ '&ANS;': Nimble Studio
+ '&APClong;': Pricing Calculator
+ '&APFLlong;': Amazon AppFlow
+ '&APFL;': Amazon AppFlow
+ '&ABPlong;': Amazon API Gateway
+ '&ABP;': API Gateway
+ '&APNlong;': Partner Network
+ '&APPClong;': AppConfig
+ '&AppConfigDatalong;': AppConfig Data
+ '&APP-ASlong;': Application Auto Scaling
+ '&APP-AS;': Application Auto Scaling
+ '&APP-DSlong;': Application Discovery Service
+ '&APP-DS;': Application Discovery Service
+ '&ARlong;': App Runner
+ '&AR;': App Runner
+ '&AASlong;': Amazon AppStream
+ '&AAS;': Amazon AppStream
+ '&AAS2long;': Amazon AppStream 2.0
+ '&AAS2;': AppStream 2.0
+ '&APSYlong;': AppSync
+ '&ARGlong;': Resource Groups
+ '&ARG;': Resource Groups
+ '&ARTlong;': Artifact
+ '&ARWlong;': Proton
+ '&ATElong;': Amazon Athena
+ '&ATE;': Athena
+ '&ATSlong;': Alexa Top Sites
+ '&ATS;': Alexa Top Sites
+ '&AMlong;': Audit Manager
+ '&AM;': Audit Manager
+ '&AURlongMySQL;': Amazon Aurora MySQL
+ '&AURMySQL;': Aurora MySQL
+ '&AURlongMySQLlong;': Amazon Aurora MySQL-Compatible Edition
+ '&AURMySQLlong;': Aurora MySQL-Compatible Edition
+ '&AURlongMySQLmed;': Amazon Aurora MySQL-Compatible
+ '&AURMySQLmed;': Aurora MySQL-Compatible
+ '&AURlong;': Amazon Aurora
+ '&AUR;': Aurora
+ '&AURlongPostgreslong;': Amazon Aurora PostgreSQL-Compatible Edition
+ '&AURPostgreslong;': Aurora PostgreSQL-Compatible Edition
+ '&AURlongPostgresmed;': Amazon Aurora PostgreSQL-Compatible
+ '&AURPostgresmed;': Aurora PostgreSQL-Compatible
+ '&ASlong;': Amazon EC2 Auto Scaling
+ '&AS;': Auto Scaling
+ '&AWS-ASPlanslong;': Auto Scaling Plans
+ '&AWS-ASPlans;': Auto Scaling Plans
+ '&AWS-ASlong;': Auto Scaling
+ '&CDKlong;': Cloud Development Kit (CDK)
+ '&fablong;': AppFabric
+ '&fab;': AppFabric
+ '&ipam-long;': Amazon VPC IP Address Manager
+ '&ipam;': IPAM
+ '&OSGlong;': OrigamiServiceGateway
+ '&OSG;': OrigamiServiceGateway
+ '&OUTlong;': Outposts
+ '¶llelclusterlong;': ParallelCluster
+ '&PMNTGatewaylong;': PaymentsGatewayService
+ '&ipam-console-long;': Amazon VPC IP Address Manager Console
+ '&ipam-console;': IPAM Console
+ '&MKTCAPIlong;': Marketplace Catalog API
+ '&WACVSSSlong;': Windows App-Consistent VSS Solution
+ '&ABlong;': Billing and Cost Management
+ '&AB;': Billing and Cost Management
+ '&CClong;': Config
+ '&AWSCostExplorerServicelong;': Cost Explorer Service
+ '&AWSCostExplorerService;': Cost Explorer Service
+ '&CADetlong;': Cost Anomaly Detection
+ '&CADet;': Cost Anomaly Detection
+ '&CMConsolelong;': Cost Management Console
+ '&CMConsole;': Cost Management Console
+ '&AWSDOCSlong;': Amazon Web Services Documentation
+ '&awshealthlong;': Health
+ '&consolelong;': Amazon Web Services Management Console
+ '&MarketingSitelong;': Amazon Web Services Marketing Website
+ '&AWSSCTlong;': Schema Conversion Tool
+ '&BGWlong;': Backup gateway
+ '&BGW;': Backup gateway
+ '&BATCHlong;': Batch
+ '&BRlong;': Amazon Bedrock
+ '&BR;': Amazon Bedrock
+ '&Billinglong;': Billing
+ '&Billing;': Billing
+ '&ABClong;': Billing Conductor
+ '&ABC;': Billing Conductor
+ '&BLXlong;': Blox
+ '&BLX;': Blox
+ '&BRAKETlong;': Amazon Braket
+ '&BRAKET;': Braket
+ '&ABBlong;': BugBust
+ '&CDIlong;': Cloud Digital Interface
+ '&ce-long;': Cost Explorer
+ '&ce;': Cost Explorer
+ '&ACMlong;': Certificate Manager
+ '&ACM;': ACM
+ '&CBTlong;': Chatbot
+ '&CHMlong;': Amazon Chime
+ '&CHM;': Amazon Chime
+ '&ACRlong;': Clean Rooms
+ '&CLIlong;': Command Line Interface
+ '&CVPNlong;': Client VPN
+ '&CVPN;': Client VPN
+ '&AC9long;': Cloud9
+ '&CCAPIlong;': Cloud Control API
+ '&CCAPI;': Cloud Control API
+ '&CDSlong;': Amazon Cloud Directory
+ '&CDS;': Cloud Directory
+ '&CFNlong;': CloudFormation
+ '&CFlong;': Amazon CloudFront
+ '&CF;': CloudFront
+ '&HSMClassiclong;': CloudHSM Classic
+ '&HSMlong;': CloudHSM
+ '&CSlong;': Amazon CloudSearch
+ '&CS;': Amazon CloudSearch
+ '&CShell;': CloudShell
+ '&CShellshort;': CloudShell
+ '&CTlong;': CloudTrail
+ '&CT;': CloudTrail
+ '&CWlong;': Amazon CloudWatch
+ '&CW;': CloudWatch
+ '&CWElong;': Amazon CloudWatch Events
+ '&CWE;': CloudWatch Events
+ '&CWLlong;': Amazon CloudWatch Logs
+ '&CWL;': CloudWatch Logs
+ '&CMAlong;': Console Mobile Application
+ '&CMA;': Console Mobile Application
+ '&COlong;': Compute Optimizer
+ '&CO;': Compute Optimizer
+ '&ACAlong;': CodeArtifact
+ '&ACA;': CodeArtifact
+ '&ACBlong;': CodeBuild
+ '&ACB;': CodeBuild
+ '&CAWSlong;': Amazon CodeCatalyst
+ '&CAWS;': CodeCatalyst
+ '&ACClong;': CodeCommit
+ '&ACC;': CodeCommit
+ '&ACDlong;': CodeDeploy
+ '∿': CodeDeploy
+ '&ACPlong;': CodePipeline
+ '&ACP;': CodePipeline
+ '&ACSlong;': CodeStar
+ '&CSC;': CodeConnections
+ '&whisperlong;': Amazon CodeWhisperer
+ '&whisper;': CodeWhisperer
+ '&COGlong;': Amazon Cognito
+ '&COG;': Amazon Cognito
+ '&COGSYNClong;': Amazon Cognito Sync
+ '&COGSYNC;': Amazon Cognito Sync
+ '&CMPlong;': Amazon Comprehend
+ '&CMP;': Amazon Comprehend
+ '&CMPMlong;': Amazon Comprehend Medical
+ '&CMPM;': Amazon Comprehend Medical
+ '&consolehomelong;': Amazon Web Services Console Home
+ '&CTowerlong;': Control Tower
+ '&CPPlong;': SDK for C++
+ '&CPP;': SDK for C++
+ '&BKPlong;': Backup
+ '&CryptoSDKlong;': Encryption SDK
+ '&DMSlong;': Database Migration Service
+ '&BRUlong;': Glue DataBrew
+ '&BRU;': DataBrew
+ '&ADElong;': Data Exchange
+ '&AWSDPlong;': Data Pipeline
+ '&DSYlong;': DataSync
+ '&DSY;': DataSync
+ '&datazonelong;': Amazon DataZone
+ '&datazone;': Amazon DataZone
+ '&DAXlong;': DynamoDB Accelerator
+ '&DAX;': DAX
+ '&DDBEClong;': Amazon DynamoDB Encryption Client
+ '&DDBEC;': DynamoDB Encryption Client
+ '&DSlong;': Amazon DynamoDB Streams
+ '&DS;': DynamoDB Streams
+ '&ADClong;': Deadline Cloud
+ '&DLlong;': DeepLens
+ '&AWSDeepRacerlong;': DeepRacer
+ '&DETlong;': Amazon Detective
+ '&DET;': Detective
+ '&ATPlong;': Device Farm
+ '&ATP;': Device Farm
+ '&CGOlong;': Amazon DevOps Guru
+ '&CGO;': DevOps Guru
+ '&AWS-DC-long;': Direct Connect
+ '&ADSlong;': Directory Service
+ '&dla;': DLAMI
+ '&DLMlong;': Amazon Data Lifecycle Manager
+ '&DLM;': Amazon Data Lifecycle Manager
+ '&DPlong;': Amazon DevPay
+ '&DP;': Amazon DevPay
+ '&DRSlong;': Elastic Disaster Recovery
+ '&DRS;': Elastic Disaster Recovery
+ '&dsrlong;': GlueSchemaRegistry
+ '&DDBlong;': Amazon DynamoDB
+ '&DDB;': DynamoDB
+ '&EBSlong;': Amazon Elastic Block Store
+ '&EBS;': Amazon EBS
+ '&EClong;': Porting Assistant for .NET
+ '&EC;': Porting Assistant for .NET
+ '&EC2long;': Amazon Elastic Compute Cloud
+ '&EC2;': Amazon EC2
+ '&EC2Consolelong;': Amazon Elastic Compute Cloud console
+ '&EC2Console;': Amazon EC2 console
+ '&ECRlong;': Amazon Elastic Container Registry
+ '&ECR;': Amazon ECR
+ '&ECSlong;': Amazon Elastic Container Service
+ '&ECS;': Amazon ECS
+ '&EC2DedicatedHostslong;': Amazon Elastic Compute Cloud Dedicated Hosts
+ '&EC2DedicatedHosts;': Amazon EC2 Dedicated Hosts
+ '&EC2LV2long;': EC2Launch v2
+ '&EC2LV2;': EC2Launch
+ '&SYSlong;': Amazon Web Services Systems Manager
+ '&SYS;': Systems Manager
+ '&ECFlong;': Elemental Conductor File
+ '&ECF;': Conductor File
+ '&ECL3long;': Elemental Conductor Live
+ '&ECL3;': Conductor Live
+ '&ECLDlong;': Elemental Cloud
+ '&ECRPubliclong;': Amazon Elastic Container Registry Public
+ '&ECRPublic;': Amazon ECR Public
+ '&EDLTlong;': Elemental Delta
+ '&EDLT;': Delta
+ '&EIAlong;': Amazon Elastic Inference
+ '&EIA;': Elastic Inference
+ '&EKSlong;': Amazon Elastic Kubernetes Service
+ '&EKS;': Amazon EKS
+ '&ELClong;': Amazon ElastiCache
+ '&ELC;': ElastiCache
+ '&AEBlong;': Elastic Beanstalk
+ '&AEB;': Elastic Beanstalk
+ '&EFSlong;': Amazon Elastic File System
+ '&EFS;': Amazon EFS
+ '&ESlong;': Amazon OpenSearch Service
+ '&ES;': OpenSearch Service
+ '&ETlong;': Amazon Elastic Transcoder
+ '&ET;': Elastic Transcoder
+ '&ELBlong;': Elastic Load Balancing
+ '&ELB;': Elastic Load Balancing
+ '&NLBlong;': Network Load Balancer
+ '&NLB;': Network Load Balancer
+ '&ELCMlong;': Amazon ElastiCache (Memcached)
+ '&ELCM;': ElastiCache (Memcached)
+ '&ELCRlong;': Amazon ElastiCache (Redis OSS)
+ '&ELCR;': ElastiCache (Redis OSS)
+ '&ELNKlong;': Elemental Link
+ '&ELVlong;': Elemental Live
+ '&ELV;': Elemental Live
+ '&EMRlong;': Amazon EMR
+ '&EMR;': Amazon EMR
+ '&EMRServerlesslong;': Amazon EMR Serverless
+ '&EMRServerless;': EMR Serverless
+ '&ESMXlong;': Elemental Statmux
+ '&ESMX;': Statmux
+ '&ESRVRlong;': Elemental Server
+ '&EVlong;': Amazon EventBridge
+ '&EV;': EventBridge
+ '&FARGATElong;': Fargate
+ '&FARGATE;': Fargate
+ '&winfargatelong;': Windows containers on Fargate
+ '&FFlong;': Flow Framework
+ '&FF;': the framework
+ '&FHlong;': Amazon Data Firehose
+ '&FH;': Firehose
+ '&FSlong;': FinSpace
+ '&FS;': FinSpace
+ '&MHBRefactorlong;': Migration Hub Refactor Spaces
+ '&MHBRefactor;': Refactor Spaces
+ '&FMSlong;': Firewall Manager
+ '&FMS;': Firewall Manager
+ '&FORlong;': Amazon Forecast
+ '&FOR;': Forecast
+ '&FPSlong;': Amazon Flexible Payments Service
+ '&FPS;': Amazon FPS
+ '&RTOSlong;': FreeRTOS
+ '&RTOS;': FreeRTOS
+ '&FSXlong;': Amazon FSx
+ '&FSX;': Amazon FSx
+ '&FSxONTAPlong;': Amazon FSx for NetApp ONTAP
+ '&FSxONTAP;': FSx for ONTAP
+ '&FSxOpenZFSlong;': Amazon FSx for OpenZFS
+ '&FSxOpenZFS;': FSx for OpenZFS
+ '&FSXLustrelong;': Amazon FSx for Lustre
+ '&FSXLustre;': FSx for Lustre
+ '&FSXWindowslong;': Amazon FSx for Windows File Server
+ '&FSXWindows;': FSx for Windows File Server
+ '&FTPlong;': Transfer for FTP
+ '&FTPSlong;': Transfer for FTPS
+ '&FWSlong;': Amazon Fulfillment Web Service
+ '&FWS;': Amazon FWS
+ '&AGSlong;': Amazon GameLift
+ '&AGS;': Amazon GameLift
+ '&GSlong;': Amazon GameSparks
+ '&GS;': GameSparks
+ '&GAXlong;': Global Accelerator
+ '&GAX;': Global Accelerator
+ '&GLlong;': Amazon S3 Glacier
+ '≷': S3 Glacier
+ '&GLUlong;': Glue
+ '&GLUDCLong;': Glue Data Catalog
+ '&GLUDC;': Data Catalog
+ '&GRAlong;': Amazon Managed Grafana
+ '&GRA;': Amazon Managed Grafana
+ '&GGlong;': IoT Greengrass
+ '&GG1long;': IoT Greengrass Version 1
+ '&GG2long;': IoT Greengrass Version 2
+ '&GRSlong;': Ground Station
+ '&GDUlong;': Amazon GuardDuty
+ '&GDU;': GuardDuty
+ '&GURUALLlong;': Amazon CodeGuru
+ '&GURUALLshort;': CodeGuru
+ '&GXYlong;': Directory Service
+ '&AHLlong;': HealthLake
+ '&AHL;': HealthLake
+ '&HOGlong;': Amazon Lookout for Equipment
+ '&HOG;': Lookout for Equipment
+ '&IAMlong;': Identity and Access Management
+ '&IAM;': IAM
+ '&iam-citadel-long;': Identity and Access Management Access Analyzer
+ '&iam-citadel;': IAM Access Analyzer
+ '&IBlong;': EC2 Image Builder
+ '&IB;': Image Builder
+ '&IElong;': Import/Export
+ '&Disklong;': Import/Export Disk
+ '&Disk;': Disk
+ '&Frozenlong;': Snowball
+ '&Frozen;': Snowball
+ '&INS1long;': Amazon Inspector Classic
+ '&INS1;': Amazon Inspector Classic
+ '&INSlong;': Amazon Inspector
+ '&INS;': Amazon Inspector
+ '&iOSlong;': Mobile SDK for iOS
+ '&iOS;': Mobile SDK for iOS
+ '&IoTlong;': IoT
+ '&IoTJobsSDKreleaselong;': IoT Jobs SDK release
+ '&ITOClong;': IoT 1-Click
+ '&IoTAlexa;': Alexa Voice Service (AVS) Integration for IoT
+ '&ITAlong;': IoT Analytics
+ '&IoTDatalong;': IoT data
+ '&IoTDAlong;': IoT Core Device Advisor
+ '&IoTDA;': Device Advisor
+ '&ITDDlong;': IoT Device Defender
+ '&ITDMlong;': IoT Device Management
+ '&ITElong;': IoT Events
+ '&ITEDlong;': IoT Events-Data
+ '&IoTFHlong;': IoT Fleet Hub
+ '&FWlong;': IoT FleetWise
+ '&IoTIdentitylong;': IoT Identity
+ '&IoTMonitorlong;': Fleet Hub for IoT Device Management
+ '&IoTMonitor;': Fleet Hub
+ '&IoTSecureTunnellong;': IoT Secure Tunneling
+ '&ITSWlong;': IoT SiteWise
+ '&ITSWMlong;': IoT SiteWise Monitor
+ '&ITSWM;': SiteWise Monitor
+ '&IoTTMlong;': IoT TwinMaker
+ '&IVSlong;': Amazon Interactive Video Service
+ '&IVS;': Amazon IVS
+ '&Javalong;': SDK for Java
+ '&Java;': SDK for Java
+ '&JavaV2long;': SDK for Java 2.x
+ '&JavaV2;': SDK for Java 2.x
+ '&JBIDEToolkitlong;': Toolkit for JetBrains
+ '&JESlong;': Glue Jobs system
+ '&JES;': Jobs system
+ '&JSBlong;': SDK for JavaScript
+ '&JSB;': SDK for JavaScript
+ '&KENlong;': Amazon Kendra
+ '&KEN;': Amazon Kendra
+ '&KEYlong;': Amazon Keyspaces (for Apache Cassandra)
+ '&KEY;': Amazon Keyspaces
+ '&AKSlong;': Amazon Kinesis Data Streams
+ '&AKS;': Kinesis Data Streams
+ '&AKFlong;': Amazon Data Firehose
+ '&AKF;': Firehose
+ '&KMSlong;': Key Management Service
+ '&kms-key-long;': KMS key
+ '&kms-key;': KMS key
+ '&kms-keys-long;': KMS keys
+ '&kms-keys;': KMS keys
+ '&LFlong;': Lake Formation
+ '&LF;': Lake Formation
+ '&LAMlong;': Lambda
+ '&LAM;': Lambda
+ '&LAMConsolelong;': Lambda console
+ '&LAMConsole;': Lambda console
+ '&MESHlong;': App Mesh
+ '&MESH;': App Mesh
+ '&LWlong;': Launch Wizard
+ '&LW;': Launch Wizard
+ '&LEX2long;': Amazon Lex
+ '&LEX2;': Amazon Lex
+ '&LFMlong;': Amazon Lookout for Metrics
+ '&LFM;': Lookout for Metrics
+ '&LIClong;': License Manager
+ '&LIC;': License Manager
+ '&LICMasterAcctSlrlong;': License Manager master account SLR
+ '&LICMasterAcctSlr;': License Manager master account SLR
+ '&LICMemberAcctSlrlong;': License Manager member account SLR
+ '&LICMemberAcctSlr;': License Manager member account SLR
+ '&lightsaillong;': Amazon Lightsail
+ '&lightsail;': Lightsail
+ '&CONlong;': Amazon Connect
+ '&CON;': Amazon Connect
+ '&QDEV;': Amazon Q
+ '&LYRAlong;': Amazon Lookout for Vision
+ '&LYRA;': Lookout for Vision
+ '&MLlong;': Amazon Machine Learning
+ '&ML;': Amazon ML
+ '&MCElong;': Amazon Macie
+ '&MCE;': Macie
+ '&managed-ad-long;': Directory Service for Microsoft Active Directory
+ '&MKTCAlong;': Marketplace Commerce Analytics
+ '&MKTESlong;': Marketplace Entitlement Service
+ '&MKTMSlong;': Marketplace Metering Service
+ '&EMXlong;': Elemental MediaConnect
+ '&EMX;': MediaConnect
+ '&EMClong;': Elemental MediaConvert
+ '&EMC;': MediaConvert
+ '&EMLlong;': Elemental MediaLive
+ '&EML;': MediaLive
+ '&EMPlong;': Elemental MediaPackage
+ '&EMP;': MediaPackage
+ '&EMSlong;': Elemental MediaStore
+ '&EMS;': MediaStore
+ '&EMTlong;': Elemental MediaTailor
+ '&EMT;': MediaTailor
+ '&MDBlong;': Amazon MemoryDB
+ '&MDB;': MemoryDB
+ '&SESHlong;': Systems Manager Session Manager
+ '&SESH;': Session Manager
+ '&MGNlong;': Application Migration Service
+ '&MGN;': Application Migration Service
+ '&MHBlong;': Migration Hub
+ '&MHB;': Migration Hub
+ '&MMlong;': Molecular Modeling
+ '&MM;': Molecular Modeling
+ '&MAlong;': Amazon Mobile Analytics
+ '&MA;': Mobile Analytics
+ '&LEXMBSlong;': Amazon Lex Model Building Service
+ '&LEXMBS;': Amazon Lex MBS
+ '&MONlong;': Amazon Monitron
+ '&MON;': Amazon Monitron
+ '&MSKlong;': Amazon Managed Streaming for Apache Kafka
+ '&MSK;': Amazon MSK
+ '&MTlong;': Amazon Mechanical Turk
+ '&MT;': Mechanical Turk
+ '&nep_dbinstancelong;': Amazon Neptune DB instance
+ '&nep_dbinstance;': Neptune DB instance
+ '&neptunelong;': Amazon Neptune
+ '&neptune;': Neptune
+ '&NETlong;': SDK for .NET
+ '&NMlong;': Network Manager
+ '&NM;': Network Manager
+ '&NWFWlong;': Network Firewall
+ '&NWFW;': Network Firewall
+ '&ODBlong;': Oracle Database@AWS
+ '&ODB;': Oracle Database@AWS
+ '&OMlong;': HealthOmics
+ '&OM;': HealthOmics
+ '&AOSlong;': Amazon OpenSearch Service
+ '&AOS;': OpenSearch Service
+ '&OPSCAlong;': OpsWorks for Chef Automate
+ '&OpsHublong;': OpsHub for Snow Family
+ '&OPSPUPlong;': OpsWorks for Puppet Enterprise
+ '&OPSPUP;': OpsWorks for Puppet Enterprise
+ '&OPSlong;': OpsWorks
+ '&OPSCMlong;': OpsWorks CM
+ '&AOlong;': Organizations
+ '&AO;': Organizations
+ '&PAAPIlong;': Product Advertising API
+ '&PAAPI;': PA-API
+ '&PANlong;': Panorama
+ '&PAYCRlong;': Payment Cryptography
+ '&PERSlong;': Amazon Personalize
+ '&PERS;': Amazon Personalize
+ '&phdlong;': Health Dashboard
+ '&PHPlong;': SDK for PHP
+ '&PHP;': SDK for PHP
+ '&PHP2long;': SDK for PHP
+ '&PHP2;': SDK for PHP
+ '&PINlong;': Amazon Pinpoint
+ '&PIN;': Amazon Pinpoint
+ '&QBIZlong;': Amazon Q Business
+ '&QBIZ;': Amazon Q
+ '&POLlong;': Amazon Polly
+ '&POL;': Amazon Polly
+ '&PROlong;': Amazon Managed Service for Prometheus
+ '&PRO;': Amazon Managed Service for Prometheus
+ '&PSlong;': IAM Policy Simulator
+ '&PS;': Policy Simulator
+ '&Pythonlong;': SDK for Python (Boto)
+ '&Python;': SDK for Python
+ '&Python3long;': SDK for Python (Boto3)
+ '&Python3;': SDK for Python (Boto3)
+ '&QLDBlong;': Amazon QLDB
+ '&QLDB;': QLDB
+ '&QSlong;': Amazon QuickSight
+ '&QS;': Amazon QuickSight
+ '&R53long;': Amazon Route 53
+ '&R53;': Route 53
+ '&RAlong;': Reachability Analyzer
+ '&RA;': Reachability Analyzer
+ '&RAMlong;': Resource Access Manager
+ '&RClong;': Amazon Remote Configuration
+ '&RC;': Amazon Remote Configuration
+ '&RDSlong;': Amazon Relational Database Service
+ '&RDS;': Amazon RDS
+ '&AURlongPostgres;': Amazon Aurora PostgreSQL
+ '&AURPostgres;': Aurora PostgreSQL
+ '&RDSlongMSlong;': Amazon RDS for Microsoft SQL Server
+ '&RDSlongMS;': Amazon RDS for SQL Server
+ '&RDSlongMaria;': Amazon RDS for MariaDB
+ '&RDSMaria;': RDS for MariaDB
+ '&RDSMSlong;': RDS for Microsoft SQL Server
+ '&RDSMS;': RDS for SQL Server
+ '&RDSlongMySQL;': Amazon RDS for MySQL
+ '&RDSMySQL;': RDS for MySQL
+ '&RDSlongOra;': Amazon RDS for Oracle
+ '&RDSOra;': RDS for Oracle
+ '&RDSlongPostgres;': Amazon RDS for PostgreSQL
+ '&RDSPostgres;': RDS for PostgreSQL
+ '&RSlong;': Amazon Redshift
+ '&RS;': Amazon Redshift
+ '&REKlong;': Amazon Rekognition
+ '&REK;': Amazon Rekognition
+ '&REPOSTlong;': re:Post
+ '&ARHlong;': Resilience Hub
+ '&ARH;': Resilience Hub
+ '&ARGTAPIlong;': Resource Groups Tagging API
+ '&ARGTAPI;': Resource Groups Tagging API
+ '&RBMlong;': RoboMaker
+ '&ROSA;': ROSA
+ '&R53PDPlong;': Route 53 Public Data Plane
+ '&R53PDP;': Route 53 Public Data Plane
+ '&R53ARC;': ARC
+ '&R53AWSIntlong;': Route 53 Amazon Web Services Integration
+ '&R53DRlong;': Route 53 domain registration
+ '&R53DR;': Route 53 domain registration
+ '&R53PDNSVPClong;': Route 53 Private DNS for VPCs
+ '&R53PDNSVPC;': Route 53 Private DNS for VPCs
+ '&R53Rlong;': Route 53 Resolver
+ '&R53R;': Route 53 Resolver
+ '&Rubylong;': SDK for Ruby
+ '&Ruby;': SDK for Ruby
+ '&LEXlong;': Amazon Lex
+ '&LEX;': Amazon Lex
+ '&S2Slong;': Site-to-Site VPN
+ '&S2S;': Site-to-Site VPN
+ '&S3long;': Amazon Simple Storage Service
+ '&S3;': Amazon S3
+ '&S3Controllong;': Amazon S3 Control
+ '&S3Control;': Amazon S3 Control
+ '&S3onOutpostsLong;': Amazon S3 on Outposts
+ '&S3onOutposts;': S3 on Outposts
+ '&SMlong;': Amazon SageMaker AI
+ '&SM;': SageMaker AI
+ '&SMRuntimelong;': Amazon SageMaker Runtime
+ '&SMRuntime;': SageMaker Runtime
+ '&SAIlong;': Amazon SageMaker Ground Truth
+ '&SAI;': Ground Truth
+ '&SAMlong;': Serverless Application Model
+ '&SPs;': Savings Plans
+ '&SP-singular;': Savings Plan
+ '&SAZRlong;': Service Authorization Reference
+ '&SAZR;': Service Authorization Reference
+ '&SCARlong;': Service Catalog App Registry
+ '&SCAR;': AppRegistry
+ '&SDKMlong;': SDK Metrics for Enterprise Support
+ '&SDKM;': SDK Metrics
+ '&ASMlong;': Secrets Manager
+ '&ASM;': Secrets Manager
+ '&ASHlong;': Security Hub
+ '&ASH;': Security Hub
+ '&SLlong;': Amazon Security Lake
+ '&SL;': Security Lake
+ '&SARlong;': Serverless Application Repository
+ '&SClong;': Service Catalog
+ '≻': Service Catalog
+ '&CMAPlong;': Cloud Map
+ '&SQlong;': Service Quotas
+ '&SQ;': Service Quotas
+ '&SESlong;': Amazon Simple Email Service
+ '&SES;': Amazon SES
+ '&SFTPlong;': Transfer for SFTP
+ '&SHDADVlong;': Shield Advanced
+ '&SHDADV;': Shield Advanced
+ '&SHDSTDlong;': Shield Standard
+ '&SHDSTD;': Shield Standard
+ '&SHDlong;': Shield
+ '&SHD;': Shield
+ '&Signerlong;': Signer
+ '&Signer;': Signer
+ '&SDBlong;': Amazon SimpleDB
+ '&SDB;': Amazon SimpleDB
+ '&MANIFOLDlong;': SimSpace Weaver
+ '&MANIFOLD;': SimSpace Weaver
+ '&SLKlong;': Amazon Silk
+ '&SLK;': Amazon Silk
+ '&SMSlong;': Server Migration Service
+ '&SDMlong;': Snow Device Management
+ '&SDM;': Snow Device Management
+ '&SNClong;': Snowcone
+ '&SNC;': Snowcone
+ '&SNSlong;': Amazon Simple Notification Service
+ '&SNS;': Amazon SNS
+ '&SPlong;': Amazon Simple Pay
+ '&SP;': Amazon Simple Pay
+ '&SPClong;': Amazon Redshift Spectrum
+ '&SPC;': Redshift Spectrum
+ '&SPKlong;': Secure Packager and Encoder Key Exchange
+ '&SPK;': SPEKE
+ '&ASWlong;': SQL Workbench
+ '&SQSlong;': Amazon Simple Queue Service
+ '&SQS;': Amazon SQS
+ '&SSMlong;': Amazon EC2 Systems Manager
+ '&SSM;': SSM
+ '&SYSElong;': Systems Manager Explorer
+ '&SYSE;': Systems Manager Explorer
+ '&SSOlong;': IAM Identity Center
+ '&SSO;': IAM Identity Center
+ '&SFNlong;': Step Functions
+ '&SFN;': Step Functions
+ '&SFNSElong;': Step Functions - Sync Express
+ '&SFNSE;': Step Functions - Sync Express
+ '&AWSSGlong;': Storage Gateway
+ '&AWSSG;': Storage Gateway
+ '&STSlong;': Security Token Service
+ '&sumerianlong;': Amazon Sumerian
+ '&sumerian;': Sumerian
+ '&SUPCtrConsolelong;': Support Center Console
+ '&SUPCtrConsole;': Support Center Console
+ '&SUPApplong;': Support App in Slack
+ '&SWFlong;': Amazon Simple Workflow Service
+ '&SWF;': Amazon SWF
+ '&TElong;': Toolkit for Eclipse
+ '&TE;': Toolkit for Eclipse
+ '&TEXTRACTlong;': Amazon Textract
+ '&TEXTRACT;': Amazon Textract
+ '&ITTGlong;': IoT Things Graph
+ '&TIMElong;': Amazon Timestream
+ '&TIME;': Timestream
+ '&TPClong;': Tools for PowerShell Core
+ '&TPC;': Tools for PowerShell Core
+ '&TSClong;': Amazon Transcribe
+ '&TSC;': Amazon Transcribe
+ '&TSCMlong;': Amazon Transcribe Medical
+ '&TSCM;': Amazon Transcribe Medical
+ '&TFlong;': Transfer Family
+ '&TF;': Transfer Family
+ '&AWSTGlong;': Transit Gateway
+ '&AWSTG;': Transit Gateway
+ '&TSLlong;': Amazon Translate
+ '&TSL;': Amazon Translate
+ '&AWS-TA-long;': Trusted Advisor
+ '&TTSlong;': Toolkit for Microsoft Azure DevOps
+ '&TVSlong;': Toolkit for Visual Studio
+ '&TVS;': Toolkit for Visual Studio
+ '&TWPlong;': Tools for Windows PowerShell
+ '&TWP;': Tools for Windows PowerShell
+ '&TWPALLlong;': Tools for PowerShell
+ '&TWPALL;': Tools for PowerShell
+ '&FISlong;': Fault Injection Service
+ '&VMIElong;': VM Import/Export
+ '&VMIE;': VM Import/Export
+ '&VPClong;': Amazon Virtual Private Cloud
+ '&VPC;': Amazon VPC
+ '&VPCLATlong;': Amazon VPC Lattice
+ '&VPCLAT;': VPC Lattice
+ '&VPCConsolelong;': Amazon Virtual Private Cloud Console
+ '&VPCConsole;': Amazon VPC Console
+ '&VPNlong;': Virtual Private Network
+ '&VSCIDElong;': Visual Studio Code
+ '&VSCIDE;': VS Code
+ '&VSCIDEToolkit;': Toolkit for Visual Studio Code
+ '&VSCIDEToolkitshort;': Toolkit for VS Code
+ '&WAFlong;': WAF
+ '&WAFRegionallong;': WAF
+ '&WAFv2long;': WAF
+ '&WAMlong;': Amazon WorkSpaces Application Manager
+ '&WAM;': Amazon WAM
+ '&WATlong;': Well-Architected Tool
+ '&WAVElong;': Wavelength
+ '&WAVE;': Wavelength
+ '&wickrlong;': Wickr
+ '&wickr;': Wickr
+ '&WDlong;': Amazon WorkDocs
+ '&WD;': Amazon WorkDocs
+ '&WLKlong;': Amazon WorkLink
+ '&WLK;': Amazon WorkLink
+ '&WMlong;': Amazon WorkMail
+ '&WM;': Amazon WorkMail
+ '&WSPlong;': Amazon WorkSpaces
+ '&WSP;': WorkSpaces
+ '&xraylong;': X-Ray
+ '&xray;': X-Ray
+ '&ZCLlong;': Amazon WorkDocs
+ '&ZCL;': Amazon WorkDocs
+ '&zelkovalong;': Zelkova Service
+ '&zelkova;': Zelkova Service
\ No newline at end of file
diff --git a/aws_doc_sdk_examples_tools/shared_entities_convert.py b/aws_doc_sdk_examples_tools/shared_entities_convert.py
new file mode 100644
index 0000000..9956b03
--- /dev/null
+++ b/aws_doc_sdk_examples_tools/shared_entities_convert.py
@@ -0,0 +1,88 @@
+# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+# SPDX-License-Identifier: Apache-2.0
+
+import xml.etree.ElementTree as ET
+import yaml
+import argparse
+import sys
+from pathlib import Path
+
+def convert_xml_to_yaml(xml_content):
+ # Parse XML content
+ root = ET.fromstring(xml_content)
+
+ # Dictionary to store the expanded overrides
+ expanded_override = {}
+
+ # Process each service element
+ for service in root.findall('service'):
+ # Process longname
+ longname = service.find('longname')
+ if longname is not None:
+ longname_id = longname.get('id')
+ # First try to find universal/noloc
+ universal = longname.find('universal/noloc')
+ if universal is not None:
+ expanded_override[f"&{longname_id};"] = universal.text.strip()
+ else:
+ # If no universal, use direct noloc
+ noloc = longname.find('noloc')
+ if noloc is not None:
+ expanded_override[f"&{longname_id};"] = noloc.text.strip()
+
+ # Process shortname
+ shortname = service.find('shortname')
+ if shortname is not None:
+ shortname_id = shortname.get('id')
+ noloc = shortname.find('noloc')
+ if noloc is not None:
+ expanded_override[f"&{shortname_id};"] = noloc.text.strip()
+
+ # Create the final YAML structure
+ yaml_dict = {'expanded_override': expanded_override}
+
+ # Convert to YAML string
+ yaml_output = yaml.dump(yaml_dict, sort_keys=False, allow_unicode=True)
+
+ return yaml_output
+
+def main():
+ parser = argparse.ArgumentParser(description='Convert XML file to YAML format')
+ parser.add_argument('input_file', help='Path to input XML file')
+ parser.add_argument('-o', '--output', help='Output YAML file path (optional)')
+
+ args = parser.parse_args()
+
+ # Check if input file exists
+ input_path = Path(args.input_file)
+ if not input_path.exists():
+ print(f"Error: Input file '{args.input_file}' does not exist", file=sys.stderr)
+ sys.exit(1)
+
+ try:
+ # Read XML content
+ with open(input_path, 'r', encoding='utf-8') as f:
+ xml_content = f.read()
+
+ # Convert to YAML
+ yaml_output = convert_xml_to_yaml(xml_content)
+
+ # Determine output path
+ if args.output:
+ output_path = Path(args.output)
+ else:
+ # Use input filename with .yaml extension
+ output_path = input_path.with_suffix('.yaml')
+
+ # Write output
+ with open(output_path, 'w', encoding='utf-8') as f:
+ f.write(yaml_output)
+
+ print(f"Successfully converted '{input_path}' to '{output_path}'")
+
+ except Exception as e:
+ print(f"Error: {str(e)}", file=sys.stderr)
+ sys.exit(1)
+
+if __name__ == '__main__':
+ main()
\ No newline at end of file
diff --git a/aws_doc_sdk_examples_tools/shared_entities_convert_test.py b/aws_doc_sdk_examples_tools/shared_entities_convert_test.py
new file mode 100644
index 0000000..453ac71
--- /dev/null
+++ b/aws_doc_sdk_examples_tools/shared_entities_convert_test.py
@@ -0,0 +1,109 @@
+# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+# SPDX-License-Identifier: Apache-2.0
+#
+# For converting shared entities from xml
+
+import pytest
+import yaml
+from .shared_entities_convert import convert_xml_to_yaml
+
+@pytest.fixture
+def test_xml():
+ return '''
+
+
+
+ AWS App2Container
+
+
+ AWS App2Container
+
+
+ Amazon App2Container
+
+
+ App2Container
+
+
+
+ App2Container
+
+
+
+ Amazon A2I
+
+ Amazon Augmented AI
+
+
+ Amazon A2I
+
+
+'''
+
+@pytest.fixture
+def expected_output():
+ return {
+ 'expanded_override': {
+ '&A2Clong;': 'App2Container',
+ '&A2C;': 'App2Container',
+ '&a2ilong;': 'Amazon Augmented AI',
+ '&a2ishort;': 'Amazon A2I'
+ }
+ }
+
+def test_basic_conversion(test_xml, expected_output):
+ """Test the basic XML to YAML conversion"""
+ yaml_output = convert_xml_to_yaml(test_xml)
+ converted_dict = yaml.safe_load(yaml_output)
+ assert converted_dict == expected_output
+
+def test_universal_priority(test_xml):
+ """Test that universal/noloc is prioritized over regional/noloc"""
+ yaml_output = convert_xml_to_yaml(test_xml)
+ converted_dict = yaml.safe_load(yaml_output)
+
+ # A2Clong should use the universal value "App2Container" instead of the regional values
+ assert converted_dict['expanded_override']['&A2Clong;'] == 'App2Container'
+
+def test_yaml_structure(test_xml):
+ """Test the overall structure of the YAML output"""
+ yaml_output = convert_xml_to_yaml(test_xml)
+ converted_dict = yaml.safe_load(yaml_output)
+
+ assert 'expanded_override' in converted_dict
+ assert isinstance(converted_dict['expanded_override'], dict)
+
+def test_malformed_xml():
+ """Test handling of malformed XML"""
+ malformed_xml = '''
+
+
+
+ '''
+
+ with pytest.raises(Exception):
+ convert_xml_to_yaml(malformed_xml)
+
+# Additional test to verify no regional values are included
+def test_no_regional_values(test_xml):
+ """Test that regional values are not included in the output"""
+ yaml_output = convert_xml_to_yaml(test_xml)
+ converted_dict = yaml.safe_load(yaml_output)
+
+ # Verify that "AWS App2Container" and "Amazon App2Container" (regional values) are not present
+ all_values = converted_dict['expanded_override'].values()
+ assert 'AWS App2Container' not in all_values
+ assert 'Amazon App2Container' not in all_values
+
+@pytest.fixture
+def empty_xml():
+ return '''
+
+'''
+
+def test_empty_xml(empty_xml):
+ """Test handling of empty XML"""
+ yaml_output = convert_xml_to_yaml(empty_xml)
+ converted_dict = yaml.safe_load(yaml_output)
+ assert converted_dict == {'expanded_override': {}}
+