CUSTOMER-PROFILES

AddProfileKey

valid {
    input.Body.ProfileId == STRING
    input.Body.KeyName == STRING
    input.Body.Values[_] == STRING
    input.ReqMap.DomainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchGetCalculatedAttributeForProfile

enum_RangeUnit := [ "DAYS" ]

valid {
    input.Body.ProfileIds[_] == STRING
    input.Body.ConditionOverrides.Range.Start == INTEGER
    input.Body.ConditionOverrides.Range.End == INTEGER
    input.Body.ConditionOverrides.Range.Unit == enum_RangeUnit[_]
    input.ReqMap.CalculatedAttributeName == STRING
    input.ReqMap.DomainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchGetProfile

valid {
    input.Body.ProfileIds[_] == STRING
    input.ReqMap.DomainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateCalculatedAttributeDefinition

enum_FilterDimensionType := [ "INCLUSIVE", "EXCLUSIVE", "CONTAINS", "BEGINS_WITH", "ENDS_WITH", "BEFORE", "AFTER", "BETWEEN", "NOT_BETWEEN", "ON", "GREATER_THAN", "LESS_THAN", "GREATER_THAN_OR_EQUAL", "LESS_THAN_OR_EQUAL", "EQUAL" ]
enum_Include := [ "ALL", "ANY", "NONE" ]
enum_Operator := [ "EQUAL_TO", "GREATER_THAN", "LESS_THAN", "NOT_EQUAL_TO" ]
enum_Statistic := [ "FIRST_OCCURRENCE", "LAST_OCCURRENCE", "COUNT", "SUM", "MINIMUM", "MAXIMUM", "AVERAGE", "MAX_OCCURRENCE" ]
enum_Type := [ "ALL", "ANY", "NONE" ]
enum_Unit := [ "DAYS" ]

valid {
    input.Body.DisplayName == STRING
    input.Body.Description == STRING
    input.Body.AttributeDetails.Attributes[_].Name == STRING
    input.Body.AttributeDetails.Expression == STRING
    input.Body.Conditions.Range.Value == INTEGER
    input.Body.Conditions.Range.Unit == enum_Unit[_]
    input.Body.Conditions.ObjectCount == INTEGER
    input.Body.Conditions.Threshold.Value == STRING
    input.Body.Conditions.Threshold.Operator == enum_Operator[_]
    input.Body.Filter.Include == enum_Include[_]
    input.Body.Filter.Groups[_].Type == enum_Type[_]
    input.Body.Filter.Groups[_].Dimensions[_].Attributes.STRING.DimensionType == enum_FilterDimensionType[_]
    input.Body.Filter.Groups[_].Dimensions[_].Attributes.STRING.Values[_] == STRING
    input.Body.Statistic == enum_Statistic[_]
    input.Body.Tags.STRING == STRING
    input.ReqMap.DomainName == STRING
    input.ReqMap.CalculatedAttributeName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDomain

enum_AttributeMatchingModel := [ "ONE_TO_ONE", "MANY_TO_MANY" ]
enum_ConflictResolvingModel := [ "RECENCY", "SOURCE" ]
enum_JobScheduleDayOfTheWeek := [ "SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY" ]

valid {
    input.Body.DefaultExpirationDays == INTEGER
    input.Body.DefaultEncryptionKey == STRING
    input.Body.DeadLetterQueueUrl == STRING
    input.Body.Matching.Enabled == BOOLEAN
    input.Body.Matching.JobSchedule.DayOfTheWeek == enum_JobScheduleDayOfTheWeek[_]
    input.Body.Matching.JobSchedule.Time == STRING
    input.Body.Matching.AutoMerging.Enabled == BOOLEAN
    input.Body.Matching.AutoMerging.Consolidation.MatchingAttributesList[_][_] == STRING
    input.Body.Matching.AutoMerging.ConflictResolution.ConflictResolvingModel == enum_ConflictResolvingModel[_]
    input.Body.Matching.AutoMerging.ConflictResolution.SourceName == STRING
    input.Body.Matching.AutoMerging.MinAllowedConfidenceScoreForMerging == DOUBLE
    input.Body.Matching.ExportingConfig.S3Exporting.S3BucketName == STRING
    input.Body.Matching.ExportingConfig.S3Exporting.S3KeyName == STRING
    input.Body.RuleBasedMatching.Enabled == BOOLEAN
    input.Body.RuleBasedMatching.MatchingRules[_].Rule[_] == STRING
    input.Body.RuleBasedMatching.MaxAllowedRuleLevelForMerging == INTEGER
    input.Body.RuleBasedMatching.MaxAllowedRuleLevelForMatching == INTEGER
    input.Body.RuleBasedMatching.AttributeTypesSelector.AttributeMatchingModel == enum_AttributeMatchingModel[_]
    input.Body.RuleBasedMatching.AttributeTypesSelector.Address[_] == STRING
    input.Body.RuleBasedMatching.AttributeTypesSelector.PhoneNumber[_] == STRING
    input.Body.RuleBasedMatching.AttributeTypesSelector.EmailAddress[_] == STRING
    input.Body.RuleBasedMatching.ConflictResolution.ConflictResolvingModel == enum_ConflictResolvingModel[_]
    input.Body.RuleBasedMatching.ConflictResolution.SourceName == STRING
    input.Body.RuleBasedMatching.ExportingConfig.S3Exporting.S3BucketName == STRING
    input.Body.RuleBasedMatching.ExportingConfig.S3Exporting.S3KeyName == STRING
    input.Body.Tags.STRING == STRING
    input.ReqMap.DomainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateEventStream

valid {
    input.Body.Uri == STRING
    input.Body.Tags.STRING == STRING
    input.ReqMap.DomainName == STRING
    input.ReqMap.EventStreamName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateIntegrationWorkflow

enum_DataPullMode := [ "Incremental", "Complete" ]
enum_MarketoConnectorOperator := [ "PROJECTION", "LESS_THAN", "GREATER_THAN", "BETWEEN", "ADDITION", "MULTIPLICATION", "DIVISION", "SUBTRACTION", "MASK_ALL", "MASK_FIRST_N", "MASK_LAST_N", "VALIDATE_NON_NULL", "VALIDATE_NON_ZERO", "VALIDATE_NON_NEGATIVE", "VALIDATE_NUMERIC", "NO_OP" ]
enum_S3ConnectorOperator := [ "PROJECTION", "LESS_THAN", "GREATER_THAN", "BETWEEN", "LESS_THAN_OR_EQUAL_TO", "GREATER_THAN_OR_EQUAL_TO", "EQUAL_TO", "NOT_EQUAL_TO", "ADDITION", "MULTIPLICATION", "DIVISION", "SUBTRACTION", "MASK_ALL", "MASK_FIRST_N", "MASK_LAST_N", "VALIDATE_NON_NULL", "VALIDATE_NON_ZERO", "VALIDATE_NON_NEGATIVE", "VALIDATE_NUMERIC", "NO_OP" ]
enum_SalesforceConnectorOperator := [ "PROJECTION", "LESS_THAN", "CONTAINS", "GREATER_THAN", "BETWEEN", "LESS_THAN_OR_EQUAL_TO", "GREATER_THAN_OR_EQUAL_TO", "EQUAL_TO", "NOT_EQUAL_TO", "ADDITION", "MULTIPLICATION", "DIVISION", "SUBTRACTION", "MASK_ALL", "MASK_FIRST_N", "MASK_LAST_N", "VALIDATE_NON_NULL", "VALIDATE_NON_ZERO", "VALIDATE_NON_NEGATIVE", "VALIDATE_NUMERIC", "NO_OP" ]
enum_ServiceNowConnectorOperator := [ "PROJECTION", "CONTAINS", "LESS_THAN", "GREATER_THAN", "BETWEEN", "LESS_THAN_OR_EQUAL_TO", "GREATER_THAN_OR_EQUAL_TO", "EQUAL_TO", "NOT_EQUAL_TO", "ADDITION", "MULTIPLICATION", "DIVISION", "SUBTRACTION", "MASK_ALL", "MASK_FIRST_N", "MASK_LAST_N", "VALIDATE_NON_NULL", "VALIDATE_NON_ZERO", "VALIDATE_NON_NEGATIVE", "VALIDATE_NUMERIC", "NO_OP" ]
enum_SourceConnectorType := [ "Salesforce", "Marketo", "Zendesk", "Servicenow", "S3" ]
enum_TaskType := [ "Arithmetic", "Filter", "Map", "Mask", "Merge", "Truncate", "Validate" ]
enum_TriggerType := [ "Scheduled", "Event", "OnDemand" ]
enum_WorkflowType := [ "APPFLOW_INTEGRATION" ]
enum_ZendeskConnectorOperator := [ "PROJECTION", "GREATER_THAN", "ADDITION", "MULTIPLICATION", "DIVISION", "SUBTRACTION", "MASK_ALL", "MASK_FIRST_N", "MASK_LAST_N", "VALIDATE_NON_NULL", "VALIDATE_NON_ZERO", "VALIDATE_NON_NEGATIVE", "VALIDATE_NUMERIC", "NO_OP" ]

valid {
    input.Body.WorkflowType == enum_WorkflowType[_]
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Description == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.FlowName == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.KmsArn == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.SourceFlowConfig.ConnectorProfileName == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.SourceFlowConfig.ConnectorType == enum_SourceConnectorType[_]
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.SourceFlowConfig.IncrementalPullConfig.DatetimeTypeFieldName == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.SourceFlowConfig.SourceConnectorProperties.Marketo.Object == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.SourceFlowConfig.SourceConnectorProperties.S3.BucketName == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.SourceFlowConfig.SourceConnectorProperties.S3.BucketPrefix == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.SourceFlowConfig.SourceConnectorProperties.Salesforce.Object == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.SourceFlowConfig.SourceConnectorProperties.Salesforce.EnableDynamicFieldUpdate == BOOLEAN
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.SourceFlowConfig.SourceConnectorProperties.Salesforce.IncludeDeletedRecords == BOOLEAN
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.SourceFlowConfig.SourceConnectorProperties.ServiceNow.Object == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.SourceFlowConfig.SourceConnectorProperties.Zendesk.Object == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].ConnectorOperator.Marketo == enum_MarketoConnectorOperator[_]
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].ConnectorOperator.S3 == enum_S3ConnectorOperator[_]
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].ConnectorOperator.Salesforce == enum_SalesforceConnectorOperator[_]
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].ConnectorOperator.ServiceNow == enum_ServiceNowConnectorOperator[_]
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].ConnectorOperator.Zendesk == enum_ZendeskConnectorOperator[_]
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].DestinationField == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].SourceFields[_] == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].TaskProperties.VALUE == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].TaskProperties.VALUES == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].TaskProperties.DATA_TYPE == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].TaskProperties.UPPER_BOUND == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].TaskProperties.LOWER_BOUND == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].TaskProperties.SOURCE_DATA_TYPE == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].TaskProperties.DESTINATION_DATA_TYPE == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].TaskProperties.VALIDATION_ACTION == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].TaskProperties.MASK_VALUE == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].TaskProperties.MASK_LENGTH == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].TaskProperties.TRUNCATE_LENGTH == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].TaskProperties.MATH_OPERATION_FIELDS_ORDER == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].TaskProperties.CONCAT_FORMAT == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].TaskProperties.SUBFIELD_CATEGORY_MAP == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.Tasks[_].TaskType == enum_TaskType[_]
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.TriggerConfig.TriggerType == enum_TriggerType[_]
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.TriggerConfig.TriggerProperties.Scheduled.ScheduleExpression == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.TriggerConfig.TriggerProperties.Scheduled.DataPullMode == enum_DataPullMode[_]
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.TriggerConfig.TriggerProperties.Scheduled.ScheduleStartTime == TIMESTAMP
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.TriggerConfig.TriggerProperties.Scheduled.ScheduleEndTime == TIMESTAMP
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.TriggerConfig.TriggerProperties.Scheduled.Timezone == STRING
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.TriggerConfig.TriggerProperties.Scheduled.ScheduleOffset == LONG
    input.Body.IntegrationConfig.AppflowIntegration.FlowDefinition.TriggerConfig.TriggerProperties.Scheduled.FirstExecutionFrom == TIMESTAMP
    input.Body.IntegrationConfig.AppflowIntegration.Batches[_].StartTime == TIMESTAMP
    input.Body.IntegrationConfig.AppflowIntegration.Batches[_].EndTime == TIMESTAMP
    input.Body.ObjectTypeName == STRING
    input.Body.RoleArn == STRING
    input.Body.Tags.STRING == STRING
    input.ReqMap.DomainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateProfile

enum_Gender := [ "MALE", "FEMALE", "UNSPECIFIED" ]
enum_PartyType := [ "INDIVIDUAL", "BUSINESS", "OTHER" ]

valid {
    input.Body.AccountNumber == STRING
    input.Body.AdditionalInformation == STRING
    input.Body.PartyType == enum_PartyType[_]
    input.Body.BusinessName == STRING
    input.Body.FirstName == STRING
    input.Body.MiddleName == STRING
    input.Body.LastName == STRING
    input.Body.BirthDate == STRING
    input.Body.Gender == enum_Gender[_]
    input.Body.PhoneNumber == STRING
    input.Body.MobilePhoneNumber == STRING
    input.Body.HomePhoneNumber == STRING
    input.Body.BusinessPhoneNumber == STRING
    input.Body.EmailAddress == STRING
    input.Body.PersonalEmailAddress == STRING
    input.Body.BusinessEmailAddress == STRING
    input.Body.Address.Address1 == STRING
    input.Body.Address.Address2 == STRING
    input.Body.Address.Address3 == STRING
    input.Body.Address.Address4 == STRING
    input.Body.Address.City == STRING
    input.Body.Address.County == STRING
    input.Body.Address.State == STRING
    input.Body.Address.Province == STRING
    input.Body.Address.Country == STRING
    input.Body.Address.PostalCode == STRING
    input.Body.ShippingAddress.Address1 == STRING
    input.Body.ShippingAddress.Address2 == STRING
    input.Body.ShippingAddress.Address3 == STRING
    input.Body.ShippingAddress.Address4 == STRING
    input.Body.ShippingAddress.City == STRING
    input.Body.ShippingAddress.County == STRING
    input.Body.ShippingAddress.State == STRING
    input.Body.ShippingAddress.Province == STRING
    input.Body.ShippingAddress.Country == STRING
    input.Body.ShippingAddress.PostalCode == STRING
    input.Body.MailingAddress.Address1 == STRING
    input.Body.MailingAddress.Address2 == STRING
    input.Body.MailingAddress.Address3 == STRING
    input.Body.MailingAddress.Address4 == STRING
    input.Body.MailingAddress.City == STRING
    input.Body.MailingAddress.County == STRING
    input.Body.MailingAddress.State == STRING
    input.Body.MailingAddress.Province == STRING
    input.Body.MailingAddress.Country == STRING
    input.Body.MailingAddress.PostalCode == STRING
    input.Body.BillingAddress.Address1 == STRING
    input.Body.BillingAddress.Address2 == STRING
    input.Body.BillingAddress.Address3 == STRING
    input.Body.BillingAddress.Address4 == STRING
    input.Body.BillingAddress.City == STRING
    input.Body.BillingAddress.County == STRING
    input.Body.BillingAddress.State == STRING
    input.Body.BillingAddress.Province == STRING
    input.Body.BillingAddress.Country == STRING
    input.Body.BillingAddress.PostalCode == STRING
    input.Body.Attributes.STRING == STRING
    input.Body.PartyTypeString == STRING
    input.Body.GenderString == STRING
    input.ReqMap.DomainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSegmentDefinition

enum_AttributeDimensionType := [ "INCLUSIVE", "EXCLUSIVE", "CONTAINS", "BEGINS_WITH", "ENDS_WITH", "BEFORE", "AFTER", "BETWEEN", "NOT_BETWEEN", "ON", "GREATER_THAN", "LESS_THAN", "GREATER_THAN_OR_EQUAL", "LESS_THAN_OR_EQUAL", "EQUAL" ]
enum_DateDimensionType := [ "BEFORE", "AFTER", "BETWEEN", "NOT_BETWEEN", "ON" ]
enum_IncludeOptions := [ "ALL", "ANY", "NONE" ]
enum_RangeUnit := [ "DAYS" ]
enum_StringDimensionType := [ "INCLUSIVE", "EXCLUSIVE", "CONTAINS", "BEGINS_WITH", "ENDS_WITH" ]

valid {
    input.Body.DisplayName == STRING
    input.Body.Description == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.AccountNumber.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.AccountNumber.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.AdditionalInformation.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.AdditionalInformation.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.FirstName.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.FirstName.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.LastName.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.LastName.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.MiddleName.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.MiddleName.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.GenderString.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.GenderString.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.PartyTypeString.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.PartyTypeString.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BirthDate.DimensionType == enum_DateDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BirthDate.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.PhoneNumber.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.PhoneNumber.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BusinessName.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BusinessName.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BusinessPhoneNumber.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BusinessPhoneNumber.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.HomePhoneNumber.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.HomePhoneNumber.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.MobilePhoneNumber.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.MobilePhoneNumber.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.EmailAddress.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.EmailAddress.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.PersonalEmailAddress.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.PersonalEmailAddress.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BusinessEmailAddress.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BusinessEmailAddress.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.Address.City.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.Address.City.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.Address.Country.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.Address.Country.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.Address.County.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.Address.County.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.Address.PostalCode.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.Address.PostalCode.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.Address.Province.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.Address.Province.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.Address.State.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.Address.State.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.City.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.City.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.Country.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.Country.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.County.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.County.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.PostalCode.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.PostalCode.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.Province.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.Province.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.State.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.State.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.City.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.City.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.Country.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.Country.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.County.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.County.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.PostalCode.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.PostalCode.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.Province.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.Province.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.State.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.State.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.City.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.City.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.Country.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.Country.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.County.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.County.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.PostalCode.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.PostalCode.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.Province.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.Province.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.State.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.State.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.Attributes.STRING.DimensionType == enum_AttributeDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].ProfileAttributes.Attributes.STRING.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].CalculatedAttributes.STRING.DimensionType == enum_AttributeDimensionType[_]
    input.Body.SegmentGroups.Groups[_].Dimensions[_].CalculatedAttributes.STRING.Values[_] == STRING
    input.Body.SegmentGroups.Groups[_].Dimensions[_].CalculatedAttributes.STRING.ConditionOverrides.Range.Start == INTEGER
    input.Body.SegmentGroups.Groups[_].Dimensions[_].CalculatedAttributes.STRING.ConditionOverrides.Range.End == INTEGER
    input.Body.SegmentGroups.Groups[_].Dimensions[_].CalculatedAttributes.STRING.ConditionOverrides.Range.Unit == enum_RangeUnit[_]
    input.Body.SegmentGroups.Groups[_].SourceSegments[_].SegmentDefinitionName == STRING
    input.Body.SegmentGroups.Groups[_].SourceType == enum_IncludeOptions[_]
    input.Body.SegmentGroups.Groups[_].Type == enum_IncludeOptions[_]
    input.Body.SegmentGroups.Include == enum_IncludeOptions[_]
    input.Body.Tags.STRING == STRING
    input.ReqMap.DomainName == STRING
    input.ReqMap.SegmentDefinitionName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSegmentEstimate

enum_AttributeDimensionType := [ "INCLUSIVE", "EXCLUSIVE", "CONTAINS", "BEGINS_WITH", "ENDS_WITH", "BEFORE", "AFTER", "BETWEEN", "NOT_BETWEEN", "ON", "GREATER_THAN", "LESS_THAN", "GREATER_THAN_OR_EQUAL", "LESS_THAN_OR_EQUAL", "EQUAL" ]
enum_DateDimensionType := [ "BEFORE", "AFTER", "BETWEEN", "NOT_BETWEEN", "ON" ]
enum_IncludeOptions := [ "ALL", "ANY", "NONE" ]
enum_RangeUnit := [ "DAYS" ]
enum_StringDimensionType := [ "INCLUSIVE", "EXCLUSIVE", "CONTAINS", "BEGINS_WITH", "ENDS_WITH" ]

valid {
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.AccountNumber.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.AccountNumber.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.AdditionalInformation.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.AdditionalInformation.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.FirstName.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.FirstName.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.LastName.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.LastName.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.MiddleName.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.MiddleName.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.GenderString.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.GenderString.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.PartyTypeString.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.PartyTypeString.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BirthDate.DimensionType == enum_DateDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BirthDate.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.PhoneNumber.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.PhoneNumber.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BusinessName.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BusinessName.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BusinessPhoneNumber.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BusinessPhoneNumber.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.HomePhoneNumber.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.HomePhoneNumber.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.MobilePhoneNumber.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.MobilePhoneNumber.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.EmailAddress.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.EmailAddress.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.PersonalEmailAddress.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.PersonalEmailAddress.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BusinessEmailAddress.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BusinessEmailAddress.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.Address.City.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.Address.City.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.Address.Country.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.Address.Country.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.Address.County.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.Address.County.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.Address.PostalCode.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.Address.PostalCode.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.Address.Province.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.Address.Province.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.Address.State.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.Address.State.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.City.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.City.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.Country.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.Country.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.County.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.County.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.PostalCode.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.PostalCode.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.Province.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.Province.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.State.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.ShippingAddress.State.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.City.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.City.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.Country.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.Country.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.County.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.County.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.PostalCode.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.PostalCode.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.Province.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.Province.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.State.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.MailingAddress.State.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.City.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.City.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.Country.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.Country.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.County.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.County.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.PostalCode.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.PostalCode.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.Province.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.Province.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.State.DimensionType == enum_StringDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.BillingAddress.State.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.Attributes.STRING.DimensionType == enum_AttributeDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].ProfileAttributes.Attributes.STRING.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].CalculatedAttributes.STRING.DimensionType == enum_AttributeDimensionType[_]
    input.Body.SegmentQuery.Groups[_].Dimensions[_].CalculatedAttributes.STRING.Values[_] == STRING
    input.Body.SegmentQuery.Groups[_].Dimensions[_].CalculatedAttributes.STRING.ConditionOverrides.Range.Start == INTEGER
    input.Body.SegmentQuery.Groups[_].Dimensions[_].CalculatedAttributes.STRING.ConditionOverrides.Range.End == INTEGER
    input.Body.SegmentQuery.Groups[_].Dimensions[_].CalculatedAttributes.STRING.ConditionOverrides.Range.Unit == enum_RangeUnit[_]
    input.Body.SegmentQuery.Groups[_].SourceSegments[_].SegmentDefinitionName == STRING
    input.Body.SegmentQuery.Groups[_].SourceType == enum_IncludeOptions[_]
    input.Body.SegmentQuery.Groups[_].Type == enum_IncludeOptions[_]
    input.Body.SegmentQuery.Include == enum_IncludeOptions[_]
    input.ReqMap.DomainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSegmentSnapshot

enum_DataFormat := [ "CSV", "JSONL", "ORC" ]

valid {
    input.Body.DataFormat == enum_DataFormat[_]
    input.Body.EncryptionKey == STRING
    input.Body.RoleArn == STRING
    input.Body.DestinationUri == STRING
    input.ReqMap.DomainName == STRING
    input.ReqMap.SegmentDefinitionName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteCalculatedAttributeDefinition

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

DeleteDomain

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

DeleteEventStream

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

DeleteIntegration

valid {
    input.Body.Uri == STRING
    input.ReqMap.DomainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteProfile

valid {
    input.Body.ProfileId == STRING
    input.ReqMap.DomainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteProfileKey

valid {
    input.Body.ProfileId == STRING
    input.Body.KeyName == STRING
    input.Body.Values[_] == STRING
    input.ReqMap.DomainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteProfileObject

valid {
    input.Body.ProfileId == STRING
    input.Body.ProfileObjectUniqueKey == STRING
    input.Body.ObjectTypeName == STRING
    input.ReqMap.DomainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteProfileObjectType

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

DeleteSegmentDefinition

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

DeleteWorkflow

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

DetectProfileObjectType

valid {
    input.Body.Objects[_] == STRING
    input.ReqMap.DomainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetAutoMergingPreview

enum_ConflictResolvingModel := [ "RECENCY", "SOURCE" ]

valid {
    input.Body.Consolidation.MatchingAttributesList[_][_] == STRING
    input.Body.ConflictResolution.ConflictResolvingModel == enum_ConflictResolvingModel[_]
    input.Body.ConflictResolution.SourceName == STRING
    input.Body.MinAllowedConfidenceScoreForMerging == DOUBLE
    input.ReqMap.DomainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetCalculatedAttributeDefinition

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

GetCalculatedAttributeForProfile

valid {
    input.ReqMap.DomainName == STRING
    input.ReqMap.ProfileId == STRING
    input.ReqMap.CalculatedAttributeName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetDomain

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

GetEventStream

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

GetIdentityResolutionJob

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

GetIntegration

valid {
    input.Body.Uri == STRING
    input.ReqMap.DomainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetMatches

valid {
    input.ReqMap.DomainName == STRING
    input.Qs.next-token == STRING
    input.Qs.max-results == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetProfileObjectType

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

GetProfileObjectTypeTemplate

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

GetSegmentDefinition

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

GetSegmentEstimate

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

GetSegmentMembership

valid {
    input.Body.ProfileIds[_] == STRING
    input.ReqMap.DomainName == STRING
    input.ReqMap.SegmentDefinitionName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSegmentSnapshot

valid {
    input.ReqMap.DomainName == STRING
    input.ReqMap.SegmentDefinitionName == STRING
    input.ReqMap.SnapshotId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSimilarProfiles

enum_MatchType := [ "RULE_BASED_MATCHING", "ML_BASED_MATCHING" ]

valid {
    input.Body.MatchType == enum_MatchType[_]
    input.Body.SearchKey == STRING
    input.Body.SearchValue == STRING
    input.ReqMap.DomainName == STRING
    input.Qs.next-token == STRING
    input.Qs.max-results == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetWorkflow

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

GetWorkflowSteps

valid {
    input.ReqMap.DomainName == STRING
    input.ReqMap.WorkflowId == STRING
    input.Qs.next-token == STRING
    input.Qs.max-results == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListAccountIntegrations

valid {
    input.Body.Uri == STRING
    input.Qs.next-token == STRING
    input.Qs.max-results == INTEGER
    input.Qs.include-hidden == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListCalculatedAttributeDefinitions

valid {
    input.ReqMap.DomainName == STRING
    input.Qs.next-token == STRING
    input.Qs.max-results == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListCalculatedAttributesForProfile

valid {
    input.ReqMap.DomainName == STRING
    input.ReqMap.ProfileId == STRING
    input.Qs.next-token == STRING
    input.Qs.max-results == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDomains

valid {
    input.Qs.next-token == STRING
    input.Qs.max-results == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListEventStreams

valid {
    input.ReqMap.DomainName == STRING
    input.Qs.next-token == STRING
    input.Qs.max-results == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListIdentityResolutionJobs

valid {
    input.ReqMap.DomainName == STRING
    input.Qs.next-token == STRING
    input.Qs.max-results == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListIntegrations

valid {
    input.ReqMap.DomainName == STRING
    input.Qs.next-token == STRING
    input.Qs.max-results == INTEGER
    input.Qs.include-hidden == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListObjectTypeAttributes

valid {
    input.ReqMap.DomainName == STRING
    input.ReqMap.ObjectTypeName == STRING
    input.Qs.next-token == STRING
    input.Qs.max-results == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListProfileAttributeValues

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

ListProfileObjectTypeTemplates

valid {
    input.Qs.next-token == STRING
    input.Qs.max-results == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListProfileObjectTypes

valid {
    input.ReqMap.DomainName == STRING
    input.Qs.next-token == STRING
    input.Qs.max-results == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListProfileObjects

valid {
    input.Body.ObjectTypeName == STRING
    input.Body.ProfileId == STRING
    input.Body.ObjectFilter.KeyName == STRING
    input.Body.ObjectFilter.Values[_] == STRING
    input.ReqMap.DomainName == STRING
    input.Qs.next-token == STRING
    input.Qs.max-results == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListRuleBasedMatches

valid {
    input.ReqMap.DomainName == STRING
    input.Qs.next-token == STRING
    input.Qs.max-results == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListSegmentDefinitions

valid {
    input.ReqMap.DomainName == STRING
    input.Qs.max-results == INTEGER
    input.Qs.next-token == STRING
    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
}

ListWorkflows

enum_Status := [ "NOT_STARTED", "IN_PROGRESS", "COMPLETE", "FAILED", "SPLIT", "RETRY", "CANCELLED" ]
enum_WorkflowType := [ "APPFLOW_INTEGRATION" ]

valid {
    input.Body.WorkflowType == enum_WorkflowType[_]
    input.Body.Status == enum_Status[_]
    input.Body.QueryStartDate == TIMESTAMP
    input.Body.QueryEndDate == TIMESTAMP
    input.ReqMap.DomainName == STRING
    input.Qs.next-token == STRING
    input.Qs.max-results == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

MergeProfiles

valid {
    input.Body.MainProfileId == STRING
    input.Body.ProfileIdsToBeMerged[_] == STRING
    input.Body.FieldSourceProfileIds.AccountNumber == STRING
    input.Body.FieldSourceProfileIds.AdditionalInformation == STRING
    input.Body.FieldSourceProfileIds.PartyType == STRING
    input.Body.FieldSourceProfileIds.BusinessName == STRING
    input.Body.FieldSourceProfileIds.FirstName == STRING
    input.Body.FieldSourceProfileIds.MiddleName == STRING
    input.Body.FieldSourceProfileIds.LastName == STRING
    input.Body.FieldSourceProfileIds.BirthDate == STRING
    input.Body.FieldSourceProfileIds.Gender == STRING
    input.Body.FieldSourceProfileIds.PhoneNumber == STRING
    input.Body.FieldSourceProfileIds.MobilePhoneNumber == STRING
    input.Body.FieldSourceProfileIds.HomePhoneNumber == STRING
    input.Body.FieldSourceProfileIds.BusinessPhoneNumber == STRING
    input.Body.FieldSourceProfileIds.EmailAddress == STRING
    input.Body.FieldSourceProfileIds.PersonalEmailAddress == STRING
    input.Body.FieldSourceProfileIds.BusinessEmailAddress == STRING
    input.Body.FieldSourceProfileIds.Address == STRING
    input.Body.FieldSourceProfileIds.ShippingAddress == STRING
    input.Body.FieldSourceProfileIds.MailingAddress == STRING
    input.Body.FieldSourceProfileIds.BillingAddress == STRING
    input.Body.FieldSourceProfileIds.Attributes.STRING == STRING
    input.ReqMap.DomainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutIntegration

enum_DataPullMode := [ "Incremental", "Complete" ]
enum_MarketoConnectorOperator := [ "PROJECTION", "LESS_THAN", "GREATER_THAN", "BETWEEN", "ADDITION", "MULTIPLICATION", "DIVISION", "SUBTRACTION", "MASK_ALL", "MASK_FIRST_N", "MASK_LAST_N", "VALIDATE_NON_NULL", "VALIDATE_NON_ZERO", "VALIDATE_NON_NEGATIVE", "VALIDATE_NUMERIC", "NO_OP" ]
enum_S3ConnectorOperator := [ "PROJECTION", "LESS_THAN", "GREATER_THAN", "BETWEEN", "LESS_THAN_OR_EQUAL_TO", "GREATER_THAN_OR_EQUAL_TO", "EQUAL_TO", "NOT_EQUAL_TO", "ADDITION", "MULTIPLICATION", "DIVISION", "SUBTRACTION", "MASK_ALL", "MASK_FIRST_N", "MASK_LAST_N", "VALIDATE_NON_NULL", "VALIDATE_NON_ZERO", "VALIDATE_NON_NEGATIVE", "VALIDATE_NUMERIC", "NO_OP" ]
enum_SalesforceConnectorOperator := [ "PROJECTION", "LESS_THAN", "CONTAINS", "GREATER_THAN", "BETWEEN", "LESS_THAN_OR_EQUAL_TO", "GREATER_THAN_OR_EQUAL_TO", "EQUAL_TO", "NOT_EQUAL_TO", "ADDITION", "MULTIPLICATION", "DIVISION", "SUBTRACTION", "MASK_ALL", "MASK_FIRST_N", "MASK_LAST_N", "VALIDATE_NON_NULL", "VALIDATE_NON_ZERO", "VALIDATE_NON_NEGATIVE", "VALIDATE_NUMERIC", "NO_OP" ]
enum_ServiceNowConnectorOperator := [ "PROJECTION", "CONTAINS", "LESS_THAN", "GREATER_THAN", "BETWEEN", "LESS_THAN_OR_EQUAL_TO", "GREATER_THAN_OR_EQUAL_TO", "EQUAL_TO", "NOT_EQUAL_TO", "ADDITION", "MULTIPLICATION", "DIVISION", "SUBTRACTION", "MASK_ALL", "MASK_FIRST_N", "MASK_LAST_N", "VALIDATE_NON_NULL", "VALIDATE_NON_ZERO", "VALIDATE_NON_NEGATIVE", "VALIDATE_NUMERIC", "NO_OP" ]
enum_SourceConnectorType := [ "Salesforce", "Marketo", "Zendesk", "Servicenow", "S3" ]
enum_TaskType := [ "Arithmetic", "Filter", "Map", "Mask", "Merge", "Truncate", "Validate" ]
enum_TriggerType := [ "Scheduled", "Event", "OnDemand" ]
enum_ZendeskConnectorOperator := [ "PROJECTION", "GREATER_THAN", "ADDITION", "MULTIPLICATION", "DIVISION", "SUBTRACTION", "MASK_ALL", "MASK_FIRST_N", "MASK_LAST_N", "VALIDATE_NON_NULL", "VALIDATE_NON_ZERO", "VALIDATE_NON_NEGATIVE", "VALIDATE_NUMERIC", "NO_OP" ]

valid {
    input.Body.Uri == STRING
    input.Body.ObjectTypeName == STRING
    input.Body.Tags.STRING == STRING
    input.Body.FlowDefinition.Description == STRING
    input.Body.FlowDefinition.FlowName == STRING
    input.Body.FlowDefinition.KmsArn == STRING
    input.Body.FlowDefinition.SourceFlowConfig.ConnectorProfileName == STRING
    input.Body.FlowDefinition.SourceFlowConfig.ConnectorType == enum_SourceConnectorType[_]
    input.Body.FlowDefinition.SourceFlowConfig.IncrementalPullConfig.DatetimeTypeFieldName == STRING
    input.Body.FlowDefinition.SourceFlowConfig.SourceConnectorProperties.Marketo.Object == STRING
    input.Body.FlowDefinition.SourceFlowConfig.SourceConnectorProperties.S3.BucketName == STRING
    input.Body.FlowDefinition.SourceFlowConfig.SourceConnectorProperties.S3.BucketPrefix == STRING
    input.Body.FlowDefinition.SourceFlowConfig.SourceConnectorProperties.Salesforce.Object == STRING
    input.Body.FlowDefinition.SourceFlowConfig.SourceConnectorProperties.Salesforce.EnableDynamicFieldUpdate == BOOLEAN
    input.Body.FlowDefinition.SourceFlowConfig.SourceConnectorProperties.Salesforce.IncludeDeletedRecords == BOOLEAN
    input.Body.FlowDefinition.SourceFlowConfig.SourceConnectorProperties.ServiceNow.Object == STRING
    input.Body.FlowDefinition.SourceFlowConfig.SourceConnectorProperties.Zendesk.Object == STRING
    input.Body.FlowDefinition.Tasks[_].ConnectorOperator.Marketo == enum_MarketoConnectorOperator[_]
    input.Body.FlowDefinition.Tasks[_].ConnectorOperator.S3 == enum_S3ConnectorOperator[_]
    input.Body.FlowDefinition.Tasks[_].ConnectorOperator.Salesforce == enum_SalesforceConnectorOperator[_]
    input.Body.FlowDefinition.Tasks[_].ConnectorOperator.ServiceNow == enum_ServiceNowConnectorOperator[_]
    input.Body.FlowDefinition.Tasks[_].ConnectorOperator.Zendesk == enum_ZendeskConnectorOperator[_]
    input.Body.FlowDefinition.Tasks[_].DestinationField == STRING
    input.Body.FlowDefinition.Tasks[_].SourceFields[_] == STRING
    input.Body.FlowDefinition.Tasks[_].TaskProperties.VALUE == STRING
    input.Body.FlowDefinition.Tasks[_].TaskProperties.VALUES == STRING
    input.Body.FlowDefinition.Tasks[_].TaskProperties.DATA_TYPE == STRING
    input.Body.FlowDefinition.Tasks[_].TaskProperties.UPPER_BOUND == STRING
    input.Body.FlowDefinition.Tasks[_].TaskProperties.LOWER_BOUND == STRING
    input.Body.FlowDefinition.Tasks[_].TaskProperties.SOURCE_DATA_TYPE == STRING
    input.Body.FlowDefinition.Tasks[_].TaskProperties.DESTINATION_DATA_TYPE == STRING
    input.Body.FlowDefinition.Tasks[_].TaskProperties.VALIDATION_ACTION == STRING
    input.Body.FlowDefinition.Tasks[_].TaskProperties.MASK_VALUE == STRING
    input.Body.FlowDefinition.Tasks[_].TaskProperties.MASK_LENGTH == STRING
    input.Body.FlowDefinition.Tasks[_].TaskProperties.TRUNCATE_LENGTH == STRING
    input.Body.FlowDefinition.Tasks[_].TaskProperties.MATH_OPERATION_FIELDS_ORDER == STRING
    input.Body.FlowDefinition.Tasks[_].TaskProperties.CONCAT_FORMAT == STRING
    input.Body.FlowDefinition.Tasks[_].TaskProperties.SUBFIELD_CATEGORY_MAP == STRING
    input.Body.FlowDefinition.Tasks[_].TaskType == enum_TaskType[_]
    input.Body.FlowDefinition.TriggerConfig.TriggerType == enum_TriggerType[_]
    input.Body.FlowDefinition.TriggerConfig.TriggerProperties.Scheduled.ScheduleExpression == STRING
    input.Body.FlowDefinition.TriggerConfig.TriggerProperties.Scheduled.DataPullMode == enum_DataPullMode[_]
    input.Body.FlowDefinition.TriggerConfig.TriggerProperties.Scheduled.ScheduleStartTime == TIMESTAMP
    input.Body.FlowDefinition.TriggerConfig.TriggerProperties.Scheduled.ScheduleEndTime == TIMESTAMP
    input.Body.FlowDefinition.TriggerConfig.TriggerProperties.Scheduled.Timezone == STRING
    input.Body.FlowDefinition.TriggerConfig.TriggerProperties.Scheduled.ScheduleOffset == LONG
    input.Body.FlowDefinition.TriggerConfig.TriggerProperties.Scheduled.FirstExecutionFrom == TIMESTAMP
    input.Body.ObjectTypeNames.STRING == STRING
    input.Body.RoleArn == STRING
    input.ReqMap.DomainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutProfileObject

valid {
    input.Body.ObjectTypeName == STRING
    input.Body.Object == STRING
    input.ReqMap.DomainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutProfileObjectType

enum_FieldContentType := [ "STRING", "NUMBER", "PHONE_NUMBER", "EMAIL_ADDRESS", "NAME" ]
enum_StandardIdentifier := [ "PROFILE", "ASSET", "CASE", "ORDER", "COMMUNICATION_RECORD", "UNIQUE", "SECONDARY", "LOOKUP_ONLY", "NEW_ONLY" ]

valid {
    input.Body.Description == STRING
    input.Body.TemplateId == STRING
    input.Body.ExpirationDays == INTEGER
    input.Body.EncryptionKey == STRING
    input.Body.AllowProfileCreation == BOOLEAN
    input.Body.SourceLastUpdatedTimestampFormat == STRING
    input.Body.MaxProfileObjectCount == INTEGER
    input.Body.Fields.STRING.Source == STRING
    input.Body.Fields.STRING.Target == STRING
    input.Body.Fields.STRING.ContentType == enum_FieldContentType[_]
    input.Body.Keys.STRING[_].StandardIdentifiers[_] == enum_StandardIdentifier[_]
    input.Body.Keys.STRING[_].FieldNames[_] == STRING
    input.Body.Tags.STRING == STRING
    input.ReqMap.DomainName == STRING
    input.ReqMap.ObjectTypeName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchProfiles

enum_logicalOperator := [ "AND", "OR" ]

valid {
    input.Body.KeyName == STRING
    input.Body.Values[_] == STRING
    input.Body.AdditionalSearchKeys[_].KeyName == STRING
    input.Body.AdditionalSearchKeys[_].Values[_] == STRING
    input.Body.LogicalOperator == enum_logicalOperator[_]
    input.ReqMap.DomainName == STRING
    input.Qs.next-token == STRING
    input.Qs.max-results == INTEGER
    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
}

UntagResource

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

UpdateCalculatedAttributeDefinition

enum_Operator := [ "EQUAL_TO", "GREATER_THAN", "LESS_THAN", "NOT_EQUAL_TO" ]
enum_Unit := [ "DAYS" ]

valid {
    input.Body.DisplayName == STRING
    input.Body.Description == STRING
    input.Body.Conditions.Range.Value == INTEGER
    input.Body.Conditions.Range.Unit == enum_Unit[_]
    input.Body.Conditions.ObjectCount == INTEGER
    input.Body.Conditions.Threshold.Value == STRING
    input.Body.Conditions.Threshold.Operator == enum_Operator[_]
    input.ReqMap.DomainName == STRING
    input.ReqMap.CalculatedAttributeName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateDomain

enum_AttributeMatchingModel := [ "ONE_TO_ONE", "MANY_TO_MANY" ]
enum_ConflictResolvingModel := [ "RECENCY", "SOURCE" ]
enum_JobScheduleDayOfTheWeek := [ "SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY" ]

valid {
    input.Body.DefaultExpirationDays == INTEGER
    input.Body.DefaultEncryptionKey == STRING
    input.Body.DeadLetterQueueUrl == STRING
    input.Body.Matching.Enabled == BOOLEAN
    input.Body.Matching.JobSchedule.DayOfTheWeek == enum_JobScheduleDayOfTheWeek[_]
    input.Body.Matching.JobSchedule.Time == STRING
    input.Body.Matching.AutoMerging.Enabled == BOOLEAN
    input.Body.Matching.AutoMerging.Consolidation.MatchingAttributesList[_][_] == STRING
    input.Body.Matching.AutoMerging.ConflictResolution.ConflictResolvingModel == enum_ConflictResolvingModel[_]
    input.Body.Matching.AutoMerging.ConflictResolution.SourceName == STRING
    input.Body.Matching.AutoMerging.MinAllowedConfidenceScoreForMerging == DOUBLE
    input.Body.Matching.ExportingConfig.S3Exporting.S3BucketName == STRING
    input.Body.Matching.ExportingConfig.S3Exporting.S3KeyName == STRING
    input.Body.RuleBasedMatching.Enabled == BOOLEAN
    input.Body.RuleBasedMatching.MatchingRules[_].Rule[_] == STRING
    input.Body.RuleBasedMatching.MaxAllowedRuleLevelForMerging == INTEGER
    input.Body.RuleBasedMatching.MaxAllowedRuleLevelForMatching == INTEGER
    input.Body.RuleBasedMatching.AttributeTypesSelector.AttributeMatchingModel == enum_AttributeMatchingModel[_]
    input.Body.RuleBasedMatching.AttributeTypesSelector.Address[_] == STRING
    input.Body.RuleBasedMatching.AttributeTypesSelector.PhoneNumber[_] == STRING
    input.Body.RuleBasedMatching.AttributeTypesSelector.EmailAddress[_] == STRING
    input.Body.RuleBasedMatching.ConflictResolution.ConflictResolvingModel == enum_ConflictResolvingModel[_]
    input.Body.RuleBasedMatching.ConflictResolution.SourceName == STRING
    input.Body.RuleBasedMatching.ExportingConfig.S3Exporting.S3BucketName == STRING
    input.Body.RuleBasedMatching.ExportingConfig.S3Exporting.S3KeyName == STRING
    input.Body.Tags.STRING == STRING
    input.ReqMap.DomainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateProfile

enum_Gender := [ "MALE", "FEMALE", "UNSPECIFIED" ]
enum_PartyType := [ "INDIVIDUAL", "BUSINESS", "OTHER" ]

valid {
    input.Body.ProfileId == STRING
    input.Body.AdditionalInformation == STRING
    input.Body.AccountNumber == STRING
    input.Body.PartyType == enum_PartyType[_]
    input.Body.BusinessName == STRING
    input.Body.FirstName == STRING
    input.Body.MiddleName == STRING
    input.Body.LastName == STRING
    input.Body.BirthDate == STRING
    input.Body.Gender == enum_Gender[_]
    input.Body.PhoneNumber == STRING
    input.Body.MobilePhoneNumber == STRING
    input.Body.HomePhoneNumber == STRING
    input.Body.BusinessPhoneNumber == STRING
    input.Body.EmailAddress == STRING
    input.Body.PersonalEmailAddress == STRING
    input.Body.BusinessEmailAddress == STRING
    input.Body.Address.Address1 == STRING
    input.Body.Address.Address2 == STRING
    input.Body.Address.Address3 == STRING
    input.Body.Address.Address4 == STRING
    input.Body.Address.City == STRING
    input.Body.Address.County == STRING
    input.Body.Address.State == STRING
    input.Body.Address.Province == STRING
    input.Body.Address.Country == STRING
    input.Body.Address.PostalCode == STRING
    input.Body.ShippingAddress.Address1 == STRING
    input.Body.ShippingAddress.Address2 == STRING
    input.Body.ShippingAddress.Address3 == STRING
    input.Body.ShippingAddress.Address4 == STRING
    input.Body.ShippingAddress.City == STRING
    input.Body.ShippingAddress.County == STRING
    input.Body.ShippingAddress.State == STRING
    input.Body.ShippingAddress.Province == STRING
    input.Body.ShippingAddress.Country == STRING
    input.Body.ShippingAddress.PostalCode == STRING
    input.Body.MailingAddress.Address1 == STRING
    input.Body.MailingAddress.Address2 == STRING
    input.Body.MailingAddress.Address3 == STRING
    input.Body.MailingAddress.Address4 == STRING
    input.Body.MailingAddress.City == STRING
    input.Body.MailingAddress.County == STRING
    input.Body.MailingAddress.State == STRING
    input.Body.MailingAddress.Province == STRING
    input.Body.MailingAddress.Country == STRING
    input.Body.MailingAddress.PostalCode == STRING
    input.Body.BillingAddress.Address1 == STRING
    input.Body.BillingAddress.Address2 == STRING
    input.Body.BillingAddress.Address3 == STRING
    input.Body.BillingAddress.Address4 == STRING
    input.Body.BillingAddress.City == STRING
    input.Body.BillingAddress.County == STRING
    input.Body.BillingAddress.State == STRING
    input.Body.BillingAddress.Province == STRING
    input.Body.BillingAddress.Country == STRING
    input.Body.BillingAddress.PostalCode == STRING
    input.Body.Attributes.STRING == STRING
    input.Body.PartyTypeString == STRING
    input.Body.GenderString == STRING
    input.ReqMap.DomainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}