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
}

CreateHoursOfOperationOverride

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

valid {
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.Config[_].Day == enum_OverrideDays[_]
    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.EffectiveFrom == STRING
    input.Body.EffectiveTill == STRING
    input.ReqMap.InstanceId == STRING
    input.ReqMap.HoursOfOperationId == 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", "COGNITO_USER_POOL" ]
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
}

CreatePushNotificationRegistration

enum_DeviceType := [ "GCM", "APNS", "APNS_SANDBOX" ]
enum_ParticipantRole := [ "AGENT", "CUSTOMER", "SYSTEM", "CUSTOM_BOT", "SUPERVISOR" ]

valid {
    input.Body.ClientToken == STRING
    input.Body.PinpointAppArn == STRING
    input.Body.DeviceToken == STRING
    input.Body.DeviceType == enum_DeviceType[_]
    input.Body.ContactConfiguration.ContactId == STRING
    input.Body.ContactConfiguration.ParticipantRole == enum_ParticipantRole[_]
    input.Body.ContactConfiguration.IncludeRawMessage == BOOLEAN
    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
}

DeleteHoursOfOperationOverride

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.HoursOfOperationId == STRING
    input.ReqMap.HoursOfOperationOverrideId == 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
}

DeletePushNotificationRegistration

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.RegistrationId == STRING
    input.Qs.contactId == 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
}

DescribeHoursOfOperationOverride

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.HoursOfOperationId == STRING
    input.ReqMap.HoursOfOperationOverrideId == 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", "MULTI_PARTY_CHAT_CONFERENCE" ]

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
}

GetEffectiveHoursOfOperations

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.HoursOfOperationId == STRING
    input.Qs.fromDate == STRING
    input.Qs.toDate == 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
}

ListHoursOfOperationOverrides

valid {
    input.ReqMap.InstanceId == STRING
    input.ReqMap.HoursOfOperationId == STRING
    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", "COGNITO_USER_POOL" ]

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
}

ListTrafficDistributionGroupUsers

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

ListTrafficDistributionGroups

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

ListUseCases

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

ListUserHierarchyGroups

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
}

ListUserProficiencies

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

ListUsers

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
}

ListViewVersions

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

ListViews

enum_ViewType := [ "CUSTOMER_MANAGED", "AWS_MANAGED" ]

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

MonitorContact

enum_MonitorCapability := [ "SILENT_MONITOR", "BARGE" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.ContactId == STRING
    input.Body.UserId == STRING
    input.Body.AllowedMonitorCapabilities[_] == enum_MonitorCapability[_]
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PauseContact

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

PutUserStatus

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

ReleasePhoneNumber

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

ReplicateInstance

valid {
    input.Body.ReplicaRegion == STRING
    input.Body.ClientToken == STRING
    input.Body.ReplicaAlias == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ResumeContact

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

ResumeContactRecording

enum_ContactRecordingType := [ "AGENT", "IVR", "SCREEN" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.ContactId == STRING
    input.Body.InitialContactId == STRING
    input.Body.ContactRecordingType == enum_ContactRecordingType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchAgentStatuses

enum_StringComparisonType := [ "STARTS_WITH", "CONTAINS", "EXACT" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.SearchFilter.AttributeFilter.OrConditions[_].TagConditions[_].TagKey == STRING
    input.Body.SearchFilter.AttributeFilter.OrConditions[_].TagConditions[_].TagValue == STRING
    input.Body.SearchFilter.AttributeFilter.AndCondition.TagConditions[_].TagKey == STRING
    input.Body.SearchFilter.AttributeFilter.AndCondition.TagConditions[_].TagValue == STRING
    input.Body.SearchFilter.AttributeFilter.TagCondition.TagKey == STRING
    input.Body.SearchFilter.AttributeFilter.TagCondition.TagValue == STRING
    input.Body.SearchCriteria.OrConditions[_] == NESTED
    input.Body.SearchCriteria.AndConditions[_] == NESTED
    input.Body.SearchCriteria.StringCondition.FieldName == STRING
    input.Body.SearchCriteria.StringCondition.Value == STRING
    input.Body.SearchCriteria.StringCondition.ComparisonType == enum_StringComparisonType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchAvailablePhoneNumbers

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.PhoneNumberCountryCode == enum_PhoneNumberCountryCode[_]
    input.Body.PhoneNumberType == enum_PhoneNumberType[_]
    input.Body.PhoneNumberPrefix == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchContactFlowModules

enum_ContactFlowModuleState := [ "ACTIVE", "ARCHIVED" ]
enum_ContactFlowModuleStatus := [ "PUBLISHED", "SAVED" ]
enum_StringComparisonType := [ "STARTS_WITH", "CONTAINS", "EXACT" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagKey == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagValue == STRING
    input.Body.SearchCriteria.OrConditions[_] == NESTED
    input.Body.SearchCriteria.AndConditions[_] == NESTED
    input.Body.SearchCriteria.StringCondition.FieldName == STRING
    input.Body.SearchCriteria.StringCondition.Value == STRING
    input.Body.SearchCriteria.StringCondition.ComparisonType == enum_StringComparisonType[_]
    input.Body.SearchCriteria.StateCondition == enum_ContactFlowModuleState[_]
    input.Body.SearchCriteria.StatusCondition == enum_ContactFlowModuleStatus[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchContactFlows

enum_ContactFlowState := [ "ACTIVE", "ARCHIVED" ]
enum_ContactFlowStatus := [ "PUBLISHED", "SAVED" ]
enum_ContactFlowType := [ "CONTACT_FLOW", "CUSTOMER_QUEUE", "CUSTOMER_HOLD", "CUSTOMER_WHISPER", "AGENT_HOLD", "AGENT_WHISPER", "OUTBOUND_WHISPER", "AGENT_TRANSFER", "QUEUE_TRANSFER" ]
enum_StringComparisonType := [ "STARTS_WITH", "CONTAINS", "EXACT" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagKey == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagValue == STRING
    input.Body.SearchCriteria.OrConditions[_] == NESTED
    input.Body.SearchCriteria.AndConditions[_] == NESTED
    input.Body.SearchCriteria.StringCondition.FieldName == STRING
    input.Body.SearchCriteria.StringCondition.Value == STRING
    input.Body.SearchCriteria.StringCondition.ComparisonType == enum_StringComparisonType[_]
    input.Body.SearchCriteria.TypeCondition == enum_ContactFlowType[_]
    input.Body.SearchCriteria.StateCondition == enum_ContactFlowState[_]
    input.Body.SearchCriteria.StatusCondition == enum_ContactFlowStatus[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchContacts

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_ParticipantRole := [ "AGENT", "CUSTOMER", "SYSTEM", "CUSTOM_BOT", "SUPERVISOR" ]
enum_SearchContactsMatchType := [ "MATCH_ALL", "MATCH_ANY" ]
enum_SearchContactsTimeRangeType := [ "INITIATION_TIMESTAMP", "SCHEDULED_TIMESTAMP", "CONNECTED_TO_AGENT_TIMESTAMP", "DISCONNECT_TIMESTAMP" ]
enum_SortOrder := [ "ASCENDING", "DESCENDING" ]
enum_SortableFieldName := [ "INITIATION_TIMESTAMP", "SCHEDULED_TIMESTAMP", "CONNECTED_TO_AGENT_TIMESTAMP", "DISCONNECT_TIMESTAMP", "INITIATION_METHOD", "CHANNEL" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.TimeRange.Type == enum_SearchContactsTimeRangeType[_]
    input.Body.TimeRange.StartTime == TIMESTAMP
    input.Body.TimeRange.EndTime == TIMESTAMP
    input.Body.SearchCriteria.AgentIds[_] == STRING
    input.Body.SearchCriteria.AgentHierarchyGroups.L1Ids[_] == STRING
    input.Body.SearchCriteria.AgentHierarchyGroups.L2Ids[_] == STRING
    input.Body.SearchCriteria.AgentHierarchyGroups.L3Ids[_] == STRING
    input.Body.SearchCriteria.AgentHierarchyGroups.L4Ids[_] == STRING
    input.Body.SearchCriteria.AgentHierarchyGroups.L5Ids[_] == STRING
    input.Body.SearchCriteria.Channels[_] == enum_Channel[_]
    input.Body.SearchCriteria.ContactAnalysis.Transcript.Criteria[_].ParticipantRole == enum_ParticipantRole[_]
    input.Body.SearchCriteria.ContactAnalysis.Transcript.Criteria[_].SearchText[_] == STRING
    input.Body.SearchCriteria.ContactAnalysis.Transcript.Criteria[_].MatchType == enum_SearchContactsMatchType[_]
    input.Body.SearchCriteria.ContactAnalysis.Transcript.MatchType == enum_SearchContactsMatchType[_]
    input.Body.SearchCriteria.InitiationMethods[_] == enum_ContactInitiationMethod[_]
    input.Body.SearchCriteria.QueueIds[_] == STRING
    input.Body.SearchCriteria.SearchableContactAttributes.Criteria[_].Key == STRING
    input.Body.SearchCriteria.SearchableContactAttributes.Criteria[_].Values[_] == STRING
    input.Body.SearchCriteria.SearchableContactAttributes.MatchType == enum_SearchContactsMatchType[_]
    input.Body.SearchCriteria.SearchableSegmentAttributes.Criteria[_].Key == STRING
    input.Body.SearchCriteria.SearchableSegmentAttributes.Criteria[_].Values[_] == STRING
    input.Body.SearchCriteria.SearchableSegmentAttributes.MatchType == enum_SearchContactsMatchType[_]
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.Sort.FieldName == enum_SortableFieldName[_]
    input.Body.Sort.Order == enum_SortOrder[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchEmailAddresses

enum_StringComparisonType := [ "STARTS_WITH", "CONTAINS", "EXACT" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.SearchCriteria.OrConditions[_] == NESTED
    input.Body.SearchCriteria.AndConditions[_] == NESTED
    input.Body.SearchCriteria.StringCondition.FieldName == STRING
    input.Body.SearchCriteria.StringCondition.Value == STRING
    input.Body.SearchCriteria.StringCondition.ComparisonType == enum_StringComparisonType[_]
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagKey == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagValue == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchHoursOfOperationOverrides

enum_DateComparisonType := [ "GREATER_THAN", "LESS_THAN", "GREATER_THAN_OR_EQUAL_TO", "LESS_THAN_OR_EQUAL_TO", "EQUAL_TO" ]
enum_StringComparisonType := [ "STARTS_WITH", "CONTAINS", "EXACT" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagKey == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagValue == STRING
    input.Body.SearchCriteria.OrConditions[_] == NESTED
    input.Body.SearchCriteria.AndConditions[_] == NESTED
    input.Body.SearchCriteria.StringCondition.FieldName == STRING
    input.Body.SearchCriteria.StringCondition.Value == STRING
    input.Body.SearchCriteria.StringCondition.ComparisonType == enum_StringComparisonType[_]
    input.Body.SearchCriteria.DateCondition.FieldName == STRING
    input.Body.SearchCriteria.DateCondition.Value == STRING
    input.Body.SearchCriteria.DateCondition.ComparisonType == enum_DateComparisonType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchHoursOfOperations

enum_StringComparisonType := [ "STARTS_WITH", "CONTAINS", "EXACT" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagKey == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagValue == STRING
    input.Body.SearchCriteria.OrConditions[_] == NESTED
    input.Body.SearchCriteria.AndConditions[_] == NESTED
    input.Body.SearchCriteria.StringCondition.FieldName == STRING
    input.Body.SearchCriteria.StringCondition.Value == STRING
    input.Body.SearchCriteria.StringCondition.ComparisonType == enum_StringComparisonType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchPredefinedAttributes

enum_StringComparisonType := [ "STARTS_WITH", "CONTAINS", "EXACT" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.SearchCriteria.OrConditions[_] == NESTED
    input.Body.SearchCriteria.AndConditions[_] == NESTED
    input.Body.SearchCriteria.StringCondition.FieldName == STRING
    input.Body.SearchCriteria.StringCondition.Value == STRING
    input.Body.SearchCriteria.StringCondition.ComparisonType == enum_StringComparisonType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchPrompts

enum_StringComparisonType := [ "STARTS_WITH", "CONTAINS", "EXACT" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagKey == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagValue == STRING
    input.Body.SearchCriteria.OrConditions[_] == NESTED
    input.Body.SearchCriteria.AndConditions[_] == NESTED
    input.Body.SearchCriteria.StringCondition.FieldName == STRING
    input.Body.SearchCriteria.StringCondition.Value == STRING
    input.Body.SearchCriteria.StringCondition.ComparisonType == enum_StringComparisonType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchQueues

enum_SearchableQueueType := [ "STANDARD" ]
enum_StringComparisonType := [ "STARTS_WITH", "CONTAINS", "EXACT" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagKey == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagValue == STRING
    input.Body.SearchCriteria.OrConditions[_] == NESTED
    input.Body.SearchCriteria.AndConditions[_] == NESTED
    input.Body.SearchCriteria.StringCondition.FieldName == STRING
    input.Body.SearchCriteria.StringCondition.Value == STRING
    input.Body.SearchCriteria.StringCondition.ComparisonType == enum_StringComparisonType[_]
    input.Body.SearchCriteria.QueueTypeCondition == enum_SearchableQueueType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchQuickConnects

enum_StringComparisonType := [ "STARTS_WITH", "CONTAINS", "EXACT" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagKey == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagValue == STRING
    input.Body.SearchCriteria.OrConditions[_] == NESTED
    input.Body.SearchCriteria.AndConditions[_] == NESTED
    input.Body.SearchCriteria.StringCondition.FieldName == STRING
    input.Body.SearchCriteria.StringCondition.Value == STRING
    input.Body.SearchCriteria.StringCondition.ComparisonType == enum_StringComparisonType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchResourceTags

enum_StringComparisonType := [ "STARTS_WITH", "CONTAINS", "EXACT" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.ResourceTypes[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.SearchCriteria.TagSearchCondition.tagKey == STRING
    input.Body.SearchCriteria.TagSearchCondition.tagValue == STRING
    input.Body.SearchCriteria.TagSearchCondition.tagKeyComparisonType == enum_StringComparisonType[_]
    input.Body.SearchCriteria.TagSearchCondition.tagValueComparisonType == enum_StringComparisonType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchRoutingProfiles

enum_StringComparisonType := [ "STARTS_WITH", "CONTAINS", "EXACT" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagKey == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagValue == STRING
    input.Body.SearchCriteria.OrConditions[_] == NESTED
    input.Body.SearchCriteria.AndConditions[_] == NESTED
    input.Body.SearchCriteria.StringCondition.FieldName == STRING
    input.Body.SearchCriteria.StringCondition.Value == STRING
    input.Body.SearchCriteria.StringCondition.ComparisonType == enum_StringComparisonType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchSecurityProfiles

enum_StringComparisonType := [ "STARTS_WITH", "CONTAINS", "EXACT" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.SearchCriteria.OrConditions[_] == NESTED
    input.Body.SearchCriteria.AndConditions[_] == NESTED
    input.Body.SearchCriteria.StringCondition.FieldName == STRING
    input.Body.SearchCriteria.StringCondition.Value == STRING
    input.Body.SearchCriteria.StringCondition.ComparisonType == enum_StringComparisonType[_]
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagKey == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagValue == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchUserHierarchyGroups

enum_StringComparisonType := [ "STARTS_WITH", "CONTAINS", "EXACT" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.SearchFilter.AttributeFilter.OrConditions[_].TagConditions[_].TagKey == STRING
    input.Body.SearchFilter.AttributeFilter.OrConditions[_].TagConditions[_].TagValue == STRING
    input.Body.SearchFilter.AttributeFilter.AndCondition.TagConditions[_].TagKey == STRING
    input.Body.SearchFilter.AttributeFilter.AndCondition.TagConditions[_].TagValue == STRING
    input.Body.SearchFilter.AttributeFilter.TagCondition.TagKey == STRING
    input.Body.SearchFilter.AttributeFilter.TagCondition.TagValue == STRING
    input.Body.SearchCriteria.OrConditions[_] == NESTED
    input.Body.SearchCriteria.AndConditions[_] == NESTED
    input.Body.SearchCriteria.StringCondition.FieldName == STRING
    input.Body.SearchCriteria.StringCondition.Value == STRING
    input.Body.SearchCriteria.StringCondition.ComparisonType == enum_StringComparisonType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchUsers

enum_HierarchyGroupMatchType := [ "EXACT", "WITH_CHILD_GROUPS" ]
enum_NumberComparisonType := [ "GREATER_OR_EQUAL", "GREATER", "LESSER_OR_EQUAL", "LESSER", "EQUAL", "NOT_EQUAL", "RANGE" ]
enum_StringComparisonType := [ "STARTS_WITH", "CONTAINS", "EXACT" ]
enum_TargetListType := [ "PROFICIENCIES" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.OrConditions[_][_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagKey == STRING
    input.Body.SearchFilter.TagFilter.AndConditions[_].TagValue == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagKey == STRING
    input.Body.SearchFilter.TagFilter.TagCondition.TagValue == STRING
    input.Body.SearchFilter.UserAttributeFilter.OrConditions[_].TagConditions[_].TagKey == STRING
    input.Body.SearchFilter.UserAttributeFilter.OrConditions[_].TagConditions[_].TagValue == STRING
    input.Body.SearchFilter.UserAttributeFilter.OrConditions[_].HierarchyGroupCondition.Value == STRING
    input.Body.SearchFilter.UserAttributeFilter.OrConditions[_].HierarchyGroupCondition.HierarchyGroupMatchType == enum_HierarchyGroupMatchType[_]
    input.Body.SearchFilter.UserAttributeFilter.AndCondition.TagConditions[_].TagKey == STRING
    input.Body.SearchFilter.UserAttributeFilter.AndCondition.TagConditions[_].TagValue == STRING
    input.Body.SearchFilter.UserAttributeFilter.AndCondition.HierarchyGroupCondition.Value == STRING
    input.Body.SearchFilter.UserAttributeFilter.AndCondition.HierarchyGroupCondition.HierarchyGroupMatchType == enum_HierarchyGroupMatchType[_]
    input.Body.SearchFilter.UserAttributeFilter.TagCondition.TagKey == STRING
    input.Body.SearchFilter.UserAttributeFilter.TagCondition.TagValue == STRING
    input.Body.SearchFilter.UserAttributeFilter.HierarchyGroupCondition.Value == STRING
    input.Body.SearchFilter.UserAttributeFilter.HierarchyGroupCondition.HierarchyGroupMatchType == enum_HierarchyGroupMatchType[_]
    input.Body.SearchCriteria.OrConditions[_] == NESTED
    input.Body.SearchCriteria.AndConditions[_] == NESTED
    input.Body.SearchCriteria.StringCondition.FieldName == STRING
    input.Body.SearchCriteria.StringCondition.Value == STRING
    input.Body.SearchCriteria.StringCondition.ComparisonType == enum_StringComparisonType[_]
    input.Body.SearchCriteria.ListCondition.TargetListType == enum_TargetListType[_]
    input.Body.SearchCriteria.ListCondition.Conditions[_].StringCondition.FieldName == STRING
    input.Body.SearchCriteria.ListCondition.Conditions[_].StringCondition.Value == STRING
    input.Body.SearchCriteria.ListCondition.Conditions[_].StringCondition.ComparisonType == enum_StringComparisonType[_]
    input.Body.SearchCriteria.ListCondition.Conditions[_].NumberCondition.FieldName == STRING
    input.Body.SearchCriteria.ListCondition.Conditions[_].NumberCondition.MinValue == INTEGER
    input.Body.SearchCriteria.ListCondition.Conditions[_].NumberCondition.MaxValue == INTEGER
    input.Body.SearchCriteria.ListCondition.Conditions[_].NumberCondition.ComparisonType == enum_NumberComparisonType[_]
    input.Body.SearchCriteria.HierarchyGroupCondition.Value == STRING
    input.Body.SearchCriteria.HierarchyGroupCondition.HierarchyGroupMatchType == enum_HierarchyGroupMatchType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchVocabularies

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" ]
enum_VocabularyState := [ "CREATION_IN_PROGRESS", "ACTIVE", "CREATION_FAILED", "DELETE_IN_PROGRESS" ]

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

SendChatIntegrationEvent

enum_ChatEventType := [ "DISCONNECT", "MESSAGE", "EVENT" ]

valid {
    input.Body.SourceId == STRING
    input.Body.DestinationId == STRING
    input.Body.Subtype == STRING
    input.Body.Event.Type == enum_ChatEventType[_]
    input.Body.Event.ContentType == STRING
    input.Body.Event.Content == STRING
    input.Body.NewSessionDetails.SupportedMessagingContentTypes[_] == STRING
    input.Body.NewSessionDetails.ParticipantDetails.DisplayName == STRING
    input.Body.NewSessionDetails.Attributes.STRING == STRING
    input.Body.NewSessionDetails.StreamingConfiguration.StreamingEndpointArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SendOutboundEmail

enum_OutboundMessageSourceType := [ "TEMPLATE", "RAW" ]
enum_TrafficType := [ "GENERAL", "CAMPAIGN" ]

valid {
    input.Body.FromEmailAddress.EmailAddress == STRING
    input.Body.FromEmailAddress.DisplayName == STRING
    input.Body.DestinationEmailAddress.EmailAddress == STRING
    input.Body.DestinationEmailAddress.DisplayName == STRING
    input.Body.AdditionalRecipients.CcEmailAddresses[_].EmailAddress == STRING
    input.Body.AdditionalRecipients.CcEmailAddresses[_].DisplayName == STRING
    input.Body.EmailMessage.MessageSourceType == enum_OutboundMessageSourceType[_]
    input.Body.EmailMessage.TemplatedMessageConfig.KnowledgeBaseId == STRING
    input.Body.EmailMessage.TemplatedMessageConfig.MessageTemplateId == STRING
    input.Body.EmailMessage.TemplatedMessageConfig.TemplateAttributes.CustomAttributes.STRING == STRING
    input.Body.EmailMessage.TemplatedMessageConfig.TemplateAttributes.CustomerProfileAttributes == STRING
    input.Body.EmailMessage.RawMessage.Subject == STRING
    input.Body.EmailMessage.RawMessage.Body == STRING
    input.Body.EmailMessage.RawMessage.ContentType == STRING
    input.Body.TrafficType == enum_TrafficType[_]
    input.Body.SourceCampaign.CampaignId == STRING
    input.Body.SourceCampaign.OutboundRequestId == STRING
    input.Body.ClientToken == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartAttachedFileUpload

enum_FileUseCaseType := [ "EMAIL_MESSAGE", "ATTACHMENT" ]

valid {
    input.Body.ClientToken == STRING
    input.Body.FileName == STRING
    input.Body.FileSizeInBytes == LONG
    input.Body.UrlExpiryInSeconds == INTEGER
    input.Body.FileUseCaseType == enum_FileUseCaseType[_]
    input.Body.CreatedBy.ConnectUserArn == STRING
    input.Body.CreatedBy.AWSIdentityArn == STRING
    input.Body.Tags.STRING == STRING
    input.ReqMap.InstanceId == STRING
    input.Qs.associatedResourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartChatContact

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

valid {
    input.Body.InstanceId == STRING
    input.Body.ContactFlowId == STRING
    input.Body.Attributes.STRING == STRING
    input.Body.ParticipantDetails.DisplayName == STRING
    input.Body.InitialMessage.ContentType == STRING
    input.Body.InitialMessage.Content == STRING
    input.Body.ClientToken == STRING
    input.Body.ChatDurationInMinutes == INTEGER
    input.Body.SupportedMessagingContentTypes[_] == STRING
    input.Body.PersistentChat.RehydrationType == enum_RehydrationType[_]
    input.Body.PersistentChat.SourceContactId == STRING
    input.Body.RelatedContactId == STRING
    input.Body.SegmentAttributes.STRING.ValueString == STRING
    input.Body.SegmentAttributes.STRING.ValueMap.STRING == NESTED
    input.Body.SegmentAttributes.STRING.ValueInteger == INTEGER
    input.Body.CustomerId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartContactEvaluation

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

StartContactRecording

enum_IvrRecordingTrack := [ "ALL" ]
enum_VoiceRecordingTrack := [ "FROM_AGENT", "TO_AGENT", "ALL" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.ContactId == STRING
    input.Body.InitialContactId == STRING
    input.Body.VoiceRecordingConfiguration.VoiceRecordingTrack == enum_VoiceRecordingTrack[_]
    input.Body.VoiceRecordingConfiguration.IvrRecordingTrack == enum_IvrRecordingTrack[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartContactStreaming

valid {
    input.Body.InstanceId == STRING
    input.Body.ContactId == STRING
    input.Body.ChatStreamingConfiguration.StreamingEndpointArn == STRING
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartEmailContact

enum_InboundMessageSourceType := [ "RAW" ]
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.FromEmailAddress.EmailAddress == STRING
    input.Body.FromEmailAddress.DisplayName == STRING
    input.Body.DestinationEmailAddress == STRING
    input.Body.Description == 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.Name == STRING
    input.Body.EmailMessage.MessageSourceType == enum_InboundMessageSourceType[_]
    input.Body.EmailMessage.RawMessage.Subject == STRING
    input.Body.EmailMessage.RawMessage.Body == STRING
    input.Body.EmailMessage.RawMessage.ContentType == STRING
    input.Body.EmailMessage.RawMessage.Headers.REFERENCES == STRING
    input.Body.EmailMessage.RawMessage.Headers.MESSAGE_ID == STRING
    input.Body.EmailMessage.RawMessage.Headers.IN_REPLY_TO == STRING
    input.Body.EmailMessage.RawMessage.Headers.X_SES_SPAM_VERDICT == STRING
    input.Body.EmailMessage.RawMessage.Headers.X_SES_VIRUS_VERDICT == STRING
    input.Body.AdditionalRecipients.ToAddresses[_].EmailAddress == STRING
    input.Body.AdditionalRecipients.ToAddresses[_].DisplayName == STRING
    input.Body.AdditionalRecipients.CcAddresses[_].EmailAddress == STRING
    input.Body.AdditionalRecipients.CcAddresses[_].DisplayName == STRING
    input.Body.Attachments[_].FileName == STRING
    input.Body.Attachments[_].S3Url == STRING
    input.Body.ContactFlowId == STRING
    input.Body.RelatedContactId == STRING
    input.Body.Attributes.STRING == STRING
    input.Body.SegmentAttributes.STRING.ValueString == STRING
    input.Body.SegmentAttributes.STRING.ValueMap.STRING == NESTED
    input.Body.SegmentAttributes.STRING.ValueInteger == INTEGER
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartOutboundChatContact

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

valid {
    input.Body.SourceEndpoint.Type == enum_EndpointType[_]
    input.Body.SourceEndpoint.Address == STRING
    input.Body.DestinationEndpoint.Type == enum_EndpointType[_]
    input.Body.DestinationEndpoint.Address == STRING
    input.Body.InstanceId == STRING
    input.Body.SegmentAttributes.STRING.ValueString == STRING
    input.Body.SegmentAttributes.STRING.ValueMap.STRING == NESTED
    input.Body.SegmentAttributes.STRING.ValueInteger == INTEGER
    input.Body.Attributes.STRING == STRING
    input.Body.ContactFlowId == STRING
    input.Body.ChatDurationInMinutes == INTEGER
    input.Body.ParticipantDetails.DisplayName == STRING
    input.Body.InitialSystemMessage.ContentType == STRING
    input.Body.InitialSystemMessage.Content == STRING
    input.Body.RelatedContactId == STRING
    input.Body.SupportedMessagingContentTypes[_] == STRING
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartOutboundEmailContact

enum_OutboundMessageSourceType := [ "TEMPLATE", "RAW" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.ContactId == STRING
    input.Body.FromEmailAddress.EmailAddress == STRING
    input.Body.FromEmailAddress.DisplayName == STRING
    input.Body.DestinationEmailAddress.EmailAddress == STRING
    input.Body.DestinationEmailAddress.DisplayName == STRING
    input.Body.AdditionalRecipients.CcEmailAddresses[_].EmailAddress == STRING
    input.Body.AdditionalRecipients.CcEmailAddresses[_].DisplayName == STRING
    input.Body.EmailMessage.MessageSourceType == enum_OutboundMessageSourceType[_]
    input.Body.EmailMessage.TemplatedMessageConfig.KnowledgeBaseId == STRING
    input.Body.EmailMessage.TemplatedMessageConfig.MessageTemplateId == STRING
    input.Body.EmailMessage.TemplatedMessageConfig.TemplateAttributes.CustomAttributes.STRING == STRING
    input.Body.EmailMessage.TemplatedMessageConfig.TemplateAttributes.CustomerProfileAttributes == STRING
    input.Body.EmailMessage.RawMessage.Subject == STRING
    input.Body.EmailMessage.RawMessage.Body == STRING
    input.Body.EmailMessage.RawMessage.ContentType == STRING
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartOutboundVoiceContact

enum_ReferenceStatus := [ "AVAILABLE", "DELETED", "APPROVED", "REJECTED", "PROCESSING", "FAILED" ]
enum_ReferenceType := [ "URL", "ATTACHMENT", "CONTACT_ANALYSIS", "NUMBER", "STRING", "DATE", "EMAIL", "EMAIL_MESSAGE" ]
enum_TrafficType := [ "GENERAL", "CAMPAIGN" ]

valid {
    input.Body.Name == STRING
    input.Body.Description == 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.RelatedContactId == STRING
    input.Body.DestinationPhoneNumber == STRING
    input.Body.ContactFlowId == STRING
    input.Body.InstanceId == STRING
    input.Body.ClientToken == STRING
    input.Body.SourcePhoneNumber == STRING
    input.Body.QueueId == STRING
    input.Body.Attributes.STRING == STRING
    input.Body.AnswerMachineDetectionConfig.EnableAnswerMachineDetection == BOOLEAN
    input.Body.AnswerMachineDetectionConfig.AwaitAnswerMachinePrompt == BOOLEAN
    input.Body.CampaignId == STRING
    input.Body.TrafficType == enum_TrafficType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartScreenSharing

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

StartTaskContact

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.PreviousContactId == STRING
    input.Body.ContactFlowId == STRING
    input.Body.Attributes.STRING == STRING
    input.Body.Name == 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.Description == STRING
    input.Body.ClientToken == STRING
    input.Body.ScheduledTime == TIMESTAMP
    input.Body.TaskTemplateId == STRING
    input.Body.QuickConnectId == STRING
    input.Body.RelatedContactId == 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
}

StartWebRTCContact

enum_ReferenceStatus := [ "AVAILABLE", "DELETED", "APPROVED", "REJECTED", "PROCESSING", "FAILED" ]
enum_ReferenceType := [ "URL", "ATTACHMENT", "CONTACT_ANALYSIS", "NUMBER", "STRING", "DATE", "EMAIL", "EMAIL_MESSAGE" ]
enum_ScreenShareCapability := [ "SEND" ]
enum_VideoCapability := [ "SEND" ]

valid {
    input.Body.Attributes.STRING == STRING
    input.Body.ClientToken == STRING
    input.Body.ContactFlowId == STRING
    input.Body.InstanceId == STRING
    input.Body.AllowedCapabilities.Customer.Video == enum_VideoCapability[_]
    input.Body.AllowedCapabilities.Customer.ScreenShare == enum_ScreenShareCapability[_]
    input.Body.AllowedCapabilities.Agent.Video == enum_VideoCapability[_]
    input.Body.AllowedCapabilities.Agent.ScreenShare == enum_ScreenShareCapability[_]
    input.Body.ParticipantDetails.DisplayName == STRING
    input.Body.RelatedContactId == 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.Description == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopContact

valid {
    input.Body.ContactId == STRING
    input.Body.InstanceId == STRING
    input.Body.DisconnectReason.Code == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopContactRecording

enum_ContactRecordingType := [ "AGENT", "IVR", "SCREEN" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.ContactId == STRING
    input.Body.InitialContactId == STRING
    input.Body.ContactRecordingType == enum_ContactRecordingType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopContactStreaming

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

SubmitContactEvaluation

valid {
    input.Body.Answers.STRING.Value.StringValue == STRING
    input.Body.Answers.STRING.Value.NumericValue == DOUBLE
    input.Body.Answers.STRING.Value.NotApplicable == BOOLEAN
    input.Body.Notes.STRING.Value == STRING
    input.ReqMap.InstanceId == STRING
    input.ReqMap.EvaluationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SuspendContactRecording

enum_ContactRecordingType := [ "AGENT", "IVR", "SCREEN" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.ContactId == STRING
    input.Body.InitialContactId == STRING
    input.Body.ContactRecordingType == enum_ContactRecordingType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagContact

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

TagResource

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

TransferContact

valid {
    input.Body.InstanceId == STRING
    input.Body.ContactId == STRING
    input.Body.QueueId == STRING
    input.Body.UserId == STRING
    input.Body.ContactFlowId == STRING
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagContact

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

UntagResource

valid {
    input.ReqMap.resourceArn == STRING
    input.Qs.tagKeys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateAgentStatus

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

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

UpdateAuthenticationProfile

valid {
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.AllowedIps[_] == STRING
    input.Body.BlockedIps[_] == STRING
    input.Body.PeriodicSessionDuration == INTEGER
    input.ReqMap.AuthenticationProfileId == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateContact

enum_EndpointType := [ "TELEPHONE_NUMBER", "VOIP", "CONTACT_FLOW", "CONNECT_PHONENUMBER_ARN", "EMAIL_ADDRESS" ]
enum_ReferenceStatus := [ "AVAILABLE", "DELETED", "APPROVED", "REJECTED", "PROCESSING", "FAILED" ]
enum_ReferenceType := [ "URL", "ATTACHMENT", "CONTACT_ANALYSIS", "NUMBER", "STRING", "DATE", "EMAIL", "EMAIL_MESSAGE" ]

valid {
    input.Body.Name == STRING
    input.Body.Description == 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.SegmentAttributes.STRING.ValueString == STRING
    input.Body.SegmentAttributes.STRING.ValueMap.STRING == NESTED
    input.Body.SegmentAttributes.STRING.ValueInteger == INTEGER
    input.Body.QueueInfo.Id == STRING
    input.Body.UserInfo.UserId == STRING
    input.Body.CustomerEndpoint.Type == enum_EndpointType[_]
    input.Body.CustomerEndpoint.Address == STRING
    input.Body.SystemEndpoint.Type == enum_EndpointType[_]
    input.Body.SystemEndpoint.Address == STRING
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ContactId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateContactAttributes

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

UpdateContactEvaluation

valid {
    input.Body.Answers.STRING.Value.StringValue == STRING
    input.Body.Answers.STRING.Value.NumericValue == DOUBLE
    input.Body.Answers.STRING.Value.NotApplicable == BOOLEAN
    input.Body.Notes.STRING.Value == STRING
    input.ReqMap.InstanceId == STRING
    input.ReqMap.EvaluationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateContactFlowContent

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

UpdateContactFlowMetadata

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

valid {
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.ContactFlowState == enum_ContactFlowState[_]
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ContactFlowId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateContactFlowModuleContent

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

UpdateContactFlowModuleMetadata

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

valid {
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.State == enum_ContactFlowModuleState[_]
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ContactFlowModuleId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateContactFlowName

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

UpdateContactRoutingData

valid {
    input.Body.QueueTimeAdjustmentSeconds == INTEGER
    input.Body.QueuePriority == LONG
    input.Body.RoutingCriteria.Steps[_].Expiry.DurationInSeconds == INTEGER
    input.Body.RoutingCriteria.Steps[_].Expression.AttributeCondition.Name == STRING
    input.Body.RoutingCriteria.Steps[_].Expression.AttributeCondition.Value == STRING
    input.Body.RoutingCriteria.Steps[_].Expression.AttributeCondition.ProficiencyLevel == FLOAT
    input.Body.RoutingCriteria.Steps[_].Expression.AttributeCondition.Range.MinProficiencyLevel == FLOAT
    input.Body.RoutingCriteria.Steps[_].Expression.AttributeCondition.Range.MaxProficiencyLevel == FLOAT
    input.Body.RoutingCriteria.Steps[_].Expression.AttributeCondition.MatchCriteria.AgentsCriteria.AgentIds[_] == STRING
    input.Body.RoutingCriteria.Steps[_].Expression.AttributeCondition.ComparisonOperator == STRING
    input.Body.RoutingCriteria.Steps[_].Expression.AndExpression[_] == NESTED
    input.Body.RoutingCriteria.Steps[_].Expression.OrExpression[_] == NESTED
    input.Body.RoutingCriteria.Steps[_].Expression.NotAttributeCondition.Name == STRING
    input.Body.RoutingCriteria.Steps[_].Expression.NotAttributeCondition.Value == STRING
    input.Body.RoutingCriteria.Steps[_].Expression.NotAttributeCondition.ProficiencyLevel == FLOAT
    input.Body.RoutingCriteria.Steps[_].Expression.NotAttributeCondition.Range.MinProficiencyLevel == FLOAT
    input.Body.RoutingCriteria.Steps[_].Expression.NotAttributeCondition.Range.MaxProficiencyLevel == FLOAT
    input.Body.RoutingCriteria.Steps[_].Expression.NotAttributeCondition.MatchCriteria.AgentsCriteria.AgentIds[_] == STRING
    input.Body.RoutingCriteria.Steps[_].Expression.NotAttributeCondition.ComparisonOperator == STRING
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ContactId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateContactSchedule

valid {
    input.Body.InstanceId == STRING
    input.Body.ContactId == STRING
    input.Body.ScheduledTime == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateEmailAddressMetadata

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

UpdateEvaluationForm

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.EvaluationFormVersion == INTEGER
    input.Body.CreateNewVersion == BOOLEAN
    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.ReqMap.EvaluationFormId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateHoursOfOperation

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.ReqMap.InstanceId == STRING
    input.ReqMap.HoursOfOperationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateHoursOfOperationOverride

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

valid {
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.Config[_].Day == enum_OverrideDays[_]
    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.EffectiveFrom == STRING
    input.Body.EffectiveTill == STRING
    input.ReqMap.InstanceId == STRING
    input.ReqMap.HoursOfOperationId == STRING
    input.ReqMap.HoursOfOperationOverrideId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateInstanceAttribute

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", "MULTI_PARTY_CHAT_CONFERENCE" ]

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

UpdateInstanceStorageConfig

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.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.ReqMap.AssociationId == STRING
    input.Qs.resourceType == enum_InstanceStorageResourceType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateParticipantAuthentication

valid {
    input.Body.State == STRING
    input.Body.InstanceId == STRING
    input.Body.Code == STRING
    input.Body.Error == STRING
    input.Body.ErrorDescription == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateParticipantRoleConfig

enum_ParticipantTimerAction := [ "Unset" ]
enum_ParticipantTimerType := [ "IDLE", "DISCONNECT_NONCUSTOMER" ]
enum_TimerEligibleParticipantRoles := [ "CUSTOMER", "AGENT" ]

valid {
    input.Body.ChannelConfiguration.Chat.ParticipantTimerConfigList[_].ParticipantRole == enum_TimerEligibleParticipantRoles[_]
    input.Body.ChannelConfiguration.Chat.ParticipantTimerConfigList[_].TimerType == enum_ParticipantTimerType[_]
    input.Body.ChannelConfiguration.Chat.ParticipantTimerConfigList[_].TimerValue.ParticipantTimerAction == enum_ParticipantTimerAction[_]
    input.Body.ChannelConfiguration.Chat.ParticipantTimerConfigList[_].TimerValue.ParticipantTimerDurationInMinutes == INTEGER
    input.ReqMap.InstanceId == STRING
    input.ReqMap.ContactId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdatePhoneNumber

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

UpdatePhoneNumberMetadata

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

UpdatePredefinedAttribute

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

UpdatePrompt

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

UpdateQueueHoursOfOperation

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

UpdateQueueMaxContacts

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

UpdateQueueName

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

UpdateQueueOutboundCallerConfig

valid {
    input.Body.OutboundCallerConfig.OutboundCallerIdName == STRING
    input.Body.OutboundCallerConfig.OutboundCallerIdNumberId == STRING
    input.Body.OutboundCallerConfig.OutboundFlowId == STRING
    input.ReqMap.InstanceId == STRING
    input.ReqMap.QueueId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateQueueOutboundEmailConfig

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

UpdateQueueStatus

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

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

UpdateQuickConnectConfig

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

valid {
    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.ReqMap.InstanceId == STRING
    input.ReqMap.QuickConnectId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateQuickConnectName

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

UpdateRoutingProfileAgentAvailabilityTimer

enum_AgentAvailabilityTimer := [ "TIME_SINCE_LAST_ACTIVITY", "TIME_SINCE_LAST_INBOUND" ]

valid {
    input.Body.AgentAvailabilityTimer == enum_AgentAvailabilityTimer[_]
    input.ReqMap.InstanceId == STRING
    input.ReqMap.RoutingProfileId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateRoutingProfileConcurrency

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

valid {
    input.Body.MediaConcurrencies[_].Channel == enum_Channel[_]
    input.Body.MediaConcurrencies[_].Concurrency == INTEGER
    input.Body.MediaConcurrencies[_].CrossChannelBehavior.BehaviorType == enum_BehaviorType[_]
    input.ReqMap.InstanceId == STRING
    input.ReqMap.RoutingProfileId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateRoutingProfileDefaultOutboundQueue

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

UpdateRoutingProfileName

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

UpdateRoutingProfileQueues

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
}

UpdateRule

enum_ActionType := [ "CREATE_TASK", "ASSIGN_CONTACT_CATEGORY", "GENERATE_EVENTBRIDGE_EVENT", "SEND_NOTIFICATION", "CREATE_CASE", "UPDATE_CASE", "END_ASSOCIATED_TASKS", "SUBMIT_AUTO_EVALUATION" ]
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.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.ReqMap.RuleId == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateSecurityProfile

valid {
    input.Body.Description == STRING
    input.Body.Permissions[_] == 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.SecurityProfileId == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateTaskTemplate

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.ReqMap.TaskTemplateId == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateTrafficDistribution

valid {
    input.Body.TelephonyConfig.Distributions[_].Region == STRING
    input.Body.TelephonyConfig.Distributions[_].Percentage == INTEGER
    input.Body.SignInConfig.Distributions[_].Region == STRING
    input.Body.SignInConfig.Distributions[_].Enabled == BOOLEAN
    input.Body.AgentConfig.Distributions[_].Region == STRING
    input.Body.AgentConfig.Distributions[_].Percentage == INTEGER
    input.ReqMap.Id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateUserHierarchy

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

UpdateUserHierarchyGroupName

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

UpdateUserHierarchyStructure

valid {
    input.Body.HierarchyStructure.LevelOne.Name == STRING
    input.Body.HierarchyStructure.LevelTwo.Name == STRING
    input.Body.HierarchyStructure.LevelThree.Name == STRING
    input.Body.HierarchyStructure.LevelFour.Name == STRING
    input.Body.HierarchyStructure.LevelFive.Name == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateUserIdentityInfo

valid {
    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.ReqMap.UserId == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateUserPhoneConfig

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

valid {
    input.Body.PhoneConfig.PhoneType == enum_PhoneType[_]
    input.Body.PhoneConfig.AutoAccept == BOOLEAN
    input.Body.PhoneConfig.AfterContactWorkTimeLimit == INTEGER
    input.Body.PhoneConfig.DeskPhoneNumber == STRING
    input.ReqMap.UserId == STRING
    input.ReqMap.InstanceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateUserProficiencies

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
}

UpdateUserRoutingProfile

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

UpdateUserSecurityProfiles

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

UpdateViewContent

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

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

UpdateViewMetadata

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