--- AWSTemplateFormatVersion: "2010-09-09" Description: Aspect AWS Connect RTA CloudFormation template with associated Kinesis stream (qs-1s0oq6h04) Metadata: AWS::CloudFormation::Interface: ParameterGroups: - Label: default: Aspect WFM Configuration Parameters: - NumSQSQueues - LambdaConfigLocation - Label: default: Amazon Connect Configuration Parameters: - AHGFilterLevel - AHGFilterSeparator - AHGFilterValues - Label: default: AWS Quick Start configuration Parameters: - QSS3BucketName - QSS3BucketRegion - QSS3KeyPrefix ParameterLabels: NumSQSQueues: default: Number of SQS Queues LambdaConfigLocation: default: Write to SQS Flag Location AHGFilterLevel: default: Agent Hierarchy Group Level AHGFilterSeparator: default: Agent Hierarchy Group filter value separator AHGFilterValues: default: Agent Hierarchy Group filter matching values QSS3BucketName: default: Quick Start S3 Bucket Name QSS3BucketRegion: default: Quick Start S3 bucket region QSS3KeyPrefix: default: Quick Start S3 Key Prefix Parameters: NumSQSQueues: Description: The number of SQS queues to create (must be between 1 and 10). Creating additional SQS queues can reduce the latency of state changes. Type: Number Default: 1 MinValue: 1 MaxValue: 10 ConstraintDescription: Must be a number between 1 and 10. LambdaConfigLocation: Description: Once RTA reads an initial set of states from the agent event DynamoDB table, it toggles a Write to SQS flag to ensure that agent events are written to the SQS queue(s). This setting controls where that Write to SQS flag is stored either in an environment variable of the RTA Lambda (env) or in a configuration DynamoDB table (table). Storing this flag in an environment variable of the Lambda requires less overhead, but requires greater permissions for the RTA user. Storing this flag in a configuration DynamoDB table requires fewer permissions for the RTA user, but requires an additional DyanmoDB read each time the RTA Lambda executes. By default, this flag will be stored in an environment variable of the RTA Lambda. Type: String Default: env AllowedValues: - env - tab AHGFilterLevel: Description: The Agent Hierarchy Group Level on which agent events should be filtered (must be between 0 and 5). Configuring a value of 0 disables filtering. Configuring a value between 1 and 5 means that agent events will be filtered based on that Agent Hierarchy Group Level. Type: Number Default: 0 MinValue: 0 MaxValue: 5 ConstraintDescription: Must be a number between 0 and 5. AHGFilterSeparator: Description: Character used to separate matching values listed in AHGFilterValues. You should configure a separator character that does not appear in any of the individual matching values. Type: String Default: "," MinLength: 1 MaxLength: 1 AHGFilterValues: Description: An optional list of matching Agent Hierarchy Group Level values. If you enable Agent Hierarchy Group filtering, any agent events with an Agent Hierarchy Group Level value matching one of the values listed here will be sent on to Real-Time Adherence and any agent events that do not match the filter will be discarded. Matching values should be separated with the character configured in AHGFilterSeparator. Type: String QSS3BucketName: AllowedPattern: ^[0-9a-zA-Z]+([0-9a-zA-Z-]*[0-9a-zA-Z])*$ ConstraintDescription: Quick Start bucket name can include numbers, lowercase letters, uppercase letters, and hyphens (-). It cannot start or end with a hyphen (-). Default: aws-quickstart Description: S3 bucket name for the Quick Start assets. This string can include numbers, lowercase letters, uppercase letters, and hyphens (-). It cannot start or end with a hyphen (-). Type: String QSS3BucketRegion: Default: "us-east-1" Description: "The AWS Region where the Quick Start S3 bucket (QSS3BucketName) is hosted. When using your own bucket, you must specify this value." Type: String QSS3KeyPrefix: AllowedPattern: ^[0-9a-zA-Z-/]*$ ConstraintDescription: Quick Start key prefix can include numbers, lowercase letters, uppercase letters, hyphens (-), and forward slash (/). Default: connect-integration-aspect-wfm/ Description: S3 key prefix for the Quick Start assets. Quick Start key prefix can include numbers, lowercase letters, uppercase letters, hyphens (-), and forward slash (/). Type: String Conditions: UsingDefaultBucket: !Equals [!Ref QSS3BucketName, "aws-quickstart"] Resources: CreateStreamStack: Type: AWS::CloudFormation::Stack Properties: TemplateURL: !Sub - "https://${S3Bucket}.s3.${S3Region}.${AWS::URLSuffix}/${QSS3KeyPrefix}templates/create-kinesis-stream.template.yaml" - S3Region: !If [UsingDefaultBucket, !Ref "AWS::Region", !Ref QSS3BucketRegion] S3Bucket: !If [ UsingDefaultBucket, !Sub "${QSS3BucketName}-${AWS::Region}", !Ref QSS3BucketName, ] WorkloadStack: Type: AWS::CloudFormation::Stack Properties: TemplateURL: !Sub - "https://${S3Bucket}.s3.${S3Region}.${AWS::URLSuffix}/${QSS3KeyPrefix}templates/aspect-wfm-rta.template.yaml" - S3Region: !If [UsingDefaultBucket, !Ref "AWS::Region", !Ref QSS3BucketRegion] S3Bucket: !If [ UsingDefaultBucket, !Sub "${QSS3BucketName}-${AWS::Region}", !Ref QSS3BucketName, ] Parameters: NumSQSQueues: !Ref NumSQSQueues LambdaConfigLocation: !Ref LambdaConfigLocation AHGFilterLevel: !Ref AHGFilterLevel AHGFilterSeparator: !Ref AHGFilterSeparator AHGFilterValues: !Ref AHGFilterValues QSS3BucketName: !Ref QSS3BucketName QSS3BucketRegion: !Ref QSS3BucketRegion QSS3KeyPrefix: !Ref QSS3KeyPrefix AgentEventStreamArn: Fn::GetAtt: - CreateStreamStack - Outputs.KinesisStreamArn AgentEventStreamKmsArn: '' Outputs: AgentEventStreamArn: Value: Fn::GetAtt: - CreateStreamStack - Outputs.KinesisStreamArn DynamoDbTableName: Value: Fn::GetAtt: - WorkloadStack - Outputs.DynamoDbTableName ConfigTableName: Value: Fn::GetAtt: - WorkloadStack - Outputs.ConfigTableName SqsQueueUrl1: Value: Fn::GetAtt: - WorkloadStack - Outputs.SqsQueueUrl1 SqsQueueUrl2: Value: Fn::GetAtt: - WorkloadStack - Outputs.SqsQueueUrl2 SqsQueueUrl3: Value: Fn::GetAtt: - WorkloadStack - Outputs.SqsQueueUrl3 SqsQueueUrl4: Value: Fn::GetAtt: - WorkloadStack - Outputs.SqsQueueUrl4 SqsQueueUrl5: Value: Fn::GetAtt: - WorkloadStack - Outputs.SqsQueueUrl5 SqsQueueUrl6: Value: Fn::GetAtt: - WorkloadStack - Outputs.SqsQueueUrl6 SqsQueueUrl7: Value: Fn::GetAtt: - WorkloadStack - Outputs.SqsQueueUrl7 SqsQueueUrl8: Value: Fn::GetAtt: - WorkloadStack - Outputs.SqsQueueUrl8 SqsQueueUrl9: Value: Fn::GetAtt: - WorkloadStack - Outputs.SqsQueueUrl9 SqsQueueUrl10: Value: Fn::GetAtt: - WorkloadStack - Outputs.SqsQueueUrl10 LambdaFunctionName: Value: Fn::GetAtt: - WorkloadStack - Outputs.LambdaFunctionName RTAUserName: Value: Fn::GetAtt: - WorkloadStack - Outputs.RTAUserName