ActivateEvaluationForm

valid {
    input.Body.EvaluationFormVersion == INTEGER
    input.ReqMap.InstanceId == STRING
    input.ReqMap.EvaluationFormId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateAnalyticsDataSet

valid {
    input.Body.DataSetId == STRING
    input.Body.TargetAccountId == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateApprovedOrigin

valid {
    input.Body.Origin == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateBot

valid {
    input.Body.LexBot.Name == STRING
    input.Body.LexBot.LexRegion == STRING
    input.Body.LexV2Bot.AliasArn == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateDefaultVocabulary

enum_VocabularyLanguageCode := [ "ar-AE", "de-CH", "de-DE", "en-AB", "en-AU", "en-GB", "en-IE", "en-IN", "en-US", "en-WL", "es-ES", "es-US", "fr-CA", "fr-FR", "hi-IN", "it-IT", "ja-JP", "ko-KR", "pt-BR", "pt-PT", "zh-CN", "en-NZ", "en-ZA", "ca-ES", "da-DK", "fi-FI", "id-ID", "ms-MY", "nl-NL", "no-NO", "pl-PL", "sv-SE", "tl-PH" ]

valid {
    input.Body.VocabularyId == STRING
    input.ReqMap.InstanceId == STRING
    input.ReqMap.LanguageCode == enum_VocabularyLanguageCode[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateFlow

enum_FlowAssociationResourceType := [ "SMS_PHONE_NUMBER", "INBOUND_EMAIL", "OUTBOUND_EMAIL", "ANALYTICS_CONNECTOR", "WHATSAPP_MESSAGING_PHONE_NUMBER" ]

valid {
    input.Body.ResourceId == STRING
    input.Body.FlowId == STRING
    input.Body.ResourceType == enum_FlowAssociationResourceType[_]
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateInstanceStorageConfig

enum_EncryptionType := [ "KMS" ]
enum_InstanceStorageResourceType := [ "CHAT_TRANSCRIPTS", "CALL_RECORDINGS", "SCHEDULED_REPORTS", "MEDIA_STREAMS", "CONTACT_TRACE_RECORDS", "AGENT_EVENTS", "REAL_TIME_CONTACT_ANALYSIS_SEGMENTS", "ATTACHMENTS", "CONTACT_EVALUATIONS", "SCREEN_RECORDINGS", "REAL_TIME_CONTACT_ANALYSIS_CHAT_SEGMENTS", "REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS", "EMAIL_MESSAGES" ]
enum_StorageType := [ "S3", "KINESIS_VIDEO_STREAM", "KINESIS_STREAM", "KINESIS_FIREHOSE" ]

valid {
    input.Body.ResourceType == enum_InstanceStorageResourceType[_]
    input.Body.StorageConfig.AssociationId == STRING
    input.Body.StorageConfig.StorageType == enum_StorageType[_]
    input.Body.StorageConfig.S3Config.BucketName == STRING
    input.Body.StorageConfig.S3Config.BucketPrefix == STRING
    input.Body.StorageConfig.S3Config.EncryptionConfig.EncryptionType == enum_EncryptionType[_]
    input.Body.StorageConfig.S3Config.EncryptionConfig.KeyId == STRING
    input.Body.StorageConfig.KinesisVideoStreamConfig.Prefix == STRING
    input.Body.StorageConfig.KinesisVideoStreamConfig.RetentionPeriodHours == INTEGER
    input.Body.StorageConfig.KinesisVideoStreamConfig.EncryptionConfig.EncryptionType == enum_EncryptionType[_]
    input.Body.StorageConfig.KinesisVideoStreamConfig.EncryptionConfig.KeyId == STRING
    input.Body.StorageConfig.KinesisStreamConfig.StreamArn == STRING
    input.Body.StorageConfig.KinesisFirehoseConfig.FirehoseArn == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateLambdaFunction

valid {
    input.Body.FunctionArn == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateLexBot

valid {
    input.Body.LexBot.Name == STRING
    input.Body.LexBot.LexRegion == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociatePhoneNumberContactFlow

valid {
    input.Body.InstanceId == STRING
    input.Body.ContactFlowId == STRING
    input.ReqMap.PhoneNumberId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateQueueQuickConnects

valid {
    input.Body.QuickConnectIds[_] == STRING
    input.ReqMap.InstanceId == STRING
    input.ReqMap.QueueId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateRoutingProfileQueues

enum_Channel := [ "VOICE", "CHAT", "TASK", "EMAIL" ]

valid {
    input.Body.QueueConfigs[_].QueueReference.QueueId == STRING
    input.Body.QueueConfigs[_].QueueReference.Channel == enum_Channel[_]
    input.Body.QueueConfigs[_].Priority == INTEGER
    input.Body.QueueConfigs[_].Delay == INTEGER
    input.ReqMap.InstanceId == STRING
    input.ReqMap.RoutingProfileId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateSecurityKey

valid {
    input.Body.Key == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateTrafficDistributionGroupUser

valid {
    input.Body.UserId == STRING
    input.Body.InstanceId == STRING
    input.ReqMap.TrafficDistributionGroupId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateUserProficiencies

valid {
    input.Body.UserProficiencies[_].AttributeName == STRING
    input.Body.UserProficiencies[_].AttributeValue == STRING
    input.Body.UserProficiencies[_].Level == FLOAT
    input.ReqMap.InstanceId == STRING
    input.ReqMap.UserId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchAssociateAnalyticsDataSet

valid {
    input.Body.DataSetIds[_] == STRING
    input.Body.TargetAccountId == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchDisassociateAnalyticsDataSet

valid {
    input.Body.DataSetIds[_] == STRING
    input.Body.TargetAccountId == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchGetAttachedFileMetadata

valid {
    input.Body.FileIds[_] == STRING
    input.ReqMap.InstanceId == STRING
    input.Qs.associatedResourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchGetFlowAssociation

enum_ListFlowAssociationResourceType := [ "WHATSAPP_MESSAGING_PHONE_NUMBER", "VOICE_PHONE_NUMBER", "INBOUND_EMAIL", "OUTBOUND_EMAIL", "ANALYTICS_CONNECTOR" ]

valid {
    input.Body.ResourceIds[_] == STRING
    input.Body.ResourceType == enum_ListFlowAssociationResourceType[_]
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchPutContact

enum_EndpointType := [ "TELEPHONE_NUMBER", "VOIP", "CONTACT_FLOW", "CONNECT_PHONENUMBER_ARN", "EMAIL_ADDRESS" ]

valid {
    input.Body.ClientToken == STRING
    input.Body.ContactDataRequestList[_].SystemEndpoint.Type == enum_EndpointType[_]
    input.Body.ContactDataRequestList[_].SystemEndpoint.Address == STRING
    input.Body.ContactDataRequestList[_].CustomerEndpoint.Type == enum_EndpointType[_]
    input.Body.ContactDataRequestList[_].CustomerEndpoint.Address == STRING
    input.Body.ContactDataRequestList[_].RequestIdentifier == STRING
    input.Body.ContactDataRequestList[_].QueueId == STRING
    input.Body.ContactDataRequestList[_].Attributes.STRING == STRING
    input.Body.ContactDataRequestList[_].Campaign.CampaignId == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ClaimPhoneNumber

valid {
    input.Body.TargetArn == STRING
    input.Body.InstanceId == STRING
    input.Body.PhoneNumber == STRING
    input.Body.PhoneNumberDescription == STRING
    input.Body.Tags.STRING == STRING
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CompleteAttachedFileUpload

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.FileId == STRING
    input.Qs.associatedResourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateAgentStatus

enum_AgentStatusState := [ "ENABLED", "DISABLED" ]

valid {
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.State == enum_AgentStatusState[_]
    input.Body.DisplayOrder == INTEGER
    input.Body.Tags.STRING == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateContact

enum_Channel := [ "VOICE", "CHAT", "TASK", "EMAIL" ]
enum_ContactInitiationMethod := [ "INBOUND", "OUTBOUND", "TRANSFER", "QUEUE_TRANSFER", "CALLBACK", "API", "DISCONNECT", "MONITOR", "EXTERNAL_OUTBOUND", "WEBRTC_API", "AGENT_REPLY", "FLOW" ]
enum_InitiateAs := [ "CONNECTED_TO_USER" ]
enum_ReferenceStatus := [ "AVAILABLE", "DELETED", "APPROVED", "REJECTED", "PROCESSING", "FAILED" ]
enum_ReferenceType := [ "URL", "ATTACHMENT", "CONTACT_ANALYSIS", "NUMBER", "STRING", "DATE", "EMAIL", "EMAIL_MESSAGE" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.ClientToken == STRING
    input.Body.RelatedContactId == STRING
    input.Body.Attributes.STRING == STRING
    input.Body.References.STRING.Value == STRING
    input.Body.References.STRING.Type == enum_ReferenceType[_]
    input.Body.References.STRING.Status == enum_ReferenceStatus[_]
    input.Body.References.STRING.Arn == STRING
    input.Body.References.STRING.StatusReason == STRING
    input.Body.Channel == enum_Channel[_]
    input.Body.InitiationMethod == enum_ContactInitiationMethod[_]
    input.Body.ExpiryDurationInMinutes == INTEGER
    input.Body.UserInfo.UserId == STRING
    input.Body.InitiateAs == enum_InitiateAs[_]
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.SegmentAttributes.STRING.ValueString == STRING
    input.Body.SegmentAttributes.STRING.ValueMap.STRING == NESTED
    input.Body.SegmentAttributes.STRING.ValueInteger == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateContactFlow

enum_ContactFlowStatus := [ "PUBLISHED", "SAVED" ]
enum_ContactFlowType := [ "CONTACT_FLOW", "CUSTOMER_QUEUE", "CUSTOMER_HOLD", "CUSTOMER_WHISPER", "AGENT_HOLD", "AGENT_WHISPER", "OUTBOUND_WHISPER", "AGENT_TRANSFER", "QUEUE_TRANSFER" ]

valid {
    input.Body.Name == STRING
    input.Body.Type == enum_ContactFlowType[_]
    input.Body.Description == STRING
    input.Body.Content == STRING
    input.Body.Status == enum_ContactFlowStatus[_]
    input.Body.Tags.STRING == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateContactFlowModule

valid {
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.Content == STRING
    input.Body.Tags.STRING == STRING
    input.Body.ClientToken == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateContactFlowVersion

valid {
    input.Body.Description == STRING
    input.Body.FlowContentSha256 == STRING
    input.Body.LastModifiedTime == TIMESTAMP
    input.Body.LastModifiedRegion == STRING
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ContactFlowId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateEmailAddress

valid {
    input.Body.Description == STRING
    input.Body.EmailAddress == STRING
    input.Body.DisplayName == STRING
    input.Body.Tags.STRING == STRING
    input.Body.ClientToken == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateEvaluationForm

enum_EvaluationFormQuestionType := [ "TEXT", "SINGLESELECT", "NUMERIC" ]
enum_EvaluationFormScoringMode := [ "QUESTION_ONLY", "SECTION_ONLY" ]
enum_EvaluationFormScoringStatus := [ "ENABLED", "DISABLED" ]
enum_EvaluationFormSingleSelectQuestionDisplayMode := [ "DROPDOWN", "RADIO" ]
enum_NumericQuestionPropertyAutomationLabel := [ "OVERALL_CUSTOMER_SENTIMENT_SCORE", "OVERALL_AGENT_SENTIMENT_SCORE", "NON_TALK_TIME", "NON_TALK_TIME_PERCENTAGE", "NUMBER_OF_INTERRUPTIONS", "CONTACT_DURATION", "AGENT_INTERACTION_DURATION", "CUSTOMER_HOLD_TIME" ]
enum_SingleSelectQuestionRuleCategoryAutomationCondition := [ "PRESENT", "NOT_PRESENT" ]

valid {
    input.Body.Title == STRING
    input.Body.Description == STRING
    input.Body.Items[_].Section.Title == STRING
    input.Body.Items[_].Section.RefId == STRING
    input.Body.Items[_].Section.Instructions == STRING
    input.Body.Items[_].Section.Items == NESTED
    input.Body.Items[_].Section.Weight == DOUBLE
    input.Body.Items[_].Question.Title == STRING
    input.Body.Items[_].Question.Instructions == STRING
    input.Body.Items[_].Question.RefId == STRING
    input.Body.Items[_].Question.NotApplicableEnabled == BOOLEAN
    input.Body.Items[_].Question.QuestionType == enum_EvaluationFormQuestionType[_]
    input.Body.Items[_].Question.QuestionTypeProperties.Numeric.MinValue == INTEGER
    input.Body.Items[_].Question.QuestionTypeProperties.Numeric.MaxValue == INTEGER
    input.Body.Items[_].Question.QuestionTypeProperties.Numeric.Options[_].MinValue == INTEGER
    input.Body.Items[_].Question.QuestionTypeProperties.Numeric.Options[_].MaxValue == INTEGER
    input.Body.Items[_].Question.QuestionTypeProperties.Numeric.Options[_].Score == INTEGER
    input.Body.Items[_].Question.QuestionTypeProperties.Numeric.Options[_].AutomaticFail == BOOLEAN
    input.Body.Items[_].Question.QuestionTypeProperties.Numeric.Automation.PropertyValue.Label == enum_NumericQuestionPropertyAutomationLabel[_]
    input.Body.Items[_].Question.QuestionTypeProperties.SingleSelect.Options[_].RefId == STRING
    input.Body.Items[_].Question.QuestionTypeProperties.SingleSelect.Options[_].Text == STRING
    input.Body.Items[_].Question.QuestionTypeProperties.SingleSelect.Options[_].Score == INTEGER
    input.Body.Items[_].Question.QuestionTypeProperties.SingleSelect.Options[_].AutomaticFail == BOOLEAN
    input.Body.Items[_].Question.QuestionTypeProperties.SingleSelect.DisplayAs == enum_EvaluationFormSingleSelectQuestionDisplayMode[_]
    input.Body.Items[_].Question.QuestionTypeProperties.SingleSelect.Automation.Options[_].RuleCategory.Category == STRING
    input.Body.Items[_].Question.QuestionTypeProperties.SingleSelect.Automation.Options[_].RuleCategory.Condition == enum_SingleSelectQuestionRuleCategoryAutomationCondition[_]
    input.Body.Items[_].Question.QuestionTypeProperties.SingleSelect.Automation.Options[_].RuleCategory.OptionRefId == STRING
    input.Body.Items[_].Question.QuestionTypeProperties.SingleSelect.Automation.DefaultOptionRefId == STRING
    input.Body.Items[_].Question.Weight == DOUBLE
    input.Body.ScoringStrategy.Mode == enum_EvaluationFormScoringMode[_]
    input.Body.ScoringStrategy.Status == enum_EvaluationFormScoringStatus[_]
    input.Body.ClientToken == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateHoursOfOperation

enum_HoursOfOperationDays := [ "SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY" ]

valid {
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.TimeZone == STRING
    input.Body.Config[_].Day == enum_HoursOfOperationDays[_]
    input.Body.Config[_].StartTime.Hours == INTEGER
    input.Body.Config[_].StartTime.Minutes == INTEGER
    input.Body.Config[_].EndTime.Hours == INTEGER
    input.Body.Config[_].EndTime.Minutes == INTEGER
    input.Body.Tags.STRING == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateInstance

enum_DirectoryType := [ "SAML", "CONNECT_MANAGED", "EXISTING_DIRECTORY" ]

valid {
    input.Body.ClientToken == STRING
    input.Body.IdentityManagementType == enum_DirectoryType[_]
    input.Body.InstanceAlias == STRING
    input.Body.DirectoryId == STRING
    input.Body.InboundCallsEnabled == BOOLEAN
    input.Body.OutboundCallsEnabled == BOOLEAN
    input.Body.Tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateIntegrationAssociation

enum_IntegrationType := [ "EVENT", "VOICE_ID", "PINPOINT_APP", "WISDOM_ASSISTANT", "WISDOM_KNOWLEDGE_BASE", "WISDOM_QUICK_RESPONSES", "Q_MESSAGE_TEMPLATES", "CASES_DOMAIN", "APPLICATION", "FILE_SCANNER", "SES_IDENTITY", "ANALYTICS_CONNECTOR", "CALL_TRANSFER_CONNECTOR" ]
enum_SourceType := [ "SALESFORCE", "ZENDESK", "CASES" ]

valid {
    input.Body.IntegrationType == enum_IntegrationType[_]
    input.Body.IntegrationArn == STRING
    input.Body.SourceApplicationUrl == STRING
    input.Body.SourceApplicationName == STRING
    input.Body.SourceType == enum_SourceType[_]
    input.Body.Tags.STRING == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateParticipant

enum_ParticipantRole := [ "AGENT", "CUSTOMER", "SYSTEM", "CUSTOM_BOT", "SUPERVISOR" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.ContactId == STRING
    input.Body.ClientToken == STRING
    input.Body.ParticipantDetails.ParticipantRole == enum_ParticipantRole[_]
    input.Body.ParticipantDetails.DisplayName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreatePersistentContactAssociation

enum_RehydrationType := [ "ENTIRE_PAST_SESSION", "FROM_SEGMENT" ]

valid {
    input.Body.RehydrationType == enum_RehydrationType[_]
    input.Body.SourceContactId == STRING
    input.Body.ClientToken == STRING
    input.ReqMap.InstanceId == STRING
    input.ReqMap.InitialContactId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreatePredefinedAttribute

valid {
    input.Body.Name == STRING
    input.Body.Values.StringList[_] == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreatePrompt

valid {
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.S3Uri == STRING
    input.Body.Tags.STRING == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateQueue

valid {
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.OutboundCallerConfig.OutboundCallerIdName == STRING
    input.Body.OutboundCallerConfig.OutboundCallerIdNumberId == STRING
    input.Body.OutboundCallerConfig.OutboundFlowId == STRING
    input.Body.OutboundEmailConfig.OutboundEmailAddressId == STRING
    input.Body.HoursOfOperationId == STRING
    input.Body.MaxContacts == INTEGER
    input.Body.QuickConnectIds[_] == STRING
    input.Body.Tags.STRING == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateQuickConnect

enum_QuickConnectType := [ "USER", "QUEUE", "PHONE_NUMBER" ]

valid {
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.QuickConnectConfig.QuickConnectType == enum_QuickConnectType[_]
    input.Body.QuickConnectConfig.UserConfig.UserId == STRING
    input.Body.QuickConnectConfig.UserConfig.ContactFlowId == STRING
    input.Body.QuickConnectConfig.QueueConfig.QueueId == STRING
    input.Body.QuickConnectConfig.QueueConfig.ContactFlowId == STRING
    input.Body.QuickConnectConfig.PhoneConfig.PhoneNumber == STRING
    input.Body.Tags.STRING == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateRoutingProfile

enum_AgentAvailabilityTimer := [ "TIME_SINCE_LAST_ACTIVITY", "TIME_SINCE_LAST_INBOUND" ]
enum_BehaviorType := [ "ROUTE_CURRENT_CHANNEL_ONLY", "ROUTE_ANY_CHANNEL" ]
enum_Channel := [ "VOICE", "CHAT", "TASK", "EMAIL" ]

valid {
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.DefaultOutboundQueueId == STRING
    input.Body.QueueConfigs[_].QueueReference.QueueId == STRING
    input.Body.QueueConfigs[_].QueueReference.Channel == enum_Channel[_]
    input.Body.QueueConfigs[_].Priority == INTEGER
    input.Body.QueueConfigs[_].Delay == INTEGER
    input.Body.MediaConcurrencies[_].Channel == enum_Channel[_]
    input.Body.MediaConcurrencies[_].Concurrency == INTEGER
    input.Body.MediaConcurrencies[_].CrossChannelBehavior.BehaviorType == enum_BehaviorType[_]
    input.Body.Tags.STRING == STRING
    input.Body.AgentAvailabilityTimer == enum_AgentAvailabilityTimer[_]
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateRule

enum_ActionType := [ "CREATE_TASK", "ASSIGN_CONTACT_CATEGORY", "GENERATE_EVENTBRIDGE_EVENT", "SEND_NOTIFICATION", "CREATE_CASE", "UPDATE_CASE", "END_ASSOCIATED_TASKS", "SUBMIT_AUTO_EVALUATION" ]
enum_EventSourceName := [ "OnPostCallAnalysisAvailable", "OnRealTimeCallAnalysisAvailable", "OnRealTimeChatAnalysisAvailable", "OnPostChatAnalysisAvailable", "OnZendeskTicketCreate", "OnZendeskTicketStatusUpdate", "OnSalesforceCaseCreate", "OnContactEvaluationSubmit", "OnMetricDataUpdate", "OnCaseCreate", "OnCaseUpdate" ]
enum_NotificationContentType := [ "PLAIN_TEXT" ]
enum_NotificationDeliveryType := [ "EMAIL" ]
enum_ReferenceStatus := [ "AVAILABLE", "DELETED", "APPROVED", "REJECTED", "PROCESSING", "FAILED" ]
enum_ReferenceType := [ "URL", "ATTACHMENT", "CONTACT_ANALYSIS", "NUMBER", "STRING", "DATE", "EMAIL", "EMAIL_MESSAGE" ]
enum_RulePublishStatus := [ "DRAFT", "PUBLISHED" ]

valid {
    input.Body.Name == STRING
    input.Body.TriggerEventSource.EventSourceName == enum_EventSourceName[_]
    input.Body.TriggerEventSource.IntegrationAssociationId == STRING
    input.Body.Function == STRING
    input.Body.Actions[_].ActionType == enum_ActionType[_]
    input.Body.Actions[_].TaskAction.Name == STRING
    input.Body.Actions[_].TaskAction.Description == STRING
    input.Body.Actions[_].TaskAction.ContactFlowId == STRING
    input.Body.Actions[_].TaskAction.References.STRING.Value == STRING
    input.Body.Actions[_].TaskAction.References.STRING.Type == enum_ReferenceType[_]
    input.Body.Actions[_].TaskAction.References.STRING.Status == enum_ReferenceStatus[_]
    input.Body.Actions[_].TaskAction.References.STRING.Arn == STRING
    input.Body.Actions[_].TaskAction.References.STRING.StatusReason == STRING
    input.Body.Actions[_].EventBridgeAction.Name == STRING
    input.Body.Actions[_].AssignContactCategoryAction == {}
    input.Body.Actions[_].SendNotificationAction.DeliveryMethod == enum_NotificationDeliveryType[_]
    input.Body.Actions[_].SendNotificationAction.Subject == STRING
    input.Body.Actions[_].SendNotificationAction.Content == STRING
    input.Body.Actions[_].SendNotificationAction.ContentType == enum_NotificationContentType[_]
    input.Body.Actions[_].SendNotificationAction.Recipient.UserTags.STRING == STRING
    input.Body.Actions[_].SendNotificationAction.Recipient.UserIds[_] == STRING
    input.Body.Actions[_].CreateCaseAction.Fields[_].Id == STRING
    input.Body.Actions[_].CreateCaseAction.Fields[_].Value.BooleanValue == BOOLEAN
    input.Body.Actions[_].CreateCaseAction.Fields[_].Value.DoubleValue == DOUBLE
    input.Body.Actions[_].CreateCaseAction.Fields[_].Value.EmptyValue == {}
    input.Body.Actions[_].CreateCaseAction.Fields[_].Value.StringValue == STRING
    input.Body.Actions[_].CreateCaseAction.TemplateId == STRING
    input.Body.Actions[_].UpdateCaseAction.Fields[_].Id == STRING
    input.Body.Actions[_].UpdateCaseAction.Fields[_].Value.BooleanValue == BOOLEAN
    input.Body.Actions[_].UpdateCaseAction.Fields[_].Value.DoubleValue == DOUBLE
    input.Body.Actions[_].UpdateCaseAction.Fields[_].Value.EmptyValue == {}
    input.Body.Actions[_].UpdateCaseAction.Fields[_].Value.StringValue == STRING
    input.Body.Actions[_].EndAssociatedTasksAction == {}
    input.Body.Actions[_].SubmitAutoEvaluationAction.EvaluationFormId == STRING
    input.Body.PublishStatus == enum_RulePublishStatus[_]
    input.Body.ClientToken == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSecurityProfile

valid {
    input.Body.SecurityProfileName == STRING
    input.Body.Description == STRING
    input.Body.Permissions[_] == STRING
    input.Body.Tags.STRING == STRING
    input.Body.AllowedAccessControlTags.STRING == STRING
    input.Body.TagRestrictedResources[_] == STRING
    input.Body.Applications[_].Namespace == STRING
    input.Body.Applications[_].ApplicationPermissions[_] == STRING
    input.Body.HierarchyRestrictedResources[_] == STRING
    input.Body.AllowedAccessControlHierarchyGroupId == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTaskTemplate

enum_TaskTemplateFieldType := [ "NAME", "DESCRIPTION", "SCHEDULED_TIME", "QUICK_CONNECT", "URL", "NUMBER", "TEXT", "TEXT_AREA", "DATE_TIME", "BOOLEAN", "SINGLE_SELECT", "EMAIL", "SELF_ASSIGN", "EXPIRY_DURATION" ]
enum_TaskTemplateStatus := [ "ACTIVE", "INACTIVE" ]

valid {
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.ContactFlowId == STRING
    input.Body.SelfAssignFlowId == STRING
    input.Body.Constraints.RequiredFields[_].Id.Name == STRING
    input.Body.Constraints.ReadOnlyFields[_].Id.Name == STRING
    input.Body.Constraints.InvisibleFields[_].Id.Name == STRING
    input.Body.Defaults.DefaultFieldValues[_].Id.Name == STRING
    input.Body.Defaults.DefaultFieldValues[_].DefaultValue == STRING
    input.Body.Status == enum_TaskTemplateStatus[_]
    input.Body.Fields[_].Id.Name == STRING
    input.Body.Fields[_].Description == STRING
    input.Body.Fields[_].Type == enum_TaskTemplateFieldType[_]
    input.Body.Fields[_].SingleSelectOptions[_] == STRING
    input.Body.ClientToken == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTrafficDistributionGroup

valid {
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.InstanceId == STRING
    input.Body.ClientToken == STRING
    input.Body.Tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateUseCase

enum_UseCaseType := [ "RULES_EVALUATION", "CONNECT_CAMPAIGNS" ]

valid {
    input.Body.UseCaseType == enum_UseCaseType[_]
    input.Body.Tags.STRING == STRING
    input.ReqMap.InstanceId == STRING
    input.ReqMap.IntegrationAssociationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateUser

enum_PhoneType := [ "SOFT_PHONE", "DESK_PHONE" ]

valid {
    input.Body.Username == STRING
    input.Body.Password == STRING
    input.Body.IdentityInfo.FirstName == STRING
    input.Body.IdentityInfo.LastName == STRING
    input.Body.IdentityInfo.Email == STRING
    input.Body.IdentityInfo.SecondaryEmail == STRING
    input.Body.IdentityInfo.Mobile == STRING
    input.Body.PhoneConfig.PhoneType == enum_PhoneType[_]
    input.Body.PhoneConfig.AutoAccept == BOOLEAN
    input.Body.PhoneConfig.AfterContactWorkTimeLimit == INTEGER
    input.Body.PhoneConfig.DeskPhoneNumber == STRING
    input.Body.DirectoryUserId == STRING
    input.Body.SecurityProfileIds[_] == STRING
    input.Body.RoutingProfileId == STRING
    input.Body.HierarchyGroupId == STRING
    input.Body.Tags.STRING == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateUserHierarchyGroup

valid {
    input.Body.Name == STRING
    input.Body.ParentGroupId == STRING
    input.Body.Tags.STRING == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateView

enum_ViewStatus := [ "PUBLISHED", "SAVED" ]

valid {
    input.Body.ClientToken == STRING
    input.Body.Status == enum_ViewStatus[_]
    input.Body.Content.Template == STRING
    input.Body.Content.Actions[_] == STRING
    input.Body.Description == STRING
    input.Body.Name == STRING
    input.Body.Tags.STRING == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateViewVersion

valid {
    input.Body.VersionDescription == STRING
    input.Body.ViewContentSha256 == STRING
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ViewId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateVocabulary

enum_VocabularyLanguageCode := [ "ar-AE", "de-CH", "de-DE", "en-AB", "en-AU", "en-GB", "en-IE", "en-IN", "en-US", "en-WL", "es-ES", "es-US", "fr-CA", "fr-FR", "hi-IN", "it-IT", "ja-JP", "ko-KR", "pt-BR", "pt-PT", "zh-CN", "en-NZ", "en-ZA", "ca-ES", "da-DK", "fi-FI", "id-ID", "ms-MY", "nl-NL", "no-NO", "pl-PL", "sv-SE", "tl-PH" ]

valid {
    input.Body.ClientToken == STRING
    input.Body.VocabularyName == STRING
    input.Body.LanguageCode == enum_VocabularyLanguageCode[_]
    input.Body.Content == STRING
    input.Body.Tags.STRING == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeactivateEvaluationForm

valid {
    input.Body.EvaluationFormVersion == INTEGER
    input.ReqMap.InstanceId == STRING
    input.ReqMap.EvaluationFormId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteAttachedFile

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.FileId == STRING
    input.Qs.associatedResourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteContactEvaluation

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.EvaluationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteContactFlow

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ContactFlowId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteContactFlowModule

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ContactFlowModuleId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteEmailAddress

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.EmailAddressId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteEvaluationForm

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.EvaluationFormId == STRING
    input.Qs.version == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteHoursOfOperation

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.HoursOfOperationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteInstance

valid {
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteIntegrationAssociation

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.IntegrationAssociationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeletePredefinedAttribute

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeletePrompt

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.PromptId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteQueue

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.QueueId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteQuickConnect

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.QuickConnectId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteRoutingProfile

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.RoutingProfileId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteRule

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.RuleId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteSecurityProfile

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.SecurityProfileId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTaskTemplate

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.TaskTemplateId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTrafficDistributionGroup

valid {
    input.ReqMap.TrafficDistributionGroupId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteUseCase

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.IntegrationAssociationId == STRING
    input.ReqMap.UseCaseId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteUser

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.UserId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteUserHierarchyGroup

valid {
    input.ReqMap.HierarchyGroupId == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteView

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ViewId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteViewVersion

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ViewId == STRING
    input.ReqMap.ViewVersion == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteVocabulary

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.VocabularyId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAgentStatus

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.AgentStatusId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAuthenticationProfile

valid {
    input.ReqMap.AuthenticationProfileId == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeContact

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ContactId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeContactEvaluation

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.EvaluationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeContactFlow

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ContactFlowId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeContactFlowModule

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ContactFlowModuleId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeEmailAddress

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.EmailAddressId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeEvaluationForm

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.EvaluationFormId == STRING
    input.Qs.version == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeHoursOfOperation

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.HoursOfOperationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstance

valid {
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstanceAttribute

enum_InstanceAttributeType := [ "INBOUND_CALLS", "OUTBOUND_CALLS", "CONTACTFLOW_LOGS", "CONTACT_LENS", "AUTO_RESOLVE_BEST_VOICES", "USE_CUSTOM_TTS_VOICES", "EARLY_MEDIA", "MULTI_PARTY_CONFERENCE", "HIGH_VOLUME_OUTBOUND", "ENHANCED_CONTACT_MONITORING", "ENHANCED_CHAT_MONITORING" ]

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.AttributeType == enum_InstanceAttributeType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstanceStorageConfig

enum_InstanceStorageResourceType := [ "CHAT_TRANSCRIPTS", "CALL_RECORDINGS", "SCHEDULED_REPORTS", "MEDIA_STREAMS", "CONTACT_TRACE_RECORDS", "AGENT_EVENTS", "REAL_TIME_CONTACT_ANALYSIS_SEGMENTS", "ATTACHMENTS", "CONTACT_EVALUATIONS", "SCREEN_RECORDINGS", "REAL_TIME_CONTACT_ANALYSIS_CHAT_SEGMENTS", "REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS", "EMAIL_MESSAGES" ]

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.AssociationId == STRING
    input.Qs.resourceType == enum_InstanceStorageResourceType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribePhoneNumber

valid {
    input.ReqMap.PhoneNumberId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribePredefinedAttribute

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribePrompt

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.PromptId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeQueue

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.QueueId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeQuickConnect

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.QuickConnectId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeRoutingProfile

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.RoutingProfileId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeRule

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.RuleId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSecurityProfile

valid {
    input.ReqMap.SecurityProfileId == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTrafficDistributionGroup

valid {
    input.ReqMap.TrafficDistributionGroupId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeUser

valid {
    input.ReqMap.UserId == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeUserHierarchyGroup

valid {
    input.ReqMap.HierarchyGroupId == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeUserHierarchyStructure

valid {
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeView

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ViewId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeVocabulary

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.VocabularyId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateAnalyticsDataSet

valid {
    input.Body.DataSetId == STRING
    input.Body.TargetAccountId == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateApprovedOrigin

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.origin == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateBot

valid {
    input.Body.LexBot.Name == STRING
    input.Body.LexBot.LexRegion == STRING
    input.Body.LexV2Bot.AliasArn == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateFlow

enum_FlowAssociationResourceType := [ "SMS_PHONE_NUMBER", "INBOUND_EMAIL", "OUTBOUND_EMAIL", "ANALYTICS_CONNECTOR", "WHATSAPP_MESSAGING_PHONE_NUMBER" ]

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ResourceId == STRING
    input.ReqMap.ResourceType == enum_FlowAssociationResourceType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateInstanceStorageConfig

enum_InstanceStorageResourceType := [ "CHAT_TRANSCRIPTS", "CALL_RECORDINGS", "SCHEDULED_REPORTS", "MEDIA_STREAMS", "CONTACT_TRACE_RECORDS", "AGENT_EVENTS", "REAL_TIME_CONTACT_ANALYSIS_SEGMENTS", "ATTACHMENTS", "CONTACT_EVALUATIONS", "SCREEN_RECORDINGS", "REAL_TIME_CONTACT_ANALYSIS_CHAT_SEGMENTS", "REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS", "EMAIL_MESSAGES" ]

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.AssociationId == STRING
    input.Qs.resourceType == enum_InstanceStorageResourceType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateLambdaFunction

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.functionArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateLexBot

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.botName == STRING
    input.Qs.lexRegion == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociatePhoneNumberContactFlow

valid {
    input.ReqMap.PhoneNumberId == STRING
    input.Qs.instanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateQueueQuickConnects

valid {
    input.Body.QuickConnectIds[_] == STRING
    input.ReqMap.InstanceId == STRING
    input.ReqMap.QueueId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateRoutingProfileQueues

enum_Channel := [ "VOICE", "CHAT", "TASK", "EMAIL" ]

valid {
    input.Body.QueueReferences[_].QueueId == STRING
    input.Body.QueueReferences[_].Channel == enum_Channel[_]
    input.ReqMap.InstanceId == STRING
    input.ReqMap.RoutingProfileId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateSecurityKey

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.AssociationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateTrafficDistributionGroupUser

valid {
    input.ReqMap.TrafficDistributionGroupId == STRING
    input.Qs.UserId == STRING
    input.Qs.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateUserProficiencies

valid {
    input.Body.UserProficiencies[_].AttributeName == STRING
    input.Body.UserProficiencies[_].AttributeValue == STRING
    input.ReqMap.InstanceId == STRING
    input.ReqMap.UserId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DismissUserContact

valid {
    input.Body.ContactId == STRING
    input.ReqMap.UserId == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetAttachedFile

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.FileId == STRING
    input.Qs.urlExpiryInSeconds == INTEGER
    input.Qs.associatedResourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetContactAttributes

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.InitialContactId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetCurrentMetricData

enum_Channel := [ "VOICE", "CHAT", "TASK", "EMAIL" ]
enum_CurrentMetricName := [ "AGENTS_ONLINE", "AGENTS_AVAILABLE", "AGENTS_ON_CALL", "AGENTS_NON_PRODUCTIVE", "AGENTS_AFTER_CONTACT_WORK", "AGENTS_ERROR", "AGENTS_STAFFED", "CONTACTS_IN_QUEUE", "OLDEST_CONTACT_AGE", "CONTACTS_SCHEDULED", "AGENTS_ON_CONTACT", "SLOTS_ACTIVE", "SLOTS_AVAILABLE" ]
enum_Grouping := [ "QUEUE", "CHANNEL", "ROUTING_PROFILE", "ROUTING_STEP_EXPRESSION" ]
enum_SortOrder := [ "ASCENDING", "DESCENDING" ]
enum_Unit := [ "SECONDS", "COUNT", "PERCENT" ]

valid {
    input.Body.Filters.Queues[_] == STRING
    input.Body.Filters.Channels[_] == enum_Channel[_]
    input.Body.Filters.RoutingProfiles[_] == STRING
    input.Body.Filters.RoutingStepExpressions[_] == STRING
    input.Body.Groupings[_] == enum_Grouping[_]
    input.Body.CurrentMetrics[_].Name == enum_CurrentMetricName[_]
    input.Body.CurrentMetrics[_].Unit == enum_Unit[_]
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.SortCriteria[_].SortByMetric == enum_CurrentMetricName[_]
    input.Body.SortCriteria[_].SortOrder == enum_SortOrder[_]
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetCurrentUserData

enum_ContactState := [ "INCOMING", "PENDING", "CONNECTING", "CONNECTED", "CONNECTED_ONHOLD", "MISSED", "ERROR", "ENDED", "REJECTED" ]

valid {
    input.Body.Filters.Queues[_] == STRING
    input.Body.Filters.ContactFilter.ContactStates[_] == enum_ContactState[_]
    input.Body.Filters.RoutingProfiles[_] == STRING
    input.Body.Filters.Agents[_] == STRING
    input.Body.Filters.UserHierarchyGroups[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetFederationToken

valid {
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetFlowAssociation

enum_FlowAssociationResourceType := [ "SMS_PHONE_NUMBER", "INBOUND_EMAIL", "OUTBOUND_EMAIL", "ANALYTICS_CONNECTOR", "WHATSAPP_MESSAGING_PHONE_NUMBER" ]

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ResourceId == STRING
    input.ReqMap.ResourceType == enum_FlowAssociationResourceType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetMetricData

enum_Channel := [ "VOICE", "CHAT", "TASK", "EMAIL" ]
enum_Comparison := [ "LT" ]
enum_Grouping := [ "QUEUE", "CHANNEL", "ROUTING_PROFILE", "ROUTING_STEP_EXPRESSION" ]
enum_HistoricalMetricName := [ "CONTACTS_QUEUED", "CONTACTS_HANDLED", "CONTACTS_ABANDONED", "CONTACTS_CONSULTED", "CONTACTS_AGENT_HUNG_UP_FIRST", "CONTACTS_HANDLED_INCOMING", "CONTACTS_HANDLED_OUTBOUND", "CONTACTS_HOLD_ABANDONS", "CONTACTS_TRANSFERRED_IN", "CONTACTS_TRANSFERRED_OUT", "CONTACTS_TRANSFERRED_IN_FROM_QUEUE", "CONTACTS_TRANSFERRED_OUT_FROM_QUEUE", "CONTACTS_MISSED", "CALLBACK_CONTACTS_HANDLED", "API_CONTACTS_HANDLED", "OCCUPANCY", "HANDLE_TIME", "AFTER_CONTACT_WORK_TIME", "QUEUED_TIME", "ABANDON_TIME", "QUEUE_ANSWER_TIME", "HOLD_TIME", "INTERACTION_TIME", "INTERACTION_AND_HOLD_TIME", "SERVICE_LEVEL" ]
enum_Statistic := [ "SUM", "MAX", "AVG" ]
enum_Unit := [ "SECONDS", "COUNT", "PERCENT" ]

valid {
    input.Body.StartTime == TIMESTAMP
    input.Body.EndTime == TIMESTAMP
    input.Body.Filters.Queues[_] == STRING
    input.Body.Filters.Channels[_] == enum_Channel[_]
    input.Body.Filters.RoutingProfiles[_] == STRING
    input.Body.Filters.RoutingStepExpressions[_] == STRING
    input.Body.Groupings[_] == enum_Grouping[_]
    input.Body.HistoricalMetrics[_].Name == enum_HistoricalMetricName[_]
    input.Body.HistoricalMetrics[_].Threshold.Comparison == enum_Comparison[_]
    input.Body.HistoricalMetrics[_].Threshold.ThresholdValue == DOUBLE
    input.Body.HistoricalMetrics[_].Statistic == enum_Statistic[_]
    input.Body.HistoricalMetrics[_].Unit == enum_Unit[_]
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetMetricDataV2

enum_IntervalPeriod := [ "FIFTEEN_MIN", "THIRTY_MIN", "HOUR", "DAY", "WEEK", "TOTAL" ]

valid {
    input.Body.ResourceArn == STRING
    input.Body.StartTime == TIMESTAMP
    input.Body.EndTime == TIMESTAMP
    input.Body.Interval.TimeZone == STRING
    input.Body.Interval.IntervalPeriod == enum_IntervalPeriod[_]
    input.Body.Filters[_].FilterKey == STRING
    input.Body.Filters[_].FilterValues[_] == STRING
    input.Body.Groupings[_] == STRING
    input.Body.Metrics[_].Name == STRING
    input.Body.Metrics[_].Threshold[_].Comparison == STRING
    input.Body.Metrics[_].Threshold[_].ThresholdValue == DOUBLE
    input.Body.Metrics[_].MetricFilters[_].MetricFilterKey == STRING
    input.Body.Metrics[_].MetricFilters[_].MetricFilterValues[_] == STRING
    input.Body.Metrics[_].MetricFilters[_].Negate == BOOLEAN
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetPromptFile

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.PromptId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTaskTemplate

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.TaskTemplateId == STRING
    input.Qs.snapshotVersion == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTrafficDistribution

valid {
    input.ReqMap.Id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ImportPhoneNumber

valid {
    input.Body.InstanceId == STRING
    input.Body.SourcePhoneNumberArn == STRING
    input.Body.PhoneNumberDescription == STRING
    input.Body.Tags.STRING == STRING
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListAgentStatuses

enum_AgentStatusType := [ "ROUTABLE", "CUSTOM", "OFFLINE" ]

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.AgentStatusTypes[_] == enum_AgentStatusType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListAnalyticsDataAssociations

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.DataSetId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListApprovedOrigins

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListAssociatedContacts

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.contactId == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListAuthenticationProfiles

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListBots

enum_LexVersion := [ "V1", "V2" ]

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.lexVersion == enum_LexVersion[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListContactEvaluations

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.contactId == STRING
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListContactFlowModules

enum_ContactFlowModuleState := [ "ACTIVE", "ARCHIVED" ]

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.state == enum_ContactFlowModuleState[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListContactFlowVersions

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ContactFlowId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListContactFlows

enum_ContactFlowType := [ "CONTACT_FLOW", "CUSTOMER_QUEUE", "CUSTOMER_HOLD", "CUSTOMER_WHISPER", "AGENT_HOLD", "AGENT_WHISPER", "OUTBOUND_WHISPER", "AGENT_TRANSFER", "QUEUE_TRANSFER" ]

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.contactFlowTypes[_] == enum_ContactFlowType[_]
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListContactReferences

enum_ReferenceType := [ "URL", "ATTACHMENT", "CONTACT_ANALYSIS", "NUMBER", "STRING", "DATE", "EMAIL", "EMAIL_MESSAGE" ]

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ContactId == STRING
    input.Qs.referenceTypes[_] == enum_ReferenceType[_]
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDefaultVocabularies

enum_VocabularyLanguageCode := [ "ar-AE", "de-CH", "de-DE", "en-AB", "en-AU", "en-GB", "en-IE", "en-IN", "en-US", "en-WL", "es-ES", "es-US", "fr-CA", "fr-FR", "hi-IN", "it-IT", "ja-JP", "ko-KR", "pt-BR", "pt-PT", "zh-CN", "en-NZ", "en-ZA", "ca-ES", "da-DK", "fi-FI", "id-ID", "ms-MY", "nl-NL", "no-NO", "pl-PL", "sv-SE", "tl-PH" ]

valid {
    input.Body.LanguageCode == enum_VocabularyLanguageCode[_]
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListEvaluationFormVersions

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.EvaluationFormId == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListEvaluationForms

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListFlowAssociations

enum_ListFlowAssociationResourceType := [ "WHATSAPP_MESSAGING_PHONE_NUMBER", "VOICE_PHONE_NUMBER", "INBOUND_EMAIL", "OUTBOUND_EMAIL", "ANALYTICS_CONNECTOR" ]

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.ResourceType == enum_ListFlowAssociationResourceType[_]
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListHoursOfOperations

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListInstanceAttributes

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListInstanceStorageConfigs

enum_InstanceStorageResourceType := [ "CHAT_TRANSCRIPTS", "CALL_RECORDINGS", "SCHEDULED_REPORTS", "MEDIA_STREAMS", "CONTACT_TRACE_RECORDS", "AGENT_EVENTS", "REAL_TIME_CONTACT_ANALYSIS_SEGMENTS", "ATTACHMENTS", "CONTACT_EVALUATIONS", "SCREEN_RECORDINGS", "REAL_TIME_CONTACT_ANALYSIS_CHAT_SEGMENTS", "REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS", "EMAIL_MESSAGES" ]

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.resourceType == enum_InstanceStorageResourceType[_]
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListInstances

valid {
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListIntegrationAssociations

enum_IntegrationType := [ "EVENT", "VOICE_ID", "PINPOINT_APP", "WISDOM_ASSISTANT", "WISDOM_KNOWLEDGE_BASE", "WISDOM_QUICK_RESPONSES", "Q_MESSAGE_TEMPLATES", "CASES_DOMAIN", "APPLICATION", "FILE_SCANNER", "SES_IDENTITY", "ANALYTICS_CONNECTOR", "CALL_TRANSFER_CONNECTOR" ]

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.integrationType == enum_IntegrationType[_]
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.integrationArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListLambdaFunctions

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListLexBots

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPhoneNumbers

enum_PhoneNumberCountryCode := [ "AF", "AL", "DZ", "AS", "AD", "AO", "AI", "AQ", "AG", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BR", "IO", "VG", "BN", "BG", "BF", "BI", "KH", "CM", "CA", "CV", "KY", "CF", "TD", "CL", "CN", "CX", "CC", "CO", "KM", "CK", "CR", "HR", "CU", "CW", "CY", "CZ", "CD", "DK", "DJ", "DM", "DO", "TL", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FK", "FO", "FJ", "FI", "FR", "PF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GL", "GD", "GU", "GT", "GG", "GN", "GW", "GY", "HT", "HN", "HK", "HU", "IS", "IN", "ID", "IR", "IQ", "IE", "IM", "IL", "IT", "CI", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MY", "MV", "ML", "MT", "MH", "MR", "MU", "YT", "MX", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "AN", "NC", "NZ", "NI", "NE", "NG", "NU", "KP", "MP", "NO", "OM", "PK", "PW", "PA", "PG", "PY", "PE", "PH", "PN", "PL", "PT", "PR", "QA", "CG", "RE", "RO", "RU", "RW", "BL", "SH", "KN", "LC", "MF", "PM", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SX", "SK", "SI", "SB", "SO", "ZA", "KR", "ES", "LK", "SD", "SR", "SJ", "SZ", "SE", "CH", "SY", "TW", "TJ", "TZ", "TH", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "VI", "UG", "UA", "AE", "GB", "US", "UY", "UZ", "VU", "VA", "VE", "VN", "WF", "EH", "YE", "ZM", "ZW" ]
enum_PhoneNumberType := [ "TOLL_FREE", "DID", "UIFN", "SHARED", "THIRD_PARTY_TF", "THIRD_PARTY_DID", "SHORT_CODE" ]

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.phoneNumberTypes[_] == enum_PhoneNumberType[_]
    input.Qs.phoneNumberCountryCodes[_] == enum_PhoneNumberCountryCode[_]
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPhoneNumbersV2

enum_PhoneNumberCountryCode := [ "AF", "AL", "DZ", "AS", "AD", "AO", "AI", "AQ", "AG", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BR", "IO", "VG", "BN", "BG", "BF", "BI", "KH", "CM", "CA", "CV", "KY", "CF", "TD", "CL", "CN", "CX", "CC", "CO", "KM", "CK", "CR", "HR", "CU", "CW", "CY", "CZ", "CD", "DK", "DJ", "DM", "DO", "TL", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FK", "FO", "FJ", "FI", "FR", "PF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GL", "GD", "GU", "GT", "GG", "GN", "GW", "GY", "HT", "HN", "HK", "HU", "IS", "IN", "ID", "IR", "IQ", "IE", "IM", "IL", "IT", "CI", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MY", "MV", "ML", "MT", "MH", "MR", "MU", "YT", "MX", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "AN", "NC", "NZ", "NI", "NE", "NG", "NU", "KP", "MP", "NO", "OM", "PK", "PW", "PA", "PG", "PY", "PE", "PH", "PN", "PL", "PT", "PR", "QA", "CG", "RE", "RO", "RU", "RW", "BL", "SH", "KN", "LC", "MF", "PM", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SX", "SK", "SI", "SB", "SO", "ZA", "KR", "ES", "LK", "SD", "SR", "SJ", "SZ", "SE", "CH", "SY", "TW", "TJ", "TZ", "TH", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "VI", "UG", "UA", "AE", "GB", "US", "UY", "UZ", "VU", "VA", "VE", "VN", "WF", "EH", "YE", "ZM", "ZW" ]
enum_PhoneNumberType := [ "TOLL_FREE", "DID", "UIFN", "SHARED", "THIRD_PARTY_TF", "THIRD_PARTY_DID", "SHORT_CODE" ]

valid {
    input.Body.TargetArn == STRING
    input.Body.InstanceId == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.PhoneNumberCountryCodes[_] == enum_PhoneNumberCountryCode[_]
    input.Body.PhoneNumberTypes[_] == enum_PhoneNumberType[_]
    input.Body.PhoneNumberPrefix == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPredefinedAttributes

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPrompts

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListQueueQuickConnects

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.QueueId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListQueues

enum_QueueType := [ "STANDARD", "AGENT" ]

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.queueTypes[_] == enum_QueueType[_]
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListQuickConnects

enum_QuickConnectType := [ "USER", "QUEUE", "PHONE_NUMBER" ]

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.QuickConnectTypes[_] == enum_QuickConnectType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListRealtimeContactAnalysisSegmentsV2

enum_RealTimeContactAnalysisOutputType := [ "Raw", "Redacted" ]
enum_RealTimeContactAnalysisSegmentType := [ "Transcript", "Categories", "Issues", "Event", "Attachments", "PostContactSummary" ]

valid {
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.OutputType == enum_RealTimeContactAnalysisOutputType[_]
    input.Body.SegmentTypes[_] == enum_RealTimeContactAnalysisSegmentType[_]
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ContactId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListRoutingProfileQueues

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.RoutingProfileId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListRoutingProfiles

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListRules

enum_EventSourceName := [ "OnPostCallAnalysisAvailable", "OnRealTimeCallAnalysisAvailable", "OnRealTimeChatAnalysisAvailable", "OnPostChatAnalysisAvailable", "OnZendeskTicketCreate", "OnZendeskTicketStatusUpdate", "OnSalesforceCaseCreate", "OnContactEvaluationSubmit", "OnMetricDataUpdate", "OnCaseCreate", "OnCaseUpdate" ]
enum_RulePublishStatus := [ "DRAFT", "PUBLISHED" ]

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.publishStatus == enum_RulePublishStatus[_]
    input.Qs.eventSourceName == enum_EventSourceName[_]
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListSecurityKeys

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListSecurityProfileApplications

valid {
    input.ReqMap.SecurityProfileId == STRING
    input.ReqMap.InstanceId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListSecurityProfilePermissions

valid {
    input.ReqMap.SecurityProfileId == STRING
    input.ReqMap.InstanceId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListSecurityProfiles

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForResource

valid {
    input.ReqMap.resourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTaskTemplates

enum_TaskTemplateStatus := [ "ACTIVE", "INACTIVE" ]

valid {
    input.ReqMap.InstanceId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.status == enum_TaskTemplateStatus[_]
    input.Qs.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}