@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon Connect Service
@version 2017-08-08
@auth AWS SigV4
@endpoints 255
@hint download_for_search
@toc evaluation-forms(8), analytics-data(5), instance(39), default-vocabulary(1), flow-associations(3), phone-number(10), queues(11), routing-profiles(11), traffic-distribution-group(6), users(14), attached-files(5), flow-associations-batch(1), contact(26), agent-status(4), contact-flows(6), contact-flow-modules(5), hours-of-operations(4), predefined-attributes(5), prompts(5), quick-connects(6), rules(5), security-profiles(4), user-hierarchy-groups(4), views(9), vocabulary(2), contact-evaluations(6), vocabulary-remove(1), authentication-profiles(2), contacts(3), user-hierarchy-structure(2), metrics(4), user(1), traffic-distribution(2), authentication-profiles-summary(1), contact-flow-modules-summary(1), contact-flows-summary(1), default-vocabulary-summary(1), flow-associations-summary(1), hours-of-operations-summary(1), phone-numbers-summary(1), prompts-summary(1), queues-summary(1), routing-profiles-summary(1), security-profiles-applications(1), security-profiles-permissions(1), security-profiles-summary(1), tags(3), traffic-distribution-groups(1), user-hierarchy-groups-summary(1), users-summary(1), search-agent-statuses(1), search-contact-flow-modules(1), search-contact-flows(1), search-contacts(1), search-hours-of-operations(1), search-predefined-attributes(1), search-prompts(1), search-queues(1), search-quick-connects(1), search-resource-tags(1), search-routing-profiles(1), search-security-profiles(1), search-user-hierarchy-groups(1), search-users(1), vocabulary-summary(1), chat-integration-event(1)

@group evaluation-forms
@endpoint POST /evaluation-forms/{InstanceId}/{EvaluationFormId}/activate
@required {InstanceId: str, EvaluationFormId: str, EvaluationFormVersion: int}
@returns(200) {EvaluationFormId: str, EvaluationFormArn: str, EvaluationFormVersion: int}

@endgroup

@group analytics-data
@endpoint PUT /analytics-data/instance/{InstanceId}/association
@required {InstanceId: str, DataSetId: str}
@optional {TargetAccountId: str}
@returns(200) {DataSetId: str?, TargetAccountId: str?, ResourceShareId: str?, ResourceShareArn: str?}

@endgroup

@group instance
@endpoint PUT /instance/{InstanceId}/approved-origin
@required {InstanceId: str, Origin: str}

@endpoint PUT /instance/{InstanceId}/bot
@required {InstanceId: str}
@optional {LexBot: LexBot, LexV2Bot: LexV2Bot}

@endgroup

@group default-vocabulary
@endpoint PUT /default-vocabulary/{InstanceId}/{LanguageCode}
@required {InstanceId: str, LanguageCode: str}
@optional {VocabularyId: str}

@endgroup

@group flow-associations
@endpoint PUT /flow-associations/{InstanceId}
@required {InstanceId: str, ResourceId: str, FlowId: str, ResourceType: str}

@endgroup

@group instance
@endpoint PUT /instance/{InstanceId}/storage-config
@required {InstanceId: str, ResourceType: str, StorageConfig: InstanceStorageConfig}
@returns(200) {AssociationId: str?}

@endpoint PUT /instance/{InstanceId}/lambda-function
@required {InstanceId: str, FunctionArn: str}

@endpoint PUT /instance/{InstanceId}/lex-bot
@required {InstanceId: str, LexBot: LexBot}

@endgroup

@group phone-number
@endpoint PUT /phone-number/{PhoneNumberId}/contact-flow
@required {PhoneNumberId: str, InstanceId: str, ContactFlowId: str}

@endgroup

@group queues
@endpoint POST /queues/{InstanceId}/{QueueId}/associate-quick-connects
@required {InstanceId: str, QueueId: str, QuickConnectIds: [str]}

@endgroup

@group routing-profiles
@endpoint POST /routing-profiles/{InstanceId}/{RoutingProfileId}/associate-queues
@required {InstanceId: str, RoutingProfileId: str, QueueConfigs: [RoutingProfileQueueConfig]}

@endgroup

@group instance
@endpoint PUT /instance/{InstanceId}/security-key
@required {InstanceId: str, Key: str}
@returns(200) {AssociationId: str?}

@endgroup

@group traffic-distribution-group
@endpoint PUT /traffic-distribution-group/{TrafficDistributionGroupId}/user
@required {TrafficDistributionGroupId: str, UserId: str, InstanceId: str}

@endgroup

@group users
@endpoint POST /users/{InstanceId}/{UserId}/associate-proficiencies
@required {InstanceId: str, UserId: str, UserProficiencies: [UserProficiency]}

@endgroup

@group analytics-data
@endpoint PUT /analytics-data/instance/{InstanceId}/associations
@required {InstanceId: str, DataSetIds: [str]}
@optional {TargetAccountId: str}
@returns(200) {Created: [AnalyticsDataAssociationResult]?, Errors: [ErrorResult]?}

@endpoint POST /analytics-data/instance/{InstanceId}/associations
@required {InstanceId: str, DataSetIds: [str]}
@optional {TargetAccountId: str}
@returns(200) {Deleted: [str]?, Errors: [ErrorResult]?}

@endgroup

@group attached-files
@endpoint POST /attached-files/{InstanceId}
@required {InstanceId: str, associatedResourceArn: str, FileIds: [str]}
@returns(200) {Files: [AttachedFile]?, Errors: [AttachedFileError]?}

@endgroup

@group flow-associations-batch
@endpoint POST /flow-associations-batch/{InstanceId}
@required {InstanceId: str, ResourceIds: [str]}
@optional {ResourceType: str}
@returns(200) {FlowAssociationSummaryList: [FlowAssociationSummary]?}

@endgroup

@group contact
@endpoint PUT /contact/batch/{InstanceId}
@required {InstanceId: str, ContactDataRequestList: [ContactDataRequest]}
@optional {ClientToken: str}
@returns(200) {SuccessfulRequestList: [SuccessfulRequest]?, FailedRequestList: [FailedRequest]?}

@endgroup

@group phone-number
@endpoint POST /phone-number/claim
@required {PhoneNumber: str}
@optional {TargetArn: str, InstanceId: str, PhoneNumberDescription: str, Tags: map<str,str>, ClientToken: str}
@returns(200) {PhoneNumberId: str?, PhoneNumberArn: str?}

@endgroup

@group attached-files
@endpoint POST /attached-files/{InstanceId}/{FileId}
@required {InstanceId: str, FileId: str, associatedResourceArn: str}

@endgroup

@group agent-status
@endpoint PUT /agent-status/{InstanceId}
@required {InstanceId: str, Name: str, State: str}
@optional {Description: str, DisplayOrder: int, Tags: map<str,str>}
@returns(200) {AgentStatusARN: str?, AgentStatusId: str?}

@endgroup

@group contact-flows
@endpoint PUT /contact-flows/{InstanceId}
@required {InstanceId: str, Name: str, Type: str, Content: str}
@optional {Description: str, Status: str, Tags: map<str,str>}
@returns(200) {ContactFlowId: str?, ContactFlowArn: str?}

@endgroup

@group contact-flow-modules
@endpoint PUT /contact-flow-modules/{InstanceId}
@required {InstanceId: str, Name: str, Content: str}
@optional {Description: str, Tags: map<str,str>, ClientToken: str}
@returns(200) {Id: str?, Arn: str?}

@endgroup

@group evaluation-forms
@endpoint PUT /evaluation-forms/{InstanceId}
@required {InstanceId: str, Title: str, Items: [EvaluationFormItem]}
@optional {Description: str, ScoringStrategy: EvaluationFormScoringStrategy, ClientToken: str}
@returns(200) {EvaluationFormId: str, EvaluationFormArn: str}

@endgroup

@group hours-of-operations
@endpoint PUT /hours-of-operations/{InstanceId}
@required {InstanceId: str, Name: str, TimeZone: str, Config: [HoursOfOperationConfig]}
@optional {Description: str, Tags: map<str,str>}
@returns(200) {HoursOfOperationId: str?, HoursOfOperationArn: str?}

@endgroup

@group instance
@endpoint PUT /instance
@required {IdentityManagementType: str, InboundCallsEnabled: bool, OutboundCallsEnabled: bool}
@optional {ClientToken: str, InstanceAlias: str, DirectoryId: str, Tags: map<str,str>}
@returns(200) {Id: str?, Arn: str?}

@endpoint PUT /instance/{InstanceId}/integration-associations
@required {InstanceId: str, IntegrationType: str, IntegrationArn: str}
@optional {SourceApplicationUrl: str, SourceApplicationName: str, SourceType: str, Tags: map<str,str>}
@returns(200) {IntegrationAssociationId: str?, IntegrationAssociationArn: str?}

@endgroup

@group contact
@endpoint POST /contact/create-participant
@required {InstanceId: str, ContactId: str, ParticipantDetails: ParticipantDetailsToAdd}
@optional {ClientToken: str}
@returns(200) {ParticipantCredentials: ParticipantTokenCredentials?{ParticipantToken: str?, Expiry: str?}, ParticipantId: str?}

@endpoint POST /contact/persistent-contact-association/{InstanceId}/{InitialContactId}
@required {InstanceId: str, InitialContactId: str, RehydrationType: str, SourceContactId: str}
@optional {ClientToken: str}
@returns(200) {ContinuedFromContactId: str?}

@endgroup

@group predefined-attributes
@endpoint PUT /predefined-attributes/{InstanceId}
@required {InstanceId: str, Name: str, Values: PredefinedAttributeValues}

@endgroup

@group prompts
@endpoint PUT /prompts/{InstanceId}
@required {InstanceId: str, Name: str, S3Uri: str}
@optional {Description: str, Tags: map<str,str>}
@returns(200) {PromptARN: str?, PromptId: str?}

@endgroup

@group queues
@endpoint PUT /queues/{InstanceId}
@required {InstanceId: str, Name: str, HoursOfOperationId: str}
@optional {Description: str, OutboundCallerConfig: OutboundCallerConfig, MaxContacts: int, QuickConnectIds: [str], Tags: map<str,str>}
@returns(200) {QueueArn: str?, QueueId: str?}

@endgroup

@group quick-connects
@endpoint PUT /quick-connects/{InstanceId}
@required {InstanceId: str, Name: str, QuickConnectConfig: QuickConnectConfig}
@optional {Description: str, Tags: map<str,str>}
@returns(200) {QuickConnectARN: str?, QuickConnectId: str?}

@endgroup

@group routing-profiles
@endpoint PUT /routing-profiles/{InstanceId}
@required {InstanceId: str, Name: str, Description: str, DefaultOutboundQueueId: str, MediaConcurrencies: [MediaConcurrency]}
@optional {QueueConfigs: [RoutingProfileQueueConfig], Tags: map<str,str>, AgentAvailabilityTimer: str}
@returns(200) {RoutingProfileArn: str?, RoutingProfileId: str?}

@endgroup

@group rules
@endpoint POST /rules/{InstanceId}
@required {InstanceId: str, Name: str, TriggerEventSource: RuleTriggerEventSource, Function: str, Actions: [RuleAction], PublishStatus: str}
@optional {ClientToken: str}
@returns(200) {RuleArn: str, RuleId: str}

@endgroup

@group security-profiles
@endpoint PUT /security-profiles/{InstanceId}
@required {InstanceId: str, SecurityProfileName: str}
@optional {Description: str, Permissions: [str], Tags: map<str,str>, AllowedAccessControlTags: map<str,str>, TagRestrictedResources: [str], Applications: [Application], HierarchyRestrictedResources: [str], AllowedAccessControlHierarchyGroupId: str}
@returns(200) {SecurityProfileId: str?, SecurityProfileArn: str?}

@endgroup

@group instance
@endpoint PUT /instance/{InstanceId}/task/template
@required {InstanceId: str, Name: str, Fields: [TaskTemplateField]}
@optional {Description: str, ContactFlowId: str, Constraints: TaskTemplateConstraints, Defaults: TaskTemplateDefaults, Status: str, ClientToken: str}
@returns(200) {Id: str, Arn: str}

@endgroup

@group traffic-distribution-group
@endpoint PUT /traffic-distribution-group
@required {Name: str, InstanceId: str}
@optional {Description: str, ClientToken: str, Tags: map<str,str>}
@returns(200) {Id: str?, Arn: str?}

@endgroup

@group instance
@endpoint PUT /instance/{InstanceId}/integration-associations/{IntegrationAssociationId}/use-cases
@required {InstanceId: str, IntegrationAssociationId: str, UseCaseType: str}
@optional {Tags: map<str,str>}
@returns(200) {UseCaseId: str?, UseCaseArn: str?}

@endgroup

@group users
@endpoint PUT /users/{InstanceId}
@required {InstanceId: str, Username: str, PhoneConfig: UserPhoneConfig, SecurityProfileIds: [str], RoutingProfileId: str}
@optional {Password: str, IdentityInfo: UserIdentityInfo, DirectoryUserId: str, HierarchyGroupId: str, Tags: map<str,str>}
@returns(200) {UserId: str?, UserArn: str?}

@endgroup

@group user-hierarchy-groups
@endpoint PUT /user-hierarchy-groups/{InstanceId}
@required {InstanceId: str, Name: str}
@optional {ParentGroupId: str, Tags: map<str,str>}
@returns(200) {HierarchyGroupId: str?, HierarchyGroupArn: str?}

@endgroup

@group views
@endpoint PUT /views/{InstanceId}
@required {InstanceId: str, Status: str, Content: ViewInputContent, Name: str}
@optional {ClientToken: str, Description: str, Tags: map<str,str>}
@returns(200) {View: View?{Id: str?, Arn: str?, Name: str?, Status: str?, Type: str?, Description: str?, Version: int?, VersionDescription: str?, Content: ViewContent?{InputSchema: str?, Template: str?, Actions: [str]?}, Tags: map<str,str>?, CreatedTime: str(timestamp)?, LastModifiedTime: str(timestamp)?, ViewContentSha256: str?}}

@endpoint PUT /views/{InstanceId}/{ViewId}/versions
@required {InstanceId: str, ViewId: str}
@optional {VersionDescription: str, ViewContentSha256: str}
@returns(200) {View: View?{Id: str?, Arn: str?, Name: str?, Status: str?, Type: str?, Description: str?, Version: int?, VersionDescription: str?, Content: ViewContent?{InputSchema: str?, Template: str?, Actions: [str]?}, Tags: map<str,str>?, CreatedTime: str(timestamp)?, LastModifiedTime: str(timestamp)?, ViewContentSha256: str?}}

@endgroup

@group vocabulary
@endpoint POST /vocabulary/{InstanceId}
@required {InstanceId: str, VocabularyName: str, LanguageCode: str, Content: str}
@optional {ClientToken: str, Tags: map<str,str>}
@returns(200) {VocabularyArn: str, VocabularyId: str, State: str}

@endgroup

@group evaluation-forms
@endpoint POST /evaluation-forms/{InstanceId}/{EvaluationFormId}/deactivate
@required {InstanceId: str, EvaluationFormId: str, EvaluationFormVersion: int}
@returns(200) {EvaluationFormId: str, EvaluationFormArn: str, EvaluationFormVersion: int}

@endgroup

@group attached-files
@endpoint DELETE /attached-files/{InstanceId}/{FileId}
@required {InstanceId: str, FileId: str, associatedResourceArn: str}

@endgroup

@group contact-evaluations
@endpoint DELETE /contact-evaluations/{InstanceId}/{EvaluationId}
@required {InstanceId: str, EvaluationId: str}

@endgroup

@group contact-flows
@endpoint DELETE /contact-flows/{InstanceId}/{ContactFlowId}
@required {InstanceId: str, ContactFlowId: str}

@endgroup

@group contact-flow-modules
@endpoint DELETE /contact-flow-modules/{InstanceId}/{ContactFlowModuleId}
@required {InstanceId: str, ContactFlowModuleId: str}

@endgroup

@group evaluation-forms
@endpoint DELETE /evaluation-forms/{InstanceId}/{EvaluationFormId}
@required {InstanceId: str, EvaluationFormId: str}
@optional {version: int}

@endgroup

@group hours-of-operations
@endpoint DELETE /hours-of-operations/{InstanceId}/{HoursOfOperationId}
@required {InstanceId: str, HoursOfOperationId: str}

@endgroup

@group instance
@endpoint DELETE /instance/{InstanceId}
@required {InstanceId: str}

@endpoint DELETE /instance/{InstanceId}/integration-associations/{IntegrationAssociationId}
@required {InstanceId: str, IntegrationAssociationId: str}

@endgroup

@group predefined-attributes
@endpoint DELETE /predefined-attributes/{InstanceId}/{Name}
@required {InstanceId: str, Name: str}

@endgroup

@group prompts
@endpoint DELETE /prompts/{InstanceId}/{PromptId}
@required {InstanceId: str, PromptId: str}

@endgroup

@group queues
@endpoint DELETE /queues/{InstanceId}/{QueueId}
@required {InstanceId: str, QueueId: str}

@endgroup

@group quick-connects
@endpoint DELETE /quick-connects/{InstanceId}/{QuickConnectId}
@required {InstanceId: str, QuickConnectId: str}

@endgroup

@group routing-profiles
@endpoint DELETE /routing-profiles/{InstanceId}/{RoutingProfileId}
@required {InstanceId: str, RoutingProfileId: str}

@endgroup

@group rules
@endpoint DELETE /rules/{InstanceId}/{RuleId}
@required {InstanceId: str, RuleId: str}

@endgroup

@group security-profiles
@endpoint DELETE /security-profiles/{InstanceId}/{SecurityProfileId}
@required {InstanceId: str, SecurityProfileId: str}

@endgroup

@group instance
@endpoint DELETE /instance/{InstanceId}/task/template/{TaskTemplateId}
@required {InstanceId: str, TaskTemplateId: str}

@endgroup

@group traffic-distribution-group
@endpoint DELETE /traffic-distribution-group/{TrafficDistributionGroupId}
@required {TrafficDistributionGroupId: str}

@endgroup

@group instance
@endpoint DELETE /instance/{InstanceId}/integration-associations/{IntegrationAssociationId}/use-cases/{UseCaseId}
@required {InstanceId: str, IntegrationAssociationId: str, UseCaseId: str}

@endgroup

@group users
@endpoint DELETE /users/{InstanceId}/{UserId}
@required {InstanceId: str, UserId: str}

@endgroup

@group user-hierarchy-groups
@endpoint DELETE /user-hierarchy-groups/{InstanceId}/{HierarchyGroupId}
@required {HierarchyGroupId: str, InstanceId: str}

@endgroup

@group views
@endpoint DELETE /views/{InstanceId}/{ViewId}
@required {InstanceId: str, ViewId: str}

@endpoint DELETE /views/{InstanceId}/{ViewId}/versions/{ViewVersion}
@required {InstanceId: str, ViewId: str, ViewVersion: int}

@endgroup

@group vocabulary-remove
@endpoint POST /vocabulary-remove/{InstanceId}/{VocabularyId}
@required {InstanceId: str, VocabularyId: str}
@returns(200) {VocabularyArn: str, VocabularyId: str, State: str}

@endgroup

@group agent-status
@endpoint GET /agent-status/{InstanceId}/{AgentStatusId}
@required {InstanceId: str, AgentStatusId: str}
@returns(200) {AgentStatus: AgentStatus?{AgentStatusARN: str?, AgentStatusId: str?, Name: str?, Description: str?, Type: str?, DisplayOrder: int?, State: str?, Tags: map<str,str>?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}}

@endgroup

@group authentication-profiles
@endpoint GET /authentication-profiles/{InstanceId}/{AuthenticationProfileId}
@required {AuthenticationProfileId: str, InstanceId: str}
@returns(200) {AuthenticationProfile: AuthenticationProfile?{Id: str?, Arn: str?, Name: str?, Description: str?, AllowedIps: [str]?, BlockedIps: [str]?, IsDefault: bool?, CreatedTime: str(timestamp)?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?, PeriodicSessionDuration: int?, MaxSessionDuration: int?}}

@endgroup

@group contacts
@endpoint GET /contacts/{InstanceId}/{ContactId}
@required {InstanceId: str, ContactId: str}
@returns(200) {Contact: Contact?{Arn: str?, Id: str?, InitialContactId: str?, PreviousContactId: str?, InitiationMethod: str?, Name: str?, Description: str?, Channel: str?, QueueInfo: QueueInfo?{Id: str?, EnqueueTimestamp: str(timestamp)?}, AgentInfo: AgentInfo?{Id: str?, ConnectedToAgentTimestamp: str(timestamp)?, AgentPauseDurationInSeconds: int?, HierarchyGroups: HierarchyGroups?{Level1: AgentHierarchyGroup?, Level2: AgentHierarchyGroup?, Level3: AgentHierarchyGroup?, Level4: AgentHierarchyGroup?, Level5: AgentHierarchyGroup?}, DeviceInfo: DeviceInfo?{PlatformName: str?, PlatformVersion: str?, OperatingSystem: str?}, Capabilities: ParticipantCapabilities?{Video: str?}}, InitiationTimestamp: str(timestamp)?, DisconnectTimestamp: str(timestamp)?, LastUpdateTimestamp: str(timestamp)?, LastPausedTimestamp: str(timestamp)?, LastResumedTimestamp: str(timestamp)?, TotalPauseCount: int?, TotalPauseDurationInSeconds: int?, ScheduledTimestamp: str(timestamp)?, RelatedContactId: str?, WisdomInfo: WisdomInfo?{SessionArn: str?}, QueueTimeAdjustmentSeconds: int?, QueuePriority: int(i64)?, Tags: map<str,str>?, ConnectedToSystemTimestamp: str(timestamp)?, RoutingCriteria: RoutingCriteria?{Steps: [Step]?, ActivationTimestamp: str(timestamp)?, Index: int?}, Customer: Customer?{DeviceInfo: DeviceInfo?{PlatformName: str?, PlatformVersion: str?, OperatingSystem: str?}, Capabilities: ParticipantCapabilities?{Video: str?}}, Campaign: Campaign?{CampaignId: str?}, AnsweringMachineDetectionStatus: str?, CustomerVoiceActivity: CustomerVoiceActivity?{GreetingStartTimestamp: str(timestamp)?, GreetingEndTimestamp: str(timestamp)?}, QualityMetrics: QualityMetrics?{Agent: AgentQualityMetrics?{Audio: AudioQualityMetricsInfo?}, Customer: CustomerQualityMetrics?{Audio: AudioQualityMetricsInfo?}}, DisconnectDetails: DisconnectDetails?{PotentialDisconnectIssue: str?}, SegmentAttributes: map<str,SegmentAttributeValue>?}}

@endgroup

@group contact-evaluations
@endpoint GET /contact-evaluations/{InstanceId}/{EvaluationId}
@required {InstanceId: str, EvaluationId: str}
@returns(200) {Evaluation: Evaluation{EvaluationId: str, EvaluationArn: str, Metadata: EvaluationMetadata{ContactId: str, EvaluatorArn: str, ContactAgentId: str?, Score: EvaluationScore?{Percentage: num(f64)?, NotApplicable: bool?, AutomaticFail: bool?}}, Answers: map<str,EvaluationAnswerOutput>, Notes: map<str,EvaluationNote>, Status: str, Scores: map<str,EvaluationScore>?, CreatedTime: str(timestamp), LastModifiedTime: str(timestamp), Tags: map<str,str>?}, EvaluationForm: EvaluationFormContent{EvaluationFormVersion: int, EvaluationFormId: str, EvaluationFormArn: str, Title: str, Description: str?, Items: [EvaluationFormItem], ScoringStrategy: EvaluationFormScoringStrategy?{Mode: str, Status: str}}}

@endgroup

@group contact-flows
@endpoint GET /contact-flows/{InstanceId}/{ContactFlowId}
@required {InstanceId: str, ContactFlowId: str}
@returns(200) {ContactFlow: ContactFlow?{Arn: str?, Id: str?, Name: str?, Type: str?, State: str?, Status: str?, Description: str?, Content: str?, Tags: map<str,str>?}}

@endgroup

@group contact-flow-modules
@endpoint GET /contact-flow-modules/{InstanceId}/{ContactFlowModuleId}
@required {InstanceId: str, ContactFlowModuleId: str}
@returns(200) {ContactFlowModule: ContactFlowModule?{Arn: str?, Id: str?, Name: str?, Content: str?, Description: str?, State: str?, Status: str?, Tags: map<str,str>?}}

@endgroup

@group evaluation-forms
@endpoint GET /evaluation-forms/{InstanceId}/{EvaluationFormId}
@required {InstanceId: str, EvaluationFormId: str}
@optional {version: int}
@returns(200) {EvaluationForm: EvaluationForm{EvaluationFormId: str, EvaluationFormVersion: int, Locked: bool, EvaluationFormArn: str, Title: str, Description: str?, Status: str, Items: [EvaluationFormItem], ScoringStrategy: EvaluationFormScoringStrategy?{Mode: str, Status: str}, CreatedTime: str(timestamp), CreatedBy: str, LastModifiedTime: str(timestamp), LastModifiedBy: str, Tags: map<str,str>?}}

@endgroup

@group hours-of-operations
@endpoint GET /hours-of-operations/{InstanceId}/{HoursOfOperationId}
@required {InstanceId: str, HoursOfOperationId: str}
@returns(200) {HoursOfOperation: HoursOfOperation?{HoursOfOperationId: str?, HoursOfOperationArn: str?, Name: str?, Description: str?, TimeZone: str?, Config: [HoursOfOperationConfig]?, Tags: map<str,str>?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}}

@endgroup

@group instance
@endpoint GET /instance/{InstanceId}
@required {InstanceId: str}
@returns(200) {Instance: Instance?{Id: str?, Arn: str?, IdentityManagementType: str?, InstanceAlias: str?, CreatedTime: str(timestamp)?, ServiceRole: str?, InstanceStatus: str?, StatusReason: InstanceStatusReason?{Message: str?}, InboundCallsEnabled: bool?, OutboundCallsEnabled: bool?, InstanceAccessUrl: str?, Tags: map<str,str>?}, ReplicationConfiguration: ReplicationConfiguration?{ReplicationStatusSummaryList: [ReplicationStatusSummary]?, SourceRegion: str?, GlobalSignInEndpoint: str?}}

@endpoint GET /instance/{InstanceId}/attribute/{AttributeType}
@required {InstanceId: str, AttributeType: str}
@returns(200) {Attribute: Attribute?{AttributeType: str?, Value: str?}}

@endpoint GET /instance/{InstanceId}/storage-config/{AssociationId}
@required {InstanceId: str, AssociationId: str, resourceType: str}
@returns(200) {StorageConfig: InstanceStorageConfig?{AssociationId: str?, StorageType: str, S3Config: S3Config?{BucketName: str, BucketPrefix: str, EncryptionConfig: EncryptionConfig?{EncryptionType: str, KeyId: str}}, KinesisVideoStreamConfig: KinesisVideoStreamConfig?{Prefix: str, RetentionPeriodHours: int, EncryptionConfig: EncryptionConfig{EncryptionType: str, KeyId: str}}, KinesisStreamConfig: KinesisStreamConfig?{StreamArn: str}, KinesisFirehoseConfig: KinesisFirehoseConfig?{FirehoseArn: str}}}

@endgroup

@group phone-number
@endpoint GET /phone-number/{PhoneNumberId}
@required {PhoneNumberId: str}
@returns(200) {ClaimedPhoneNumberSummary: ClaimedPhoneNumberSummary?{PhoneNumberId: str?, PhoneNumberArn: str?, PhoneNumber: str?, PhoneNumberCountryCode: str?, PhoneNumberType: str?, PhoneNumberDescription: str?, TargetArn: str?, InstanceId: str?, Tags: map<str,str>?, PhoneNumberStatus: PhoneNumberStatus?{Status: str?, Message: str?}, SourcePhoneNumberArn: str?}}

@endgroup

@group predefined-attributes
@endpoint GET /predefined-attributes/{InstanceId}/{Name}
@required {InstanceId: str, Name: str}
@returns(200) {PredefinedAttribute: PredefinedAttribute?{Name: str?, Values: PredefinedAttributeValues?{StringList: [str]?}, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}}

@endgroup

@group prompts
@endpoint GET /prompts/{InstanceId}/{PromptId}
@required {InstanceId: str, PromptId: str}
@returns(200) {Prompt: Prompt?{PromptARN: str?, PromptId: str?, Name: str?, Description: str?, Tags: map<str,str>?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}}

@endgroup

@group queues
@endpoint GET /queues/{InstanceId}/{QueueId}
@required {InstanceId: str, QueueId: str}
@returns(200) {Queue: Queue?{Name: str?, QueueArn: str?, QueueId: str?, Description: str?, OutboundCallerConfig: OutboundCallerConfig?{OutboundCallerIdName: str?, OutboundCallerIdNumberId: str?, OutboundFlowId: str?}, HoursOfOperationId: str?, MaxContacts: int?, Status: str?, Tags: map<str,str>?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}}

@endgroup

@group quick-connects
@endpoint GET /quick-connects/{InstanceId}/{QuickConnectId}
@required {InstanceId: str, QuickConnectId: str}
@returns(200) {QuickConnect: QuickConnect?{QuickConnectARN: str?, QuickConnectId: str?, Name: str?, Description: str?, QuickConnectConfig: QuickConnectConfig?{QuickConnectType: str, UserConfig: UserQuickConnectConfig?{UserId: str, ContactFlowId: str}, QueueConfig: QueueQuickConnectConfig?{QueueId: str, ContactFlowId: str}, PhoneConfig: PhoneNumberQuickConnectConfig?{PhoneNumber: str}}, Tags: map<str,str>?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}}

@endgroup

@group routing-profiles
@endpoint GET /routing-profiles/{InstanceId}/{RoutingProfileId}
@required {InstanceId: str, RoutingProfileId: str}
@returns(200) {RoutingProfile: RoutingProfile?{InstanceId: str?, Name: str?, RoutingProfileArn: str?, RoutingProfileId: str?, Description: str?, MediaConcurrencies: [MediaConcurrency]?, DefaultOutboundQueueId: str?, Tags: map<str,str>?, NumberOfAssociatedQueues: int(i64)?, NumberOfAssociatedUsers: int(i64)?, AgentAvailabilityTimer: str?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?, IsDefault: bool?, AssociatedQueueIds: [str]?}}

@endgroup

@group rules
@endpoint GET /rules/{InstanceId}/{RuleId}
@required {InstanceId: str, RuleId: str}
@returns(200) {Rule: Rule{Name: str, RuleId: str, RuleArn: str, TriggerEventSource: RuleTriggerEventSource{EventSourceName: str, IntegrationAssociationId: str?}, Function: str, Actions: [RuleAction], PublishStatus: str, CreatedTime: str(timestamp), LastUpdatedTime: str(timestamp), LastUpdatedBy: str, Tags: map<str,str>?}}

@endgroup

@group security-profiles
@endpoint GET /security-profiles/{InstanceId}/{SecurityProfileId}
@required {SecurityProfileId: str, InstanceId: str}
@returns(200) {SecurityProfile: SecurityProfile?{Id: str?, OrganizationResourceId: str?, Arn: str?, SecurityProfileName: str?, Description: str?, Tags: map<str,str>?, AllowedAccessControlTags: map<str,str>?, TagRestrictedResources: [str]?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?, HierarchyRestrictedResources: [str]?, AllowedAccessControlHierarchyGroupId: str?}}

@endgroup

@group traffic-distribution-group
@endpoint GET /traffic-distribution-group/{TrafficDistributionGroupId}
@required {TrafficDistributionGroupId: str}
@returns(200) {TrafficDistributionGroup: TrafficDistributionGroup?{Id: str?, Arn: str?, Name: str?, Description: str?, InstanceArn: str?, Status: str?, Tags: map<str,str>?, IsDefault: bool?}}

@endgroup

@group users
@endpoint GET /users/{InstanceId}/{UserId}
@required {UserId: str, InstanceId: str}
@returns(200) {User: User?{Id: str?, Arn: str?, Username: str?, IdentityInfo: UserIdentityInfo?{FirstName: str?, LastName: str?, Email: str?, SecondaryEmail: str?, Mobile: str?}, PhoneConfig: UserPhoneConfig?{PhoneType: str, AutoAccept: bool?, AfterContactWorkTimeLimit: int?, DeskPhoneNumber: str?}, DirectoryUserId: str?, SecurityProfileIds: [str]?, RoutingProfileId: str?, HierarchyGroupId: str?, Tags: map<str,str>?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}}

@endgroup

@group user-hierarchy-groups
@endpoint GET /user-hierarchy-groups/{InstanceId}/{HierarchyGroupId}
@required {HierarchyGroupId: str, InstanceId: str}
@returns(200) {HierarchyGroup: HierarchyGroup?{Id: str?, Arn: str?, Name: str?, LevelId: str?, HierarchyPath: HierarchyPath?{LevelOne: HierarchyGroupSummary?{Id: str?, Arn: str?, Name: str?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}, LevelTwo: HierarchyGroupSummary?{Id: str?, Arn: str?, Name: str?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}, LevelThree: HierarchyGroupSummary?{Id: str?, Arn: str?, Name: str?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}, LevelFour: HierarchyGroupSummary?{Id: str?, Arn: str?, Name: str?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}, LevelFive: HierarchyGroupSummary?{Id: str?, Arn: str?, Name: str?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}}, Tags: map<str,str>?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}}

@endgroup

@group user-hierarchy-structure
@endpoint GET /user-hierarchy-structure/{InstanceId}
@required {InstanceId: str}
@returns(200) {HierarchyStructure: HierarchyStructure?{LevelOne: HierarchyLevel?{Id: str?, Arn: str?, Name: str?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}, LevelTwo: HierarchyLevel?{Id: str?, Arn: str?, Name: str?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}, LevelThree: HierarchyLevel?{Id: str?, Arn: str?, Name: str?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}, LevelFour: HierarchyLevel?{Id: str?, Arn: str?, Name: str?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}, LevelFive: HierarchyLevel?{Id: str?, Arn: str?, Name: str?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}}}

@endgroup

@group views
@endpoint GET /views/{InstanceId}/{ViewId}
@required {InstanceId: str, ViewId: str}
@returns(200) {View: View?{Id: str?, Arn: str?, Name: str?, Status: str?, Type: str?, Description: str?, Version: int?, VersionDescription: str?, Content: ViewContent?{InputSchema: str?, Template: str?, Actions: [str]?}, Tags: map<str,str>?, CreatedTime: str(timestamp)?, LastModifiedTime: str(timestamp)?, ViewContentSha256: str?}}

@endgroup

@group vocabulary
@endpoint GET /vocabulary/{InstanceId}/{VocabularyId}
@required {InstanceId: str, VocabularyId: str}
@returns(200) {Vocabulary: Vocabulary{Name: str, Id: str, Arn: str, LanguageCode: str, State: str, LastModifiedTime: str(timestamp), FailureReason: str?, Content: str?, Tags: map<str,str>?}}

@endgroup

@group analytics-data
@endpoint POST /analytics-data/instance/{InstanceId}/association
@required {InstanceId: str, DataSetId: str}
@optional {TargetAccountId: str}

@endgroup

@group instance
@endpoint DELETE /instance/{InstanceId}/approved-origin
@required {InstanceId: str, origin: str}

@endpoint POST /instance/{InstanceId}/bot
@required {InstanceId: str}
@optional {LexBot: LexBot, LexV2Bot: LexV2Bot}

@endgroup

@group flow-associations
@endpoint DELETE /flow-associations/{InstanceId}/{ResourceId}/{ResourceType}
@required {InstanceId: str, ResourceId: str, ResourceType: str}

@endgroup

@group instance
@endpoint DELETE /instance/{InstanceId}/storage-config/{AssociationId}
@required {InstanceId: str, AssociationId: str, resourceType: str}

@endpoint DELETE /instance/{InstanceId}/lambda-function
@required {InstanceId: str, functionArn: str}

@endpoint DELETE /instance/{InstanceId}/lex-bot
@required {InstanceId: str, botName: str, lexRegion: str}

@endgroup

@group phone-number
@endpoint DELETE /phone-number/{PhoneNumberId}/contact-flow
@required {PhoneNumberId: str, instanceId: str}

@endgroup

@group queues
@endpoint POST /queues/{InstanceId}/{QueueId}/disassociate-quick-connects
@required {InstanceId: str, QueueId: str, QuickConnectIds: [str]}

@endgroup

@group routing-profiles
@endpoint POST /routing-profiles/{InstanceId}/{RoutingProfileId}/disassociate-queues
@required {InstanceId: str, RoutingProfileId: str, QueueReferences: [RoutingProfileQueueReference]}

@endgroup

@group instance
@endpoint DELETE /instance/{InstanceId}/security-key/{AssociationId}
@required {InstanceId: str, AssociationId: str}

@endgroup

@group traffic-distribution-group
@endpoint DELETE /traffic-distribution-group/{TrafficDistributionGroupId}/user
@required {TrafficDistributionGroupId: str, UserId: str, InstanceId: str}

@endgroup

@group users
@endpoint POST /users/{InstanceId}/{UserId}/disassociate-proficiencies
@required {InstanceId: str, UserId: str, UserProficiencies: [UserProficiencyDisassociate]}

@endpoint POST /users/{InstanceId}/{UserId}/contact
@required {UserId: str, InstanceId: str, ContactId: str}

@endgroup

@group attached-files
@endpoint GET /attached-files/{InstanceId}/{FileId}
@required {InstanceId: str, FileId: str, associatedResourceArn: str}
@optional {urlExpiryInSeconds: int}
@returns(200) {FileArn: str?, FileId: str?, CreationTime: str?, FileStatus: str?, FileName: str?, FileSizeInBytes: int(i64), AssociatedResourceArn: str?, FileUseCaseType: str?, CreatedBy: CreatedByInfo?{ConnectUserArn: str?, AWSIdentityArn: str?}, DownloadUrlMetadata: DownloadUrlMetadata?{Url: str?, UrlExpiry: str?}, Tags: map<str,str>?}

@endgroup

@group contact
@endpoint GET /contact/attributes/{InstanceId}/{InitialContactId}
@required {InstanceId: str, InitialContactId: str}
@returns(200) {Attributes: map<str,str>?}

@endgroup

@group metrics
@endpoint POST /metrics/current/{InstanceId}
@required {InstanceId: str, Filters: Filters, CurrentMetrics: [CurrentMetric]}
@optional {Groupings: [str], NextToken: str, MaxResults: int, SortCriteria: [CurrentMetricSortCriteria]}
@returns(200) {NextToken: str?, MetricResults: [CurrentMetricResult]?, DataSnapshotTime: str(timestamp)?, ApproximateTotalCount: int(i64)?}

@endpoint POST /metrics/userdata/{InstanceId}
@required {InstanceId: str, Filters: UserDataFilters}
@optional {NextToken: str, MaxResults: int}
@returns(200) {NextToken: str?, UserDataList: [UserData]?, ApproximateTotalCount: int(i64)?}

@endgroup

@group user
@endpoint GET /user/federate/{InstanceId}
@required {InstanceId: str}
@returns(200) {Credentials: Credentials?{AccessToken: str?, AccessTokenExpiration: str(timestamp)?, RefreshToken: str?, RefreshTokenExpiration: str(timestamp)?}, SignInUrl: str?, UserArn: str?, UserId: str?}

@endgroup

@group flow-associations
@endpoint GET /flow-associations/{InstanceId}/{ResourceId}/{ResourceType}
@required {InstanceId: str, ResourceId: str, ResourceType: str}
@returns(200) {ResourceId: str?, FlowId: str?, ResourceType: str?}

@endgroup

@group metrics
@endpoint POST /metrics/historical/{InstanceId}
@required {InstanceId: str, StartTime: str(timestamp), EndTime: str(timestamp), Filters: Filters, HistoricalMetrics: [HistoricalMetric]}
@optional {Groupings: [str], NextToken: str, MaxResults: int}
@returns(200) {NextToken: str?, MetricResults: [HistoricalMetricResult]?}

@endpoint POST /metrics/data
@required {ResourceArn: str, StartTime: str(timestamp), EndTime: str(timestamp), Filters: [FilterV2], Metrics: [MetricV2]}
@optional {Interval: IntervalDetails, Groupings: [str], NextToken: str, MaxResults: int}
@returns(200) {NextToken: str?, MetricResults: [MetricResultV2]?}

@endgroup

@group prompts
@endpoint GET /prompts/{InstanceId}/{PromptId}/file
@required {InstanceId: str, PromptId: str}
@returns(200) {PromptPresignedUrl: str?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}

@endgroup

@group instance
@endpoint GET /instance/{InstanceId}/task/template/{TaskTemplateId}
@required {InstanceId: str, TaskTemplateId: str}
@optional {snapshotVersion: str}
@returns(200) {InstanceId: str?, Id: str, Arn: str, Name: str, Description: str?, ContactFlowId: str?, Constraints: TaskTemplateConstraints?{RequiredFields: [RequiredFieldInfo]?, ReadOnlyFields: [ReadOnlyFieldInfo]?, InvisibleFields: [InvisibleFieldInfo]?}, Defaults: TaskTemplateDefaults?{DefaultFieldValues: [TaskTemplateDefaultFieldValue]?}, Fields: [TaskTemplateField]?, Status: str?, LastModifiedTime: str(timestamp)?, CreatedTime: str(timestamp)?, Tags: map<str,str>?}

@endgroup

@group traffic-distribution
@endpoint GET /traffic-distribution/{Id}
@required {Id: str}
@returns(200) {TelephonyConfig: TelephonyConfig?{Distributions: [Distribution]}, Id: str?, Arn: str?, SignInConfig: SignInConfig?{Distributions: [SignInDistribution]}, AgentConfig: AgentConfig?{Distributions: [Distribution]}}

@endgroup

@group phone-number
@endpoint POST /phone-number/import
@required {InstanceId: str, SourcePhoneNumberArn: str}
@optional {PhoneNumberDescription: str, Tags: map<str,str>, ClientToken: str}
@returns(200) {PhoneNumberId: str?, PhoneNumberArn: str?}

@endgroup

@group agent-status
@endpoint GET /agent-status/{InstanceId}
@required {InstanceId: str}
@optional {nextToken: str, maxResults: int, AgentStatusTypes: [str]}
@returns(200) {NextToken: str?, AgentStatusSummaryList: [AgentStatusSummary]?}

@endgroup

@group analytics-data
@endpoint GET /analytics-data/instance/{InstanceId}/association
@required {InstanceId: str}
@optional {DataSetId: str, nextToken: str, maxResults: int}
@returns(200) {Results: [AnalyticsDataAssociationResult]?, NextToken: str?}

@endgroup

@group instance
@endpoint GET /instance/{InstanceId}/approved-origins
@required {InstanceId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {Origins: [str]?, NextToken: str?}

@endgroup

@group authentication-profiles-summary
@endpoint GET /authentication-profiles-summary/{InstanceId}
@required {InstanceId: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {AuthenticationProfileSummaryList: [AuthenticationProfileSummary]?, NextToken: str?}

@endgroup

@group instance
@endpoint GET /instance/{InstanceId}/bots
@required {InstanceId: str, lexVersion: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {LexBots: [LexBotConfig]?, NextToken: str?}

@endgroup

@group contact-evaluations
@endpoint GET /contact-evaluations/{InstanceId}
@required {InstanceId: str, contactId: str}
@optional {nextToken: str}
@returns(200) {EvaluationSummaryList: [EvaluationSummary], NextToken: str?}

@endgroup

@group contact-flow-modules-summary
@endpoint GET /contact-flow-modules-summary/{InstanceId}
@required {InstanceId: str}
@optional {nextToken: str, maxResults: int, state: str}
@returns(200) {ContactFlowModulesSummaryList: [ContactFlowModuleSummary]?, NextToken: str?}

@endgroup

@group contact-flows-summary
@endpoint GET /contact-flows-summary/{InstanceId}
@required {InstanceId: str}
@optional {contactFlowTypes: [str], nextToken: str, maxResults: int}
@returns(200) {ContactFlowSummaryList: [ContactFlowSummary]?, NextToken: str?}

@endgroup

@group contact
@endpoint GET /contact/references/{InstanceId}/{ContactId}
@required {InstanceId: str, ContactId: str, referenceTypes: [str]}
@optional {nextToken: str}
@returns(200) {ReferenceSummaryList: [ReferenceSummary]?, NextToken: str?}

@endgroup

@group default-vocabulary-summary
@endpoint POST /default-vocabulary-summary/{InstanceId}
@required {InstanceId: str}
@optional {LanguageCode: str, MaxResults: int, NextToken: str}
@returns(200) {DefaultVocabularyList: [DefaultVocabulary], NextToken: str?}

@endgroup

@group evaluation-forms
@endpoint GET /evaluation-forms/{InstanceId}/{EvaluationFormId}/versions
@required {InstanceId: str, EvaluationFormId: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {EvaluationFormVersionSummaryList: [EvaluationFormVersionSummary], NextToken: str?}

@endpoint GET /evaluation-forms/{InstanceId}
@required {InstanceId: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {EvaluationFormSummaryList: [EvaluationFormSummary], NextToken: str?}

@endgroup

@group flow-associations-summary
@endpoint GET /flow-associations-summary/{InstanceId}
@required {InstanceId: str}
@optional {ResourceType: str, nextToken: str, maxResults: int}
@returns(200) {FlowAssociationSummaryList: [FlowAssociationSummary]?, NextToken: str?}

@endgroup

@group hours-of-operations-summary
@endpoint GET /hours-of-operations-summary/{InstanceId}
@required {InstanceId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {HoursOfOperationSummaryList: [HoursOfOperationSummary]?, NextToken: str?}

@endgroup

@group instance
@endpoint GET /instance/{InstanceId}/attributes
@required {InstanceId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {Attributes: [Attribute]?, NextToken: str?}

@endpoint GET /instance/{InstanceId}/storage-configs
@required {InstanceId: str, resourceType: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {StorageConfigs: [InstanceStorageConfig]?, NextToken: str?}

@endpoint GET /instance
@optional {nextToken: str, maxResults: int}
@returns(200) {InstanceSummaryList: [InstanceSummary]?, NextToken: str?}

@endpoint GET /instance/{InstanceId}/integration-associations
@required {InstanceId: str}
@optional {integrationType: str, nextToken: str, maxResults: int, integrationArn: str}
@returns(200) {IntegrationAssociationSummaryList: [IntegrationAssociationSummary]?, NextToken: str?}

@endpoint GET /instance/{InstanceId}/lambda-functions
@required {InstanceId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {LambdaFunctions: [str]?, NextToken: str?}

@endpoint GET /instance/{InstanceId}/lex-bots
@required {InstanceId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {LexBots: [LexBot]?, NextToken: str?}

@endgroup

@group phone-numbers-summary
@endpoint GET /phone-numbers-summary/{InstanceId}
@required {InstanceId: str}
@optional {phoneNumberTypes: [str], phoneNumberCountryCodes: [str], nextToken: str, maxResults: int}
@returns(200) {PhoneNumberSummaryList: [PhoneNumberSummary]?, NextToken: str?}

@endgroup

@group phone-number
@endpoint POST /phone-number/list
@optional {TargetArn: str, InstanceId: str, MaxResults: int, NextToken: str, PhoneNumberCountryCodes: [str], PhoneNumberTypes: [str], PhoneNumberPrefix: str}
@returns(200) {NextToken: str?, ListPhoneNumbersSummaryList: [ListPhoneNumbersSummary]?}

@endgroup

@group predefined-attributes
@endpoint GET /predefined-attributes/{InstanceId}
@required {InstanceId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {NextToken: str?, PredefinedAttributeSummaryList: [PredefinedAttributeSummary]?}

@endgroup

@group prompts-summary
@endpoint GET /prompts-summary/{InstanceId}
@required {InstanceId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {PromptSummaryList: [PromptSummary]?, NextToken: str?}

@endgroup

@group queues
@endpoint GET /queues/{InstanceId}/{QueueId}/quick-connects
@required {InstanceId: str, QueueId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {NextToken: str?, QuickConnectSummaryList: [QuickConnectSummary]?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}

@endgroup

@group queues-summary
@endpoint GET /queues-summary/{InstanceId}
@required {InstanceId: str}
@optional {queueTypes: [str], nextToken: str, maxResults: int}
@returns(200) {QueueSummaryList: [QueueSummary]?, NextToken: str?}

@endgroup

@group quick-connects
@endpoint GET /quick-connects/{InstanceId}
@required {InstanceId: str}
@optional {nextToken: str, maxResults: int, QuickConnectTypes: [str]}
@returns(200) {QuickConnectSummaryList: [QuickConnectSummary]?, NextToken: str?}

@endgroup

@group contact
@endpoint POST /contact/list-real-time-analysis-segments-v2/{InstanceId}/{ContactId}
@required {InstanceId: str, ContactId: str, OutputType: str, SegmentTypes: [str]}
@optional {MaxResults: int, NextToken: str}
@returns(200) {Channel: str, Status: str, Segments: [RealtimeContactAnalysisSegment], NextToken: str?}

@endgroup

@group routing-profiles
@endpoint GET /routing-profiles/{InstanceId}/{RoutingProfileId}/queues
@required {InstanceId: str, RoutingProfileId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {NextToken: str?, RoutingProfileQueueConfigSummaryList: [RoutingProfileQueueConfigSummary]?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}

@endgroup

@group routing-profiles-summary
@endpoint GET /routing-profiles-summary/{InstanceId}
@required {InstanceId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {RoutingProfileSummaryList: [RoutingProfileSummary]?, NextToken: str?}

@endgroup

@group rules
@endpoint GET /rules/{InstanceId}
@required {InstanceId: str}
@optional {publishStatus: str, eventSourceName: str, maxResults: int, nextToken: str}
@returns(200) {RuleSummaryList: [RuleSummary], NextToken: str?}

@endgroup

@group instance
@endpoint GET /instance/{InstanceId}/security-keys
@required {InstanceId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {SecurityKeys: [SecurityKey]?, NextToken: str?}

@endgroup

@group security-profiles-applications
@endpoint GET /security-profiles-applications/{InstanceId}/{SecurityProfileId}
@required {SecurityProfileId: str, InstanceId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {Applications: [Application]?, NextToken: str?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}

@endgroup

@group security-profiles-permissions
@endpoint GET /security-profiles-permissions/{InstanceId}/{SecurityProfileId}
@required {SecurityProfileId: str, InstanceId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {Permissions: [str]?, NextToken: str?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}

@endgroup

@group security-profiles-summary
@endpoint GET /security-profiles-summary/{InstanceId}
@required {InstanceId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {SecurityProfileSummaryList: [SecurityProfileSummary]?, NextToken: str?}

@endgroup

@group tags
@endpoint GET /tags/{resourceArn}
@required {resourceArn: str}
@returns(200) {tags: map<str,str>?}

@endgroup

@group instance
@endpoint GET /instance/{InstanceId}/task/template
@required {InstanceId: str}
@optional {nextToken: str, maxResults: int, status: str, name: str}
@returns(200) {TaskTemplates: [TaskTemplateMetadata]?, NextToken: str?}

@endgroup

@group traffic-distribution-group
@endpoint GET /traffic-distribution-group/{TrafficDistributionGroupId}/user
@required {TrafficDistributionGroupId: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {NextToken: str?, TrafficDistributionGroupUserSummaryList: [TrafficDistributionGroupUserSummary]?}

@endgroup

@group traffic-distribution-groups
@endpoint GET /traffic-distribution-groups
@optional {maxResults: int, nextToken: str, instanceId: str}
@returns(200) {NextToken: str?, TrafficDistributionGroupSummaryList: [TrafficDistributionGroupSummary]?}

@endgroup

@group instance
@endpoint GET /instance/{InstanceId}/integration-associations/{IntegrationAssociationId}/use-cases
@required {InstanceId: str, IntegrationAssociationId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {UseCaseSummaryList: [UseCase]?, NextToken: str?}

@endgroup

@group user-hierarchy-groups-summary
@endpoint GET /user-hierarchy-groups-summary/{InstanceId}
@required {InstanceId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {UserHierarchyGroupSummaryList: [HierarchyGroupSummary]?, NextToken: str?}

@endgroup

@group users
@endpoint GET /users/{InstanceId}/{UserId}/proficiencies
@required {InstanceId: str, UserId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {NextToken: str?, UserProficiencyList: [UserProficiency]?, LastModifiedTime: str(timestamp)?, LastModifiedRegion: str?}

@endgroup

@group users-summary
@endpoint GET /users-summary/{InstanceId}
@required {InstanceId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {UserSummaryList: [UserSummary]?, NextToken: str?}

@endgroup

@group views
@endpoint GET /views/{InstanceId}/{ViewId}/versions
@required {InstanceId: str, ViewId: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {ViewVersionSummaryList: [ViewVersionSummary]?, NextToken: str?}

@endpoint GET /views/{InstanceId}
@required {InstanceId: str}
@optional {type: str, nextToken: str, maxResults: int}
@returns(200) {ViewsSummaryList: [ViewSummary]?, NextToken: str?}

@endgroup

@group contact
@endpoint POST /contact/monitor
@required {InstanceId: str, ContactId: str, UserId: str}
@optional {AllowedMonitorCapabilities: [str], ClientToken: str}
@returns(200) {ContactId: str?, ContactArn: str?}

@endpoint POST /contact/pause
@required {ContactId: str, InstanceId: str}
@optional {ContactFlowId: str}

@endgroup

@group users
@endpoint PUT /users/{InstanceId}/{UserId}/status
@required {UserId: str, InstanceId: str, AgentStatusId: str}

@endgroup

@group phone-number
@endpoint DELETE /phone-number/{PhoneNumberId}
@required {PhoneNumberId: str}
@optional {clientToken: str}

@endgroup

@group instance
@endpoint POST /instance/{InstanceId}/replicate
@required {InstanceId: str, ReplicaRegion: str, ReplicaAlias: str}
@optional {ClientToken: str}
@returns(200) {Id: str?, Arn: str?}

@endgroup

@group contact
@endpoint POST /contact/resume
@required {ContactId: str, InstanceId: str}
@optional {ContactFlowId: str}

@endpoint POST /contact/resume-recording
@required {InstanceId: str, ContactId: str, InitialContactId: str}

@endgroup

@group search-agent-statuses
@endpoint POST /search-agent-statuses
@required {InstanceId: str}
@optional {NextToken: str, MaxResults: int, SearchFilter: AgentStatusSearchFilter, SearchCriteria: AgentStatusSearchCriteria}
@returns(200) {AgentStatuses: [AgentStatus]?, NextToken: str?, ApproximateTotalCount: int(i64)?}

@endgroup

@group phone-number
@endpoint POST /phone-number/search-available
@required {PhoneNumberCountryCode: str, PhoneNumberType: str}
@optional {TargetArn: str, InstanceId: str, PhoneNumberPrefix: str, MaxResults: int, NextToken: str}
@returns(200) {NextToken: str?, AvailableNumbersList: [AvailableNumberSummary]?}

@endgroup

@group search-contact-flow-modules
@endpoint POST /search-contact-flow-modules
@required {InstanceId: str}
@optional {NextToken: str, MaxResults: int, SearchFilter: ContactFlowModuleSearchFilter, SearchCriteria: ContactFlowModuleSearchCriteria}
@returns(200) {ContactFlowModules: [ContactFlowModule]?, NextToken: str?, ApproximateTotalCount: int(i64)?}

@endgroup

@group search-contact-flows
@endpoint POST /search-contact-flows
@required {InstanceId: str}
@optional {NextToken: str, MaxResults: int, SearchFilter: ContactFlowSearchFilter, SearchCriteria: ContactFlowSearchCriteria}
@returns(200) {ContactFlows: [ContactFlow]?, NextToken: str?, ApproximateTotalCount: int(i64)?}

@endgroup

@group search-contacts
@endpoint POST /search-contacts
@required {InstanceId: str, TimeRange: SearchContactsTimeRange}
@optional {SearchCriteria: SearchCriteria, MaxResults: int, NextToken: str, Sort: Sort}
@returns(200) {Contacts: [ContactSearchSummary], NextToken: str?, TotalCount: int(i64)?}

@endgroup

@group search-hours-of-operations
@endpoint POST /search-hours-of-operations
@required {InstanceId: str}
@optional {NextToken: str, MaxResults: int, SearchFilter: HoursOfOperationSearchFilter, SearchCriteria: HoursOfOperationSearchCriteria}
@returns(200) {HoursOfOperations: [HoursOfOperation]?, NextToken: str?, ApproximateTotalCount: int(i64)?}

@endgroup

@group search-predefined-attributes
@endpoint POST /search-predefined-attributes
@required {InstanceId: str}
@optional {NextToken: str, MaxResults: int, SearchCriteria: PredefinedAttributeSearchCriteria}
@returns(200) {PredefinedAttributes: [PredefinedAttribute]?, NextToken: str?, ApproximateTotalCount: int(i64)?}

@endgroup

@group search-prompts
@endpoint POST /search-prompts
@required {InstanceId: str}
@optional {NextToken: str, MaxResults: int, SearchFilter: PromptSearchFilter, SearchCriteria: PromptSearchCriteria}
@returns(200) {Prompts: [Prompt]?, NextToken: str?, ApproximateTotalCount: int(i64)?}

@endgroup

@group search-queues
@endpoint POST /search-queues
@required {InstanceId: str}
@optional {NextToken: str, MaxResults: int, SearchFilter: QueueSearchFilter, SearchCriteria: QueueSearchCriteria}
@returns(200) {Queues: [Queue]?, NextToken: str?, ApproximateTotalCount: int(i64)?}

@endgroup

@group search-quick-connects
@endpoint POST /search-quick-connects
@required {InstanceId: str}
@optional {NextToken: str, MaxResults: int, SearchFilter: QuickConnectSearchFilter, SearchCriteria: QuickConnectSearchCriteria}
@returns(200) {QuickConnects: [QuickConnect]?, NextToken: str?, ApproximateTotalCount: int(i64)?}

@endgroup

@group search-resource-tags
@endpoint POST /search-resource-tags
@required {InstanceId: str}
@optional {ResourceTypes: [str], NextToken: str, MaxResults: int, SearchCriteria: ResourceTagsSearchCriteria}
@returns(200) {Tags: [TagSet]?, NextToken: str?}

@endgroup

@group search-routing-profiles
@endpoint POST /search-routing-profiles
@required {InstanceId: str}
@optional {NextToken: str, MaxResults: int, SearchFilter: RoutingProfileSearchFilter, SearchCriteria: RoutingProfileSearchCriteria}
@returns(200) {RoutingProfiles: [RoutingProfile]?, NextToken: str?, ApproximateTotalCount: int(i64)?}

@endgroup

@group search-security-profiles
@endpoint POST /search-security-profiles
@required {InstanceId: str}
@optional {NextToken: str, MaxResults: int, SearchCriteria: SecurityProfileSearchCriteria, SearchFilter: SecurityProfilesSearchFilter}
@returns(200) {SecurityProfiles: [SecurityProfileSearchSummary]?, NextToken: str?, ApproximateTotalCount: int(i64)?}

@endgroup

@group search-user-hierarchy-groups
@endpoint POST /search-user-hierarchy-groups
@required {InstanceId: str}
@optional {NextToken: str, MaxResults: int, SearchFilter: UserHierarchyGroupSearchFilter, SearchCriteria: UserHierarchyGroupSearchCriteria}
@returns(200) {UserHierarchyGroups: [HierarchyGroup]?, NextToken: str?, ApproximateTotalCount: int(i64)?}

@endgroup

@group search-users
@endpoint POST /search-users
@required {InstanceId: str}
@optional {NextToken: str, MaxResults: int, SearchFilter: UserSearchFilter, SearchCriteria: UserSearchCriteria}
@returns(200) {Users: [UserSearchSummary]?, NextToken: str?, ApproximateTotalCount: int(i64)?}

@endgroup

@group vocabulary-summary
@endpoint POST /vocabulary-summary/{InstanceId}
@required {InstanceId: str}
@optional {MaxResults: int, NextToken: str, State: str, NameStartsWith: str, LanguageCode: str}
@returns(200) {VocabularySummaryList: [VocabularySummary]?, NextToken: str?}

@endgroup

@group chat-integration-event
@endpoint POST /chat-integration-event
@required {SourceId: str, DestinationId: str, Event: ChatEvent}
@optional {Subtype: str, NewSessionDetails: NewSessionDetails}
@returns(200) {InitialContactId: str?, NewChatCreated: bool?}

@endgroup

@group attached-files
@endpoint PUT /attached-files/{InstanceId}
@required {InstanceId: str, associatedResourceArn: str, FileName: str, FileSizeInBytes: int(i64), FileUseCaseType: str}
@optional {ClientToken: str, UrlExpiryInSeconds: int, CreatedBy: CreatedByInfo, Tags: map<str,str>}
@returns(200) {FileArn: str?, FileId: str?, CreationTime: str?, FileStatus: str?, CreatedBy: CreatedByInfo?{ConnectUserArn: str?, AWSIdentityArn: str?}, UploadUrlMetadata: UploadUrlMetadata?{Url: str?, UrlExpiry: str?, HeadersToInclude: map<str,str>?}}

@endgroup

@group contact
@endpoint PUT /contact/chat
@required {InstanceId: str, ContactFlowId: str, ParticipantDetails: ParticipantDetails}
@optional {Attributes: map<str,str>, InitialMessage: ChatMessage, ClientToken: str, ChatDurationInMinutes: int, SupportedMessagingContentTypes: [str], PersistentChat: PersistentChat, RelatedContactId: str, SegmentAttributes: map<str,SegmentAttributeValue>}
@returns(200) {ContactId: str?, ParticipantId: str?, ParticipantToken: str?, ContinuedFromContactId: str?}

@endgroup

@group contact-evaluations
@endpoint PUT /contact-evaluations/{InstanceId}
@required {InstanceId: str, ContactId: str, EvaluationFormId: str}
@optional {ClientToken: str}
@returns(200) {EvaluationId: str, EvaluationArn: str}

@endgroup

@group contact
@endpoint POST /contact/start-recording
@required {InstanceId: str, ContactId: str, InitialContactId: str, VoiceRecordingConfiguration: VoiceRecordingConfiguration}

@endpoint POST /contact/start-streaming
@required {InstanceId: str, ContactId: str, ChatStreamingConfiguration: ChatStreamingConfiguration, ClientToken: str}
@returns(200) {StreamingId: str}

@endpoint PUT /contact/outbound-voice
@required {DestinationPhoneNumber: str, ContactFlowId: str, InstanceId: str}
@optional {Name: str, Description: str, References: map<str,Reference>, RelatedContactId: str, ClientToken: str, SourcePhoneNumber: str, QueueId: str, Attributes: map<str,str>, AnswerMachineDetectionConfig: AnswerMachineDetectionConfig, CampaignId: str, TrafficType: str}
@returns(200) {ContactId: str?}

@endpoint PUT /contact/task
@required {InstanceId: str, Name: str}
@optional {PreviousContactId: str, ContactFlowId: str, Attributes: map<str,str>, References: map<str,Reference>, Description: str, ClientToken: str, ScheduledTime: str(timestamp), TaskTemplateId: str, QuickConnectId: str, RelatedContactId: str}
@returns(200) {ContactId: str?}

@endpoint PUT /contact/webrtc
@required {ContactFlowId: str, InstanceId: str, ParticipantDetails: ParticipantDetails}
@optional {Attributes: map<str,str>, ClientToken: str, AllowedCapabilities: AllowedCapabilities, RelatedContactId: str, References: map<str,Reference>, Description: str}
@returns(200) {ConnectionData: ConnectionData?{Attendee: Attendee?{AttendeeId: str?, JoinToken: str?}, Meeting: Meeting?{MediaRegion: str?, MediaPlacement: MediaPlacement?{AudioHostUrl: str?, AudioFallbackUrl: str?, SignalingUrl: str?, TurnControlUrl: str?, EventIngestionUrl: str?}, MeetingFeatures: MeetingFeaturesConfiguration?{Audio: AudioFeatures?}, MeetingId: str?}}, ContactId: str?, ParticipantId: str?, ParticipantToken: str?}

@endpoint POST /contact/stop
@required {ContactId: str, InstanceId: str}
@optional {DisconnectReason: DisconnectReason}

@endpoint POST /contact/stop-recording
@required {InstanceId: str, ContactId: str, InitialContactId: str}

@endpoint POST /contact/stop-streaming
@required {InstanceId: str, ContactId: str, StreamingId: str}

@endgroup

@group contact-evaluations
@endpoint POST /contact-evaluations/{InstanceId}/{EvaluationId}/submit
@required {InstanceId: str, EvaluationId: str}
@optional {Answers: map<str,EvaluationAnswerInput>, Notes: map<str,EvaluationNote>}
@returns(200) {EvaluationId: str, EvaluationArn: str}

@endgroup

@group contact
@endpoint POST /contact/suspend-recording
@required {InstanceId: str, ContactId: str, InitialContactId: str}

@endpoint POST /contact/tags
@required {ContactId: str, InstanceId: str, Tags: map<str,str>}

@endgroup

@group tags
@endpoint POST /tags/{resourceArn}
@required {resourceArn: str, tags: map<str,str>}

@endgroup

@group contact
@endpoint POST /contact/transfer
@required {InstanceId: str, ContactId: str, ContactFlowId: str}
@optional {QueueId: str, UserId: str, ClientToken: str}
@returns(200) {ContactId: str?, ContactArn: str?}

@endpoint DELETE /contact/tags/{InstanceId}/{ContactId}
@required {ContactId: str, InstanceId: str, TagKeys: [str]}

@endgroup

@group tags
@endpoint DELETE /tags/{resourceArn}
@required {resourceArn: str, tagKeys: [str]}

@endgroup

@group agent-status
@endpoint POST /agent-status/{InstanceId}/{AgentStatusId}
@required {InstanceId: str, AgentStatusId: str}
@optional {Name: str, Description: str, State: str, DisplayOrder: int, ResetOrderNumber: bool}

@endgroup

@group authentication-profiles
@endpoint POST /authentication-profiles/{InstanceId}/{AuthenticationProfileId}
@required {AuthenticationProfileId: str, InstanceId: str}
@optional {Name: str, Description: str, AllowedIps: [str], BlockedIps: [str], PeriodicSessionDuration: int}

@endgroup

@group contacts
@endpoint POST /contacts/{InstanceId}/{ContactId}
@required {InstanceId: str, ContactId: str}
@optional {Name: str, Description: str, References: map<str,Reference>}

@endgroup

@group contact
@endpoint POST /contact/attributes
@required {InitialContactId: str, InstanceId: str, Attributes: map<str,str>}

@endgroup

@group contact-evaluations
@endpoint POST /contact-evaluations/{InstanceId}/{EvaluationId}
@required {InstanceId: str, EvaluationId: str}
@optional {Answers: map<str,EvaluationAnswerInput>, Notes: map<str,EvaluationNote>}
@returns(200) {EvaluationId: str, EvaluationArn: str}

@endgroup

@group contact-flows
@endpoint POST /contact-flows/{InstanceId}/{ContactFlowId}/content
@required {InstanceId: str, ContactFlowId: str, Content: str}

@endpoint POST /contact-flows/{InstanceId}/{ContactFlowId}/metadata
@required {InstanceId: str, ContactFlowId: str}
@optional {Name: str, Description: str, ContactFlowState: str}

@endgroup

@group contact-flow-modules
@endpoint POST /contact-flow-modules/{InstanceId}/{ContactFlowModuleId}/content
@required {InstanceId: str, ContactFlowModuleId: str, Content: str}

@endpoint POST /contact-flow-modules/{InstanceId}/{ContactFlowModuleId}/metadata
@required {InstanceId: str, ContactFlowModuleId: str}
@optional {Name: str, Description: str, State: str}

@endgroup

@group contact-flows
@endpoint POST /contact-flows/{InstanceId}/{ContactFlowId}/name
@required {InstanceId: str, ContactFlowId: str}
@optional {Name: str, Description: str}

@endgroup

@group contacts
@endpoint POST /contacts/{InstanceId}/{ContactId}/routing-data
@required {InstanceId: str, ContactId: str}
@optional {QueueTimeAdjustmentSeconds: int, QueuePriority: int(i64), RoutingCriteria: RoutingCriteriaInput}

@endgroup

@group contact
@endpoint POST /contact/schedule
@required {InstanceId: str, ContactId: str, ScheduledTime: str(timestamp)}

@endgroup

@group evaluation-forms
@endpoint PUT /evaluation-forms/{InstanceId}/{EvaluationFormId}
@required {InstanceId: str, EvaluationFormId: str, EvaluationFormVersion: int, Title: str, Items: [EvaluationFormItem]}
@optional {CreateNewVersion: bool, Description: str, ScoringStrategy: EvaluationFormScoringStrategy, ClientToken: str}
@returns(200) {EvaluationFormId: str, EvaluationFormArn: str, EvaluationFormVersion: int}

@endgroup

@group hours-of-operations
@endpoint POST /hours-of-operations/{InstanceId}/{HoursOfOperationId}
@required {InstanceId: str, HoursOfOperationId: str}
@optional {Name: str, Description: str, TimeZone: str, Config: [HoursOfOperationConfig]}

@endgroup

@group instance
@endpoint POST /instance/{InstanceId}/attribute/{AttributeType}
@required {InstanceId: str, AttributeType: str, Value: str}

@endpoint POST /instance/{InstanceId}/storage-config/{AssociationId}
@required {InstanceId: str, AssociationId: str, resourceType: str, StorageConfig: InstanceStorageConfig}

@endgroup

@group contact
@endpoint PUT /contact/participant-role-config/{InstanceId}/{ContactId}
@required {InstanceId: str, ContactId: str, ChannelConfiguration: UpdateParticipantRoleConfigChannelInfo}

@endgroup

@group phone-number
@endpoint PUT /phone-number/{PhoneNumberId}
@required {PhoneNumberId: str}
@optional {TargetArn: str, InstanceId: str, ClientToken: str}
@returns(200) {PhoneNumberId: str?, PhoneNumberArn: str?}

@endpoint PUT /phone-number/{PhoneNumberId}/metadata
@required {PhoneNumberId: str}
@optional {PhoneNumberDescription: str, ClientToken: str}

@endgroup

@group predefined-attributes
@endpoint POST /predefined-attributes/{InstanceId}/{Name}
@required {InstanceId: str, Name: str}
@optional {Values: PredefinedAttributeValues}

@endgroup

@group prompts
@endpoint POST /prompts/{InstanceId}/{PromptId}
@required {InstanceId: str, PromptId: str}
@optional {Name: str, Description: str, S3Uri: str}
@returns(200) {PromptARN: str?, PromptId: str?}

@endgroup

@group queues
@endpoint POST /queues/{InstanceId}/{QueueId}/hours-of-operation
@required {InstanceId: str, QueueId: str, HoursOfOperationId: str}

@endpoint POST /queues/{InstanceId}/{QueueId}/max-contacts
@required {InstanceId: str, QueueId: str}
@optional {MaxContacts: int}

@endpoint POST /queues/{InstanceId}/{QueueId}/name
@required {InstanceId: str, QueueId: str}
@optional {Name: str, Description: str}

@endpoint POST /queues/{InstanceId}/{QueueId}/outbound-caller-config
@required {InstanceId: str, QueueId: str, OutboundCallerConfig: OutboundCallerConfig}

@endpoint POST /queues/{InstanceId}/{QueueId}/status
@required {InstanceId: str, QueueId: str, Status: str}

@endgroup

@group quick-connects
@endpoint POST /quick-connects/{InstanceId}/{QuickConnectId}/config
@required {InstanceId: str, QuickConnectId: str, QuickConnectConfig: QuickConnectConfig}

@endpoint POST /quick-connects/{InstanceId}/{QuickConnectId}/name
@required {InstanceId: str, QuickConnectId: str}
@optional {Name: str, Description: str}

@endgroup

@group routing-profiles
@endpoint POST /routing-profiles/{InstanceId}/{RoutingProfileId}/agent-availability-timer
@required {InstanceId: str, RoutingProfileId: str, AgentAvailabilityTimer: str}

@endpoint POST /routing-profiles/{InstanceId}/{RoutingProfileId}/concurrency
@required {InstanceId: str, RoutingProfileId: str, MediaConcurrencies: [MediaConcurrency]}

@endpoint POST /routing-profiles/{InstanceId}/{RoutingProfileId}/default-outbound-queue
@required {InstanceId: str, RoutingProfileId: str, DefaultOutboundQueueId: str}

@endpoint POST /routing-profiles/{InstanceId}/{RoutingProfileId}/name
@required {InstanceId: str, RoutingProfileId: str}
@optional {Name: str, Description: str}

@endpoint POST /routing-profiles/{InstanceId}/{RoutingProfileId}/queues
@required {InstanceId: str, RoutingProfileId: str, QueueConfigs: [RoutingProfileQueueConfig]}

@endgroup

@group rules
@endpoint PUT /rules/{InstanceId}/{RuleId}
@required {RuleId: str, InstanceId: str, Name: str, Function: str, Actions: [RuleAction], PublishStatus: str}

@endgroup

@group security-profiles
@endpoint POST /security-profiles/{InstanceId}/{SecurityProfileId}
@required {SecurityProfileId: str, InstanceId: str}
@optional {Description: str, Permissions: [str], AllowedAccessControlTags: map<str,str>, TagRestrictedResources: [str], Applications: [Application], HierarchyRestrictedResources: [str], AllowedAccessControlHierarchyGroupId: str}

@endgroup

@group instance
@endpoint POST /instance/{InstanceId}/task/template/{TaskTemplateId}
@required {TaskTemplateId: str, InstanceId: str}
@optional {Name: str, Description: str, ContactFlowId: str, Constraints: TaskTemplateConstraints, Defaults: TaskTemplateDefaults, Status: str, Fields: [TaskTemplateField]}
@returns(200) {InstanceId: str?, Id: str?, Arn: str?, Name: str?, Description: str?, ContactFlowId: str?, Constraints: TaskTemplateConstraints?{RequiredFields: [RequiredFieldInfo]?, ReadOnlyFields: [ReadOnlyFieldInfo]?, InvisibleFields: [InvisibleFieldInfo]?}, Defaults: TaskTemplateDefaults?{DefaultFieldValues: [TaskTemplateDefaultFieldValue]?}, Fields: [TaskTemplateField]?, Status: str?, LastModifiedTime: str(timestamp)?, CreatedTime: str(timestamp)?}

@endgroup

@group traffic-distribution
@endpoint PUT /traffic-distribution/{Id}
@required {Id: str}
@optional {TelephonyConfig: TelephonyConfig, SignInConfig: SignInConfig, AgentConfig: AgentConfig}

@endgroup

@group users
@endpoint POST /users/{InstanceId}/{UserId}/hierarchy
@required {UserId: str, InstanceId: str}
@optional {HierarchyGroupId: str}

@endgroup

@group user-hierarchy-groups
@endpoint POST /user-hierarchy-groups/{InstanceId}/{HierarchyGroupId}/name
@required {HierarchyGroupId: str, InstanceId: str, Name: str}

@endgroup

@group user-hierarchy-structure
@endpoint POST /user-hierarchy-structure/{InstanceId}
@required {InstanceId: str, HierarchyStructure: HierarchyStructureUpdate}

@endgroup

@group users
@endpoint POST /users/{InstanceId}/{UserId}/identity-info
@required {UserId: str, InstanceId: str, IdentityInfo: UserIdentityInfo}

@endpoint POST /users/{InstanceId}/{UserId}/phone-config
@required {UserId: str, InstanceId: str, PhoneConfig: UserPhoneConfig}

@endpoint POST /users/{InstanceId}/{UserId}/proficiencies
@required {InstanceId: str, UserId: str, UserProficiencies: [UserProficiency]}

@endpoint POST /users/{InstanceId}/{UserId}/routing-profile
@required {UserId: str, InstanceId: str, RoutingProfileId: str}

@endpoint POST /users/{InstanceId}/{UserId}/security-profiles
@required {UserId: str, InstanceId: str, SecurityProfileIds: [str]}

@endgroup

@group views
@endpoint POST /views/{InstanceId}/{ViewId}
@required {InstanceId: str, ViewId: str, Status: str, Content: ViewInputContent}
@returns(200) {View: View?{Id: str?, Arn: str?, Name: str?, Status: str?, Type: str?, Description: str?, Version: int?, VersionDescription: str?, Content: ViewContent?{InputSchema: str?, Template: str?, Actions: [str]?}, Tags: map<str,str>?, CreatedTime: str(timestamp)?, LastModifiedTime: str(timestamp)?, ViewContentSha256: str?}}

@endpoint POST /views/{InstanceId}/{ViewId}/metadata
@required {InstanceId: str, ViewId: str}
@optional {Name: str, Description: str}

@endgroup

@end
