type AccountId = `${number}`; type Region = `${string}-${string}-${number}`; type Arn< S extends string, R extends Region | "", T extends string > = `arn:aws:${S}:${R}:${AccountId}:${T}`; type RegionalArn = Arn; type GlobalArn = Arn; type RuleArn = RegionalArn<"events", `rule/${string}/${string}`>; type RoleArn = GlobalArn<"iam", `role/${string}`>; type SqsArn = RegionalArn<"sqs", string>; type LambdaArn = RegionalArn<"lambda", `function:${string}`>;