-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtypolice.go
332 lines (317 loc) · 39.4 KB
/
typolice.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
package typolice
import (
"maps"
"github.com/cloudflare/ahocorasick"
)
func Run(text string) []CheckResult {
formatVariants := make(map[string][]string)
maps.Copy(formatVariants, getAWSFormatsMap())
maps.Copy(formatVariants, getFormatMap())
return reportPreferredCorrections(formatVariants, text)
}
type CheckResult struct {
Typo string
Preferred string
}
func reportPreferredCorrections(formatVariants map[string][]string, text string) []CheckResult {
typosToPreferred := make(map[string]string)
var invalidPatterns []string
for preferred, typos := range formatVariants {
for _, t := range typos {
typosToPreferred[t] = preferred
invalidPatterns = append(invalidPatterns, t)
}
}
matcher := ahocorasick.NewStringMatcher(invalidPatterns)
matches := matcher.Match([]byte(text))
reported := make(map[int]bool)
var formats []CheckResult
for _, i := range matches {
if reported[i] {
continue
}
typo := invalidPatterns[i]
preferred := typosToPreferred[typo]
formats = append(formats, CheckResult{Typo: typo, Preferred: preferred})
reported[i] = true
}
return formats
}
func getFormatMap() map[string][]string {
formatVariants := map[string][]string{
"Bluesky": {"BlueSky"},
"ChatGPT": {"chatGPT", "Chat GPT"},
"Cloudflare": {"CloudFlare", "Cloud Flare"},
"Elasticsearch": {"ElasticSearch", "Elastic search", "Elastic Search"},
"Firestore": {"FireStore", "Fire Store"},
"GitHub": {"Github", "Git Hub"},
"GitLab": {"Gitlab", "Git Lab"},
"Google Cloud": {"GoogleCloud", "Google Cloud Platform", "GCP"},
"JavaScript": {"Javascript", "Java Script"},
"Mac OS X": {"MacOSX", "MacOS X", "macOS X", "macOSX"},
"Neovim": {"NeoVim"},
"NestJS": {"Nest.js", "Nest JS"},
"Next.js": {"NextJS", "Next JS"},
"Node.js": {"NodeJS", "Node JS"},
"Nuxt": {"Nuxt.js", "Nuxt JS", "NuxtJS"},
"OpenAI": {"Open AI"},
"React Native": {"ReactNative"},
"TypeScript": {"Typescript", "Type Script"},
"VS Code": {"VSCODE", "VSCode"},
"Vue.js": {"VueJS", "Vue JS"},
"jQuery": {"JQuery"},
}
return formatVariants
}
func getAWSFormatsMap() map[string][]string {
awsServiceNames := map[string][]string{
"AWS Amplify": {"AWS amplify", "Amazon Amplify", "Amazon amplify"},
"AWS App Mesh": {"AWS app mesh", "AWS AppMesh", "Amazon App Mesh", "Amazon app mesh", "Amazon AppMesh"},
"AWS App Runner": {"AWS app runner", "AWS AppRunner", "Amazon App Runner", "Amazon app runner", "Amazon AppRunner"},
"AWS App Studio": {"AWS app studio", "AWS AppStudio", "Amazon App Studio", "Amazon app studio", "Amazon AppStudio"},
"AWS App2Container": {"AWS app2container", "AWS App 2 Container", "Amazon App 2 Container", "Amazon app2container", "Amazon App2Container"},
"AWS AppFabric": {"AWS app fabric", "AWS App Fabric", "Amazon AppFabric", "Amazon app fabric", "Amazon App Fabric"},
"AWS AppSync": {"AWS app sync", "AWS App Sync", "Amazon AppSync", "Amazon app sync", "Amazon App Sync"},
"AWS Application Cost Profiler": {"AWS application cost profiler", "AWS Application CostProfiler", "Amazon Application Cost Profiler", "Amazon application cost profiler", "Amazon Application CostProfiler"},
"AWS Application Discovery Service": {"AWS application discovery service", "AWS Application DiscoveryService", "Amazon Application Discovery Service", "Amazon application discovery service", "Amazon Application DiscoveryService"},
"AWS Application Migration Service": {"AWS application migration service", "AWS Application MigrationService", "Amazon Application Migration Service", "Amazon application migration service", "Amazon Application MigrationService"},
"AWS Artifact": {"AWS artifact", "Amazon Artifact", "Amazon artifact"},
"AWS Audit Manager": {"AWS audit manager", "AWS AuditManager", "Amazon Audit Manager", "Amazon audit manager", "Amazon AuditManager"},
"AWS Auto Scaling": {"AWS auto scaling", "AWS AutoScaling", "Amazon Auto Scaling", "Amazon auto scaling", "Amazon AutoScaling"},
"AWS B2B Data Interchange": {"AWS b2b data interchange", "AWS B2BDataInterchange", "Amazon B2B Data Interchange", "Amazon b2b data interchange", "Amazon B2BDataInterchange"},
"AWS Backup": {"AWS backup", "Amazon Backup", "Amazon backup"},
"AWS Batch": {"AWS batch", "Amazon Batch", "Amazon batch"},
"AWS Billing Conductor": {"AWS billing conductor", "AWS BillingConductor", "Amazon Billing Conductor", "Amazon billing conductor", "Amazon BillingConductor"},
"AWS Budgets": {"AWS budgets", "Amazon Budgets", "Amazon budgets"},
"AWS CDK": {"AWS cdk", "Amazon CDK", "Amazon cdk"},
"AWS Certificate Manager": {"AWS certificate manager", "AWS CertificateManager", "Amazon Certificate Manager", "Amazon certificate manager", "Amazon CertificateManager"},
"AWS Clean Rooms": {"AWS clean rooms", "AWS CleanRooms", "Amazon Clean Rooms", "Amazon clean rooms", "Amazon CleanRooms"},
"AWS Cloud Development Kit": {"AWS cloud development kit", "AWS CloudDevelopmentKit", "Amazon Cloud Development Kit", "Amazon cloud development kit", "Amazon CloudDevelopmentKit"},
"AWS Cloud Map": {"AWS cloud map", "AWS CloudMap", "Amazon Cloud Map", "Amazon cloud map", "Amazon CloudMap"},
"AWS Cloud9": {"AWS cloud 9", "AWS Cloud 9", "AWS cloud9", "Amazon cloud9", "Amazon Cloud 9", "Amazon cloud 9", "Amazon Cloud9"},
"AWS CloudFormation": {"AWS cloud formation", "AWS Cloud Formation", "Amazon Cloud Formation", "Amazon cloud formation", "Amazon CloudFormation"},
"AWS CloudHSM": {"AWS cloud hsm", "AWS Cloud HSM", "Amazon Cloud HSM", "Amazon cloud hsm", "Amazon CloudHSM"},
"AWS CloudShell": {"AWS cloud shell", "AWS Cloud Shell", "Amazon Cloud Shell", "Amazon cloud shell", "Amazon CloudShell"},
"AWS CloudTrail": {"AWS cloud trail", "AWS Cloud Trail", "Amazon Cloud Trail", "Amazon cloud trail", "Amazon CloudTrail"},
"AWS CodeArtifact": {"AWS code artifact", "AWS Code Artifact", "Amazon Code Artifact", "Amazon code artifact", "Amazon CodeArtifact"},
"AWS CodeBuild": {"AWS code build", "Amazon Code Build", "Amazon code build", "Amazon CodeBuild", "AWS Code Build"},
"AWS CodeCommit": {"AWS code commit", "AWS Code Commit", "Amazon Code Commit", "Amazon code commit", "Amazon CodeCommit"},
"AWS CodeDeploy": {"AWS code deploy", "AWS Code Deploy", "Amazon Code Deploy", "Amazon code deploy", "Amazon CodeDeploy"},
"AWS CodePipeline": {"AWS code pipeline", "AWS Code Pipeline", "Amazon Code Pipeline", "Amazon code pipeline", "Amazon CodePipeline"},
"AWS Compute Optimizer": {"AWS compute optimizer", "AWS ComputeOptimizer", "Amazon Compute Optimizer", "Amazon compute optimizer", "Amazon ComputeOptimizer"},
"AWS Config": {"AWS config", "Amazon Config", "Amazon config"},
"AWS Console Mobile Application": {"AWS console mobile application", "AWS ConsoleMobileApplication", "Amazon Console Mobile Application", "Amazon console mobile application", "Amazon ConsoleMobileApplication"},
"AWS Control Tower": {"AWS control tower", "AWS ControlTower", "Amazon Control Tower", "Amazon control tower", "Amazon ControlTower"},
"AWS Cost Explorer": {"AWS cost explorer", "AWS CostExplorer", "Amazon Cost Explorer", "Amazon cost explorer", "Amazon CostExplorer"},
"AWS Cost and Usage Report": {"AWS cost and usage report", "AWS CostAndUsageReport", "Amazon Cost and Usage Report", "Amazon cost and usage report", "Amazon CostAndUsageReport"},
"AWS DRS": {"AWS drs", "Amazon DRS", "Amazon drs"},
"AWS Data Exchange": {"AWS data exchange", "AWS DataExchange", "Amazon Data Exchange", "Amazon data exchange", "Amazon DataExchange"},
"AWS Data Pipeline": {"AWS data pipeline", "AWS DataPipeline", "Amazon Data Pipeline", "Amazon data pipeline", "Amazon DataPipeline"},
"AWS DataSync": {"AWS data sync", "AWS Data Sync", "Amazon Data Sync", "Amazon data sync", "Amazon DataSync"},
"AWS Database Migration Service": {"AWS database migration service", "AWS DatabaseMigrationService", "Amazon Database Migration Service", "Amazon database migration service", "Amazon DatabaseMigrationService"},
"AWS DeepComposer": {"AWS deep composer", "AWS Deep Composer", "Amazon Deep Composer", "Amazon deep composer", "Amazon DeepComposer"},
"AWS DeepRacer": {"AWS deep racer", "AWS Deep Racer", "Amazon Deep Racer", "Amazon deep racer", "Amazon DeepRacer"},
"AWS Device Farm": {"AWS device farm", "AWS DeviceFarm", "Amazon Device Farm", "Amazon device farm", "Amazon DeviceFarm"},
"AWS Direct Connect": {"AWS direct connect", "AWS DirectConnect", "Amazon Direct Connect", "Amazon direct connect", "Amazon DirectConnect"},
"AWS Directory Service": {"AWS directory service", "AWS DirectoryService", "Amazon Directory Service", "Amazon directory service", "Amazon DirectoryService"},
"AWS Elastic Beanstalk": {"AWS elastic beanstalk", "AWS ElasticBeanstalk", "Amazon Elastic Beanstalk", "Amazon elastic beanstalk", "Amazon ElasticBeanstalk"},
"AWS Elastic Disaster Recovery": {"AWS elastic disaster recovery", "AWS ElasticDisasterRecovery", "Amazon Elastic Disaster Recovery", "Amazon elastic disaster recovery", "Amazon ElasticDisasterRecovery"},
"AWS Elemental Appliances and Software": {"AWS elemental appliances and software", "AWS ElementalAppliancesAndSoftware", "Amazon Elemental Appliances and Software", "Amazon elemental appliances and software", "Amazon ElementalAppliancesAndSoftware"},
"AWS Elemental MediaConnect": {"AWS elemental media connect", "AWS ElementalMediaConnect", "Amazon Elemental Media Connect", "Amazon elemental media connect", "Amazon ElementalMediaConnect"},
"AWS Elemental MediaConvert": {"AWS elemental media convert", "AWS ElementalMediaConvert", "Amazon Elemental Media Convert", "Amazon elemental media convert", "Amazon ElementalMediaConvert"},
"AWS Elemental MediaLive": {"AWS elemental media live", "AWS ElementalMediaLive", "Amazon Elemental Media Live", "Amazon elemental media live", "Amazon ElementalMediaLive"},
"AWS Elemental MediaPackage": {"AWS elemental media package", "AWS ElementalMediaPackage", "Amazon Elemental Media Package", "Amazon elemental media package", "Amazon ElementalMediaPackage"},
"AWS Elemental MediaStore": {"AWS elemental media store", "AWS ElementalMediaStore", "Amazon Elemental Media Store", "Amazon elemental media store", "Amazon ElementalMediaStore"},
"AWS Elemental MediaTailor": {"AWS elemental media tailor", "AWS ElementalMediaTailor", "Amazon Elemental Media Tailor", "Amazon elemental media tailor", "Amazon ElementalMediaTailor"},
"AWS Entity Resolution": {"AWS entity resolution", "AWS EntityResolution", "Amazon Entity Resolution", "Amazon entity resolution", "Amazon EntityResolution"},
"AWS Fargate": {"AWS fargate", "Amazon Fargate", "Amazon fargate"},
"AWS Fault Injection Service": {"AWS fault injection service", "AWS FaultInjectionService", "Amazon Fault Injection Service", "Amazon fault injection service", "Amazon FaultInjectionService"},
"AWS Firewall Manager": {"AWS firewall manager", "AWS FirewallManager", "Amazon Firewall Manager", "Amazon firewall manager", "Amazon FirewallManager"},
"AWS Global Accelerator": {"AWS global accelerator", "AWS GlobalAccelerator", "Amazon Global Accelerator", "Amazon global accelerator", "Amazon GlobalAccelerator"},
"AWS Glue": {"AWS glue", "Amazon Glue", "Amazon glue"},
"AWS Ground Station": {"AWS ground station", "AWS GroundStation", "Amazon Ground Station", "Amazon ground station", "Amazon GroundStation"},
"AWS Health Dashboard": {"AWS health dashboard", "AWS HealthDashboard", "Amazon Health Dashboard", "Amazon health dashboard", "Amazon HealthDashboard"},
"AWS HealthLake": {"AWS health lake", "AWS Health Lake", "Amazon Health Lake", "Amazon health lake", "Amazon HealthLake"},
"AWS HealthScribe": {"AWS health scribe", "AWS Health Scribe", "Amazon Health Scribe", "Amazon health scribe", "Amazon HealthScribe"},
"AWS IAM": {"AWS iam", "Amazon IAM", "Amazon iam"},
"AWS IAM Identity Center": {"AWS iam identity center", "AWS IAMIdentityCenter", "Amazon IAM Identity Center", "Amazon iam identity center", "Amazon IAMIdentityCenter"},
"AWS Identity and Access Management": {"AWS identity and access management", "AWS IdentityAndAccessManagement", "Amazon Identity and Access Management", "Amazon identity and access management", "Amazon IdentityAndAccessManagement"},
"AWS Infrastructure Composer": {"AWS infrastructure composer", "AWS InfrastructureComposer", "Amazon Infrastructure Composer", "Amazon infrastructure composer", "Amazon InfrastructureComposer"},
"AWS IoT Analytics": {"AWS iot analytics", "AWS IoTAnalytics", "Amazon IoT Analytics", "Amazon iot analytics", "Amazon IoTAnalytics"},
"AWS IoT Button": {"AWS iot button", "AWS IoTButton", "Amazon IoT Button", "Amazon iot button", "Amazon IoTButton"},
"AWS IoT Core": {"AWS iot core", "AWS IoTCore", "Amazon IoT Core", "Amazon iot core", "Amazon IoTCore"},
"AWS IoT Device Defender": {"AWS iot device defender", "AWS IoTDeviceDefender", "Amazon IoT Device Defender", "Amazon iot device defender", "Amazon IoTDeviceDefender"},
"AWS IoT Device Management": {"AWS iot device management", "AWS IoTDeviceManagement", "Amazon IoT Device Management", "Amazon iot device management", "Amazon IoTDeviceManagement"},
"AWS IoT Events": {"AWS iot events", "AWS IoTEvents", "Amazon IoT Events", "Amazon iot events", "Amazon IoTEvents"},
"AWS IoT ExpressLink": {"AWS iot express link", "AWS IoTExpressLink", "Amazon IoT Express Link", "Amazon iot express link", "Amazon IoTExpressLink"},
"AWS IoT FleetWise": {"AWS iot fleet wise", "AWS IoTFleetWise", "Amazon IoT Fleet Wise", "Amazon iot fleet wise", "Amazon IoTFleetWise"},
"AWS IoT Greengrass": {"AWS iot greengrass", "AWS IoTGreengrass", "Amazon IoT Greengrass", "Amazon iot greengrass", "Amazon IoTGreengrass"},
"AWS IoT SiteWise": {"AWS iot site wise", "AWS IoTSiteWise", "Amazon IoT Site Wise", "Amazon iot site wise", "Amazon IoTSiteWise"},
"AWS IoT TwinMaker": {"AWS iot twin maker", "AWS IoTTwinMaker", "Amazon IoT Twin Maker", "Amazon iot twin maker", "Amazon IoTTwinMaker"},
"AWS Key Management Service": {"AWS key management service", "AWS KeyManagementService", "Amazon Key Management Service", "Amazon key management service", "Amazon KeyManagementService"},
"AWS Lake Formation": {"AWS lake formation", "AWS LakeFormation", "Amazon Lake Formation", "Amazon lake formation", "Amazon LakeFormation"},
"AWS Lambda": {"AWS lambda", "Amazon Lambda", "Amazon lambda"},
"AWS Launch Wizard": {"AWS launch wizard", "AWS LaunchWizard", "Amazon Launch Wizard", "Amazon launch wizard", "Amazon LaunchWizard"},
"AWS License Manager": {"AWS license manager", "AWS LicenseManager", "Amazon License Manager", "Amazon license manager", "Amazon LicenseManager"},
"AWS Mainframe Modernization Service": {"AWS mainframe modernization service", "AWS MainframeModernizationService", "Amazon Mainframe Modernization Service", "Amazon mainframe modernization service", "Amazon MainframeModernizationService"},
"AWS Managed Services": {"AWS managed services", "AWS ManagedServices", "Amazon Managed Services", "Amazon managed services", "Amazon ManagedServices"},
"AWS Migration Hub": {"AWS migration hub", "AWS MigrationHub", "Amazon Migration Hub", "Amazon migration hub", "Amazon MigrationHub"},
"AWS Network Firewall": {"AWS network firewall", "AWS NetworkFirewall", "Amazon Network Firewall", "Amazon network firewall", "Amazon NetworkFirewall"},
"AWS OpsWorks": {"AWS opsworks", "Amazon OpsWorks", "Amazon opsworks"},
"AWS Organizations": {"AWS organizations", "Amazon Organizations", "Amazon organizations"},
"AWS Outposts": {"AWS outposts", "Amazon Outposts", "Amazon outposts"},
"AWS Panorama": {"AWS panorama", "Amazon Panorama", "Amazon panorama"},
"AWS Partner Device Catalog": {"AWS partner device catalog", "AWS PartnerDeviceCatalog", "Amazon Partner Device Catalog", "Amazon partner device catalog", "Amazon PartnerDeviceCatalog"},
"AWS Private 5G": {"AWS private 5g", "AWS Private5G", "Amazon Private 5G", "Amazon private 5g", "Amazon Private5G"},
"AWS PrivateLink": {"AWS private link", "AWS Private Link", "Amazon Private Link", "Amazon private link", "Amazon PrivateLink"},
"AWS Proton": {"AWS proton", "Amazon Proton", "Amazon proton"},
"AWS Resource Access Manager": {"AWS resource access manager", "AWS ResourceAccessManager", "Amazon Resource Access Manager", "Amazon resource access manager", "Amazon ResourceAccessManager"},
"AWS RoboMaker": {"AWS robo maker", "Amazon Robo Maker", "Amazon robo maker", "Amazon RoboMaker", "AWS Robo Maker"},
"AWS Secrets Manager": {"AWS secrets manager", "AWS SecretsManager", "Amazon Secrets Manager", "Amazon secrets manager", "Amazon SecretsManager"},
"AWS Security Hub": {"AWS security hub", "AWS SecurityHub", "Amazon Security Hub", "Amazon security hub", "Amazon SecurityHub"},
"AWS Serverless Application Repository": {"AWS serverless application repository", "AWS ServerlessApplicationRepository", "Amazon Serverless Application Repository", "Amazon serverless application repository", "Amazon ServerlessApplicationRepository"},
"AWS Shield": {"AWS shield", "Amazon Shield", "Amazon shield"},
"AWS Snow Family": {"AWS snow family", "AWS SnowFamily", "Amazon Snow Family", "Amazon snow family", "Amazon SnowFamily"},
"AWS Step Functions": {"AWS step functions", "AWS StepFunctions", "Amazon Step Functions", "Amazon step functions", "Amazon StepFunctions"},
"AWS Storage Gateway": {"AWS storage gateway", "AWS StorageGateway", "Amazon Storage Gateway", "Amazon storage gateway", "Amazon StorageGateway"},
"AWS Systems Manager": {"AWS systems manager", "AWS SystemsManager", "Amazon Systems Manager", "Amazon systems manager", "Amazon SystemsManager"},
"AWS Transfer Family": {"AWS transfer family", "AWS TransferFamily", "Amazon Transfer Family", "Amazon transfer family", "Amazon TransferFamily"},
"AWS Transit Gateway": {"AWS transit gateway", "AWS TransitGateway", "Amazon Transit Gateway", "Amazon transit gateway", "Amazon TransitGateway"},
"AWS Trusted Advisor": {"AWS trusted advisor", "AWS TrustedAdvisor", "Amazon Trusted Advisor", "Amazon trusted advisor", "Amazon TrustedAdvisor"},
"AWS VPN": {"AWS vpn", "Amazon VPN", "Amazon vpn"},
"AWS Verified Access": {"AWS verified access", "AWS VerifiedAccess", "Amazon Verified Access", "Amazon verified access", "Amazon VerifiedAccess"},
"AWS WAF": {"AWS waf", "Amazon WAF", "Amazon waf"},
"AWS WAF Captcha": {"AWS waf captcha", "AWS WAFCaptcha", "Amazon WAF Captcha", "Amazon waf captcha", "Amazon WAFCaptcha"},
"AWS Wavelength": {"AWS wavelength", "Amazon Wavelength", "Amazon wavelength"},
"AWS Well-Architected Tool": {"AWS well-architected tool", "AWS WellArchitectedTool", "Amazon Well-Architected Tool", "Amazon well-architected tool", "Amazon WellArchitectedTool"},
"AWS X-Ray": {"AWS x ray", "Amazon x ray", "Amazon X-Ray", "Amazon XRay", "AWS XRay", "AWS X-ray", "Amazon X-ray"},
"AWS re:Post Private": {"AWS re:post private", "AWS re:PostPrivate", "Amazon re:Post Private", "Amazon re:post private", "Amazon re:PostPrivate"},
"Amazon API Gateway": {"Amazon api gateway", "Amazon APIGateway", "AWS API Gateway", "AWS api gateway", "AWS APIGateway"},
"Amazon AppFlow": {"Amazon app flow", "Amazon App Flow", "AWS App Flow", "AWS app flow", "AWS AppFlow"},
"Amazon AppStream 2.0": {"Amazon appstream 2.0", "Amazon AppStream2.0", "AWS AppStream 2.0", "AWS appstream 2.0", "AWS AppStream2.0"},
"Amazon Athena": {"Amazon athena", "AWS Athena", "AWS athena"},
"Amazon Augmented AI": {"Amazon augmented ai", "Amazon AugmentedAI", "AWS Augmented AI", "AWS augmented ai", "AWS AugmentedAI"},
"Amazon Aurora": {"Amazon aurora", "AWS Aurora", "AWS aurora"},
"Amazon Bedrock": {"Amazon bedrock", "AWS Bedrock", "AWS bedrock"},
"Amazon Braket": {"Amazon braket", "AWS Braket", "AWS braket"},
"Amazon Chime": {"Amazon chime", "AWS Chime", "AWS chime"},
"Amazon Chime SDK": {"Amazon chime sdk", "Amazon ChimeSDK", "AWS Chime SDK", "AWS chime sdk", "AWS ChimeSDK"},
"Amazon CloudFront": {"Amazon cloudfront", "AWS CloudFront", "AWS cloudfront"},
"Amazon CloudSearch": {"Amazon cloud search", "Amazon Cloud Search", "AWS Cloud Search", "AWS cloud search", "AWS CloudSearch"},
"Amazon CloudWatch": {"Amazon cloud watch", "Amazon Cloud Watch", "AWS Cloud Watch", "AWS cloud watch", "AWS CloudWatch"},
"Amazon CodeCatalyst": {"Amazon code catalyst", "Amazon Code Catalyst", "AWS Code Catalyst", "AWS code catalyst", "AWS CodeCatalyst"},
"Amazon CodeGuru": {"Amazon code guru", "Amazon Code Guru", "AWS Code Guru", "AWS code guru", "AWS CodeGuru"},
"Amazon Cognito": {"Amazon cognito", "AWS Cognito", "AWS cognito"},
"Amazon Comprehend": {"Amazon comprehend", "AWS Comprehend", "AWS comprehend"},
"Amazon Comprehend Medical": {"Amazon comprehend medical", "Amazon ComprehendMedical", "AWS Comprehend Medical", "AWS comprehend medical", "AWS ComprehendMedical"},
"Amazon Connect": {"Amazon connect", "AWS Connect", "AWS connect"},
"Amazon Corretto": {"Amazon corretto", "AWS Corretto", "AWS corretto"},
"Amazon Data Firehose": {"Amazon data firehose", "Amazon DataFirehose", "AWS Data Firehose", "AWS data firehose", "AWS DataFirehose"},
"Amazon DataZone": {"Amazon data zone", "Amazon Data Zone", "AWS Data Zone", "AWS data zone", "AWS DataZone"},
"Amazon Detective": {"Amazon detective", "AWS Detective", "AWS detective"},
"Amazon DevOps Guru": {"Amazon devops guru", "Amazon DevOpsGuru", "AWS DevOps Guru", "AWS devops guru", "AWS DevOpsGuru"},
"Amazon DocumentDB": {"AWS DocumentDB", "Amazon Document DB", "AWS Document DB"},
"Amazon DynamoDB": {"Amazon dynamodb", "AWS DynamoDB", "AWS dynamodb"},
"Amazon EBS": {"Amazon ebs", "AWS EBS", "AWS ebs"},
"Amazon EC2": {"Amazon ec2", "AWS EC2", "AWS ec2"},
"Amazon EC2 Auto Scaling": {"Amazon ec2 auto scaling", "Amazon EC2AutoScaling", "AWS EC2 Auto Scaling", "AWS ec2 auto scaling", "AWS EC2AutoScaling"},
"Amazon EC2 Image Builder": {"Amazon ec2 image builder", "Amazon EC2ImageBuilder", "AWS EC2 Image Builder", "AWS ec2 image builder", "AWS EC2ImageBuilder"},
"Amazon ECR": {"Amazon ecr", "AWS ECR", "AWS ecr"},
"Amazon ECS": {"Amazon ecs", "AWS ECS", "AWS ecs"},
"Amazon EFS": {"Amazon efs", "AWS EFS", "AWS efs"},
"Amazon EKS": {"Amazon eks", "AWS EKS", "AWS eks"},
"Amazon EMR": {"Amazon emr", "AWS EMR", "AWS emr"},
"Amazon EVS": {"Amazon evs", "AWS EVS", "AWS evs"},
"Amazon ElastiCache": {"Amazon elasticache", "AWS ElastiCache", "AWS elasticache"},
"Amazon Elastic Block Store": {"Amazon elastic block store", "Amazon ElasticBlockStore", "AWS Elastic Block Store", "AWS elastic block store", "AWS ElasticBlockStore"},
"Amazon Elastic Container Registry": {"Amazon elastic container registry", "Amazon ElasticContainerRegistry", "AWS Elastic Container Registry", "AWS elastic container registry", "AWS ElasticContainerRegistry"},
"Amazon Elastic Container Service": {"Amazon elastic container service", "Amazon ElasticContainerService", "AWS Elastic Container Service", "AWS elastic container service", "AWS ElasticContainerService"},
"Amazon Elastic File System": {"Amazon elastic file system", "Amazon ElasticFileSystem", "AWS Elastic File System", "AWS elastic file system", "AWS ElasticFileSystem"},
"Amazon Elastic Kubernetes Service": {"Amazon elastic kubernetes service", "Amazon ElasticKubernetesService", "AWS Elastic Kubernetes Service", "AWS elastic kubernetes service", "AWS ElasticKubernetesService"},
"Amazon Elastic Transcoder": {"Amazon elastic transcoder", "Amazon ElasticTranscoder", "AWS Elastic Transcoder", "AWS elastic transcoder", "AWS ElasticTranscoder"},
"Amazon Elastic VMware Service": {"Amazon elastic vmware service", "Amazon ElasticVMwareService", "AWS Elastic VMware Service", "AWS elastic vmware service", "AWS ElasticVMwareService"},
"Amazon EventBridge": {"Amazon eventbridge", "AWS EventBridge", "AWS eventbridge"},
"Amazon FSx for Lustre": {"Amazon fsx for lustre", "Amazon FSxForLustre", "AWS FSx for Lustre", "AWS fsx for lustre", "AWS FSxForLustre"},
"Amazon FSx for NetApp ONTAP": {"Amazon fsx for netapp ontap", "Amazon FSxForNetAppONTAP", "AWS FSx for NetApp ONTAP", "AWS fsx for netapp ontap", "AWS FSxForNetAppONTAP"},
"Amazon FSx for OpenZFS": {"Amazon fsx for openzfs", "Amazon FSxForOpenZFS", "AWS FSx for OpenZFS", "AWS fsx for openzfs", "AWS FSxForOpenZFS"},
"Amazon FSx for Windows File Server": {"Amazon fsx for windows file server", "Amazon FSxForWindowsFileServer", "AWS FSx for Windows File Server", "AWS fsx for windows file server", "AWS FSxForWindowsFileServer"},
"Amazon File Cache": {"Amazon file cache", "Amazon FileCache", "AWS File Cache", "AWS file cache", "AWS FileCache"},
"Amazon FinSpace": {"Amazon finspace", "AWS FinSpace", "AWS finspace"},
"Amazon Forecast": {"Amazon forecast", "AWS Forecast", "AWS forecast"},
"Amazon Fraud Detector": {"Amazon fraud detector", "Amazon FraudDetector", "AWS Fraud Detector", "AWS fraud detector", "AWS FraudDetector"},
"Amazon GameLift": {"Amazon gamelift", "AWS GameLift", "AWS gamelift"},
"Amazon GuardDuty": {"Amazon guardduty", "AWS GuardDuty", "AWS guardduty"},
"Amazon Inspector": {"Amazon inspector", "AWS Inspector", "AWS inspector"},
"Amazon Interactive Video Service": {"Amazon interactive video service", "Amazon InteractiveVideoService", "AWS Interactive Video Service", "AWS interactive video service", "AWS InteractiveVideoService"},
"Amazon Kendra": {"Amazon kendra", "AWS Kendra", "AWS kendra"},
"Amazon Keyspaces": {"Amazon keyspaces", "Amazon KeySpaces", "Amazon Key Spaces", "AWS Keyspaces", "AWS keyspaces", "AWS KeySpaces", "AWS Key Spaces"},
"Amazon Kinesis": {"Amazon kinesis", "AWS Kinesis", "AWS kinesis"},
"Amazon Kinesis Data Streams": {"Amazon kinesis data streams", "Amazon KinesisDataStreams", "AWS Kinesis Data Streams", "AWS kinesis data streams", "AWS KinesisDataStreams"},
"Amazon Kinesis Video Streams": {"Amazon kinesis video streams", "Amazon KinesisVideoStreams", "AWS Kinesis Video Streams", "AWS kinesis video streams", "AWS KinesisVideoStreams"},
"Amazon Lex": {"Amazon lex", "AWS Lex", "AWS lex"},
"Amazon Lightsail": {"Amazon lightsail", "AWS Lightsail", "AWS lightsail"},
"Amazon Lightsail managed databases": {"Amazon lightsail managed databases", "Amazon LightsailManagedDatabases", "AWS Lightsail managed databases", "AWS lightsail managed databases", "AWS LightsailManagedDatabases"},
"Amazon Linux 2023": {"Amazon linux 2023", "Amazon Linux2023", "AWS Linux 2023", "AWS linux 2023", "AWS Linux2023"},
"Amazon Location Service": {"Amazon location service", "Amazon LocationService", "AWS Location Service", "AWS location service", "AWS LocationService"},
"Amazon Lookout for Equipment": {"Amazon lookout for equipment", "Amazon LookoutForEquipment", "AWS Lookout for Equipment", "AWS lookout for equipment", "AWS LookoutForEquipment"},
"Amazon Lookout for Metrics": {"Amazon lookout for metrics", "Amazon LookoutForMetrics", "AWS Lookout for Metrics", "AWS lookout for metrics", "AWS LookoutForMetrics"},
"Amazon Lookout for Vision": {"Amazon lookout for vision", "Amazon LookoutForVision", "AWS Lookout for Vision", "AWS lookout for vision", "AWS LookoutForVision"},
"Amazon MQ": {"Amazon mq", "AWS MQ", "AWS mq"},
"Amazon Macie": {"Amazon macie", "AWS Macie", "AWS macie"},
"Amazon Managed Blockchain": {"Amazon managed blockchain", "Amazon ManagedBlockchain", "AWS Managed Blockchain", "AWS managed blockchain", "AWS ManagedBlockchain"},
"Amazon Managed Grafana": {"Amazon managed grafana", "Amazon ManagedGrafana", "AWS Managed Grafana", "AWS managed grafana", "AWS ManagedGrafana"},
"Amazon Managed Service for Apache Flink": {"Amazon managed service for apache flink", "Amazon ManagedServiceForApacheFlink", "AWS Managed Service for Apache Flink", "AWS managed service for apache flink", "AWS ManagedServiceForApacheFlink"},
"Amazon Managed Service for Prometheus": {"Amazon managed service for prometheus", "Amazon ManagedServiceForPrometheus", "AWS Managed Service for Prometheus", "AWS managed service for prometheus", "AWS ManagedServiceForPrometheus"},
"Amazon Managed Streaming for Apache Kafka": {"Amazon managed streaming for apache kafka", "Amazon ManagedStreamingForApacheKafka", "AWS Managed Streaming for Apache Kafka", "AWS managed streaming for apache kafka", "AWS ManagedStreamingForApacheKafka"},
"Amazon MSK": {"AWS MSK", "Amazon msk", "AWS msk"},
"Amazon Managed Workflows for Apache Airflow": {"Amazon managed workflows for apache airflow", "Amazon ManagedWorkflowsForApacheAirflow", "AWS Managed Workflows for Apache Airflow", "AWS managed workflows for apache airflow", "AWS ManagedWorkflowsForApacheAirflow"},
"Amazon MWAA": {"AWS MWAA", "Amazon mwaa", "AWS mwaa"},
"Amazon MemoryDB": {"Amazon memorydb", "AWS MemoryDB", "AWS memorydb"},
"Amazon Monitron": {"Amazon monitron", "AWS Monitron", "AWS monitron"},
"Amazon Neptune": {"Amazon neptune", "AWS Neptune", "AWS neptune"},
"Amazon Nimble Studio": {"Amazon nimble studio", "Amazon NimbleStudio", "AWS Nimble Studio", "AWS nimble studio", "AWS NimbleStudio"},
"Amazon OpenSearch Serverless": {"Amazon opensearch serverless", "Amazon OpenSearchServerless", "AWS OpenSearch Serverless", "AWS opensearch serverless", "AWS OpenSearchServerless"},
"Amazon OpenSearch Service": {"Amazon opensearch service", "Amazon OpenSearchService", "AWS OpenSearch Service", "AWS opensearch service", "AWS OpenSearchService"},
"Amazon PartyRock": {"Amazon partyrock", "AWS PartyRock", "AWS partyrock"},
"Amazon Personalize": {"Amazon personalize", "AWS Personalize", "AWS personalize"},
"Amazon Pinpoint": {"Amazon pinpoint", "AWS Pinpoint", "AWS pinpoint"},
"Amazon Polly": {"Amazon polly", "AWS Polly", "AWS polly"},
"Amazon Q": {"Amazon q", "AWS Q", "AWS q"},
"Amazon Q Developer": {"Amazon q developer", "Amazon QDeveloper", "AWS Q Developer", "AWS q developer", "AWS QDeveloper"},
"Amazon Q Developer in chat applications": {"Amazon q developer in chat applications", "Amazon QDeveloperInChatApplications", "AWS Q Developer in chat applications", "AWS q developer in chat applications", "AWS QDeveloperInChatApplications"},
"Amazon Quantum Ledger Database": {"Amazon quantum ledger database", "Amazon QuantumLedgerDatabase", "AWS Quantum Ledger Database", "AWS quantum ledger database", "AWS QuantumLedgerDatabase"},
"Amazon QLDB": {"AWS QLDB", "Amazon qldb", "AWS qldb"},
"Amazon QuickSight": {"Amazon quicksight", "AWS QuickSight", "AWS quicksight"},
"Amazon RDS for Db2": {"Amazon rds for db2", "Amazon RDSForDb2", "AWS RDS for Db2", "AWS rds for db2", "AWS RDSForDb2"},
"Amazon RDS on VMware": {"Amazon rds on vmware", "Amazon RDSOnVMware", "AWS RDS on VMware", "AWS rds on vmware", "AWS RDSOnVMware"},
"Amazon Redshift": {"Amazon redshift", "AWS Redshift", "AWS redshift"},
"Amazon Redshift Serverless": {"Amazon redshift serverless", "Amazon RedshiftServerless", "AWS Redshift Serverless", "AWS redshift serverless", "AWS RedshiftServerless"},
"Amazon Rekognition": {"Amazon rekognition", "AWS Rekognition", "AWS rekognition"},
"Amazon Relational Database Service": {"Amazon relational database service", "Amazon RelationalDatabaseService", "AWS Relational Database Service", "AWS relational database service", "AWS RelationalDatabaseService"},
"Amazon Route 53": {"Amazon route 53", "Amazon Route53", "AWS Route 53", "AWS route 53", "AWS Route53"},
"Amazon S3": {"Amazon s3", "AWS S3", "AWS s3"},
"Amazon SES": {"Amazon ses", "AWS SES", "AWS ses"},
"Amazon SNS": {"Amazon sns", "AWS SNS", "AWS sns"},
"Amazon SQS": {"Amazon sqs", "AWS SQS", "AWS sqs"},
"Amazon SageMaker AI": {"Amazon sagemaker ai", "Amazon SageMakerAI", "AWS SageMaker AI", "AWS sagemaker ai", "AWS SageMakerAI"},
"Amazon Security Lake": {"Amazon security lake", "Amazon SecurityLake", "AWS Security Lake", "AWS security lake", "AWS SecurityLake"},
"Amazon Simple Notification Service": {"Amazon simple notification service", "Amazon SimpleNotificationService", "AWS Simple Notification Service", "AWS simple notification service", "AWS SimpleNotificationService"},
"Amazon Simple Queue Service": {"Amazon simple queue service", "Amazon SimpleQueueService", "AWS Simple Queue Service", "AWS simple queue service", "AWS SimpleQueueService"},
"Amazon Simple Storage Service": {"Amazon simple storage service", "Amazon SimpleStorageService", "AWS Simple Storage Service", "AWS simple storage service", "AWS SimpleStorageService"},
"Amazon Simple Workflow Service": {"Amazon simple workflow service", "Amazon SimpleWorkflowService", "AWS Simple Workflow Service", "AWS simple workflow service", "AWS SimpleWorkflowService"},
"Amazon Textract": {"Amazon textract", "AWS Textract", "AWS textract"},
"Amazon Timestream": {"Amazon timestream", "AWS Timestream", "AWS timestream"},
"Amazon Transcribe": {"Amazon transcribe", "AWS Transcribe", "AWS transcribe"},
"Amazon Translate": {"Amazon translate", "AWS Translate", "AWS translate"},
"Amazon VPC": {"Amazon vpc", "AWS VPC", "AWS vpc"},
"Amazon VPC Lattice": {"Amazon vpc lattice", "Amazon VPCLattice", "AWS VPC Lattice", "AWS vpc lattice", "AWS VPCLattice"},
"Amazon Verified Permissions": {"Amazon verified permissions", "Amazon VerifiedPermissions", "AWS Verified Permissions", "AWS verified permissions", "AWS VerifiedPermissions"},
"Amazon WorkDocs": {"Amazon workdocs", "AWS WorkDocs", "AWS workdocs"},
"Amazon WorkMail": {"Amazon workmail", "AWS WorkMail", "AWS workmail"},
"Amazon WorkSpaces Core": {"Amazon workspaces core", "Amazon WorkSpacesCore", "AWS WorkSpaces Core", "AWS workspaces core", "AWS WorkSpacesCore"},
"Amazon WorkSpaces Family": {"Amazon workspaces family", "Amazon WorkSpacesFamily", "AWS WorkSpaces Family", "AWS workspaces family", "AWS WorkSpacesFamily"},
"Amazon WorkSpaces Secure Browse": {"Amazon workspaces secure browse", "Amazon WorkSpacesSecureBrowse", "AWS WorkSpaces Secure Browse", "AWS workspaces secure browse", "AWS WorkSpacesSecureBrowse"},
"Amazon WorkSpaces Thin Client": {"Amazon workspaces thin client", "Amazon WorkSpacesThinClient", "AWS WorkSpaces Thin Client", "AWS workspaces thin client", "AWS WorkSpacesThinClient"},
}
return awsServiceNames
}