# Copyright (c) 2012-2024, Mark Peek <mark@peek.org>
# All rights reserved.
#
# See LICENSE file for full license.
#
# *** Do not modify - this file is autogenerated ***
from . import AWSObject, AWSProperty, PropsDictType, Tags
from .validators import boolean, double, integer
[docs]class AttributeItem(AWSProperty):
"""
`AttributeItem <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-calculatedattributedefinition-attributeitem.html>`__
"""
props: PropsDictType = {
"Name": (str, True),
}
[docs]class AttributeDetails(AWSProperty):
"""
`AttributeDetails <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-calculatedattributedefinition-attributedetails.html>`__
"""
props: PropsDictType = {
"Attributes": ([AttributeItem], True),
"Expression": (str, True),
}
[docs]class Range(AWSProperty):
"""
`Range <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-calculatedattributedefinition-range.html>`__
"""
props: PropsDictType = {
"Unit": (str, True),
"Value": (integer, True),
}
[docs]class Threshold(AWSProperty):
"""
`Threshold <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-calculatedattributedefinition-threshold.html>`__
"""
props: PropsDictType = {
"Operator": (str, True),
"Value": (str, True),
}
[docs]class Conditions(AWSProperty):
"""
`Conditions <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-calculatedattributedefinition-conditions.html>`__
"""
props: PropsDictType = {
"ObjectCount": (integer, False),
"Range": (Range, False),
"Threshold": (Threshold, False),
}
[docs]class CalculatedAttributeDefinition(AWSObject):
"""
`CalculatedAttributeDefinition <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-calculatedattributedefinition.html>`__
"""
resource_type = "AWS::CustomerProfiles::CalculatedAttributeDefinition"
props: PropsDictType = {
"AttributeDetails": (AttributeDetails, True),
"CalculatedAttributeName": (str, True),
"Conditions": (Conditions, False),
"Description": (str, False),
"DisplayName": (str, False),
"DomainName": (str, True),
"Statistic": (str, True),
"Tags": (Tags, False),
}
[docs]class ConflictResolution(AWSProperty):
"""
`ConflictResolution <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-conflictresolution.html>`__
"""
props: PropsDictType = {
"ConflictResolvingModel": (str, True),
"SourceName": (str, False),
}
[docs]class Consolidation(AWSProperty):
"""
`Consolidation <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-consolidation.html>`__
"""
props: PropsDictType = {
"MatchingAttributesList": (dict, True),
}
[docs]class AutoMerging(AWSProperty):
"""
`AutoMerging <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-automerging.html>`__
"""
props: PropsDictType = {
"ConflictResolution": (ConflictResolution, False),
"Consolidation": (Consolidation, False),
"Enabled": (boolean, True),
"MinAllowedConfidenceScoreForMerging": (double, False),
}
[docs]class S3ExportingConfig(AWSProperty):
"""
`S3ExportingConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-s3exportingconfig.html>`__
"""
props: PropsDictType = {
"S3BucketName": (str, True),
"S3KeyName": (str, False),
}
[docs]class ExportingConfig(AWSProperty):
"""
`ExportingConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-exportingconfig.html>`__
"""
props: PropsDictType = {
"S3Exporting": (S3ExportingConfig, False),
}
[docs]class JobSchedule(AWSProperty):
"""
`JobSchedule <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-jobschedule.html>`__
"""
props: PropsDictType = {
"DayOfTheWeek": (str, True),
"Time": (str, True),
}
[docs]class Matching(AWSProperty):
"""
`Matching <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-matching.html>`__
"""
props: PropsDictType = {
"AutoMerging": (AutoMerging, False),
"Enabled": (boolean, True),
"ExportingConfig": (ExportingConfig, False),
"JobSchedule": (JobSchedule, False),
}
[docs]class AttributeTypesSelector(AWSProperty):
"""
`AttributeTypesSelector <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-attributetypesselector.html>`__
"""
props: PropsDictType = {
"Address": ([str], False),
"AttributeMatchingModel": (str, True),
"EmailAddress": ([str], False),
"PhoneNumber": ([str], False),
}
[docs]class MatchingRule(AWSProperty):
"""
`MatchingRule <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-matchingrule.html>`__
"""
props: PropsDictType = {
"Rule": ([str], True),
}
[docs]class RuleBasedMatching(AWSProperty):
"""
`RuleBasedMatching <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-rulebasedmatching.html>`__
"""
props: PropsDictType = {
"AttributeTypesSelector": (AttributeTypesSelector, False),
"ConflictResolution": (ConflictResolution, False),
"Enabled": (boolean, True),
"ExportingConfig": (ExportingConfig, False),
"MatchingRules": ([MatchingRule], False),
"MaxAllowedRuleLevelForMatching": (integer, False),
"MaxAllowedRuleLevelForMerging": (integer, False),
"Status": (str, False),
}
[docs]class Domain(AWSObject):
"""
`Domain <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-domain.html>`__
"""
resource_type = "AWS::CustomerProfiles::Domain"
props: PropsDictType = {
"DeadLetterQueueUrl": (str, False),
"DefaultEncryptionKey": (str, False),
"DefaultExpirationDays": (integer, True),
"DomainName": (str, True),
"Matching": (Matching, False),
"RuleBasedMatching": (RuleBasedMatching, False),
"Tags": (Tags, False),
}
[docs]class EventStream(AWSObject):
"""
`EventStream <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-eventstream.html>`__
"""
resource_type = "AWS::CustomerProfiles::EventStream"
props: PropsDictType = {
"DomainName": (str, True),
"EventStreamName": (str, True),
"Tags": (Tags, False),
"Uri": (str, True),
}
[docs]class IncrementalPullConfig(AWSProperty):
"""
`IncrementalPullConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-incrementalpullconfig.html>`__
"""
props: PropsDictType = {
"DatetimeTypeFieldName": (str, False),
}
[docs]class MarketoSourceProperties(AWSProperty):
"""
`MarketoSourceProperties <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-marketosourceproperties.html>`__
"""
props: PropsDictType = {
"Object": (str, True),
}
[docs]class S3SourceProperties(AWSProperty):
"""
`S3SourceProperties <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-s3sourceproperties.html>`__
"""
props: PropsDictType = {
"BucketName": (str, True),
"BucketPrefix": (str, False),
}
[docs]class SalesforceSourceProperties(AWSProperty):
"""
`SalesforceSourceProperties <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-salesforcesourceproperties.html>`__
"""
props: PropsDictType = {
"EnableDynamicFieldUpdate": (boolean, False),
"IncludeDeletedRecords": (boolean, False),
"Object": (str, True),
}
[docs]class ServiceNowSourceProperties(AWSProperty):
"""
`ServiceNowSourceProperties <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-servicenowsourceproperties.html>`__
"""
props: PropsDictType = {
"Object": (str, True),
}
[docs]class ZendeskSourceProperties(AWSProperty):
"""
`ZendeskSourceProperties <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-zendesksourceproperties.html>`__
"""
props: PropsDictType = {
"Object": (str, True),
}
[docs]class SourceConnectorProperties(AWSProperty):
"""
`SourceConnectorProperties <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceconnectorproperties.html>`__
"""
props: PropsDictType = {
"Marketo": (MarketoSourceProperties, False),
"S3": (S3SourceProperties, False),
"Salesforce": (SalesforceSourceProperties, False),
"ServiceNow": (ServiceNowSourceProperties, False),
"Zendesk": (ZendeskSourceProperties, False),
}
[docs]class SourceFlowConfig(AWSProperty):
"""
`SourceFlowConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceflowconfig.html>`__
"""
props: PropsDictType = {
"ConnectorProfileName": (str, False),
"ConnectorType": (str, True),
"IncrementalPullConfig": (IncrementalPullConfig, False),
"SourceConnectorProperties": (SourceConnectorProperties, True),
}
[docs]class ConnectorOperator(AWSProperty):
"""
`ConnectorOperator <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-connectoroperator.html>`__
"""
props: PropsDictType = {
"Marketo": (str, False),
"S3": (str, False),
"Salesforce": (str, False),
"ServiceNow": (str, False),
"Zendesk": (str, False),
}
[docs]class TaskPropertiesMap(AWSProperty):
"""
`TaskPropertiesMap <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-taskpropertiesmap.html>`__
"""
props: PropsDictType = {
"OperatorPropertyKey": (str, True),
"Property": (str, True),
}
[docs]class Task(AWSProperty):
"""
`Task <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-task.html>`__
"""
props: PropsDictType = {
"ConnectorOperator": (ConnectorOperator, False),
"DestinationField": (str, False),
"SourceFields": ([str], True),
"TaskProperties": ([TaskPropertiesMap], False),
"TaskType": (str, True),
}
[docs]class ScheduledTriggerProperties(AWSProperty):
"""
`ScheduledTriggerProperties <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-scheduledtriggerproperties.html>`__
"""
props: PropsDictType = {
"DataPullMode": (str, False),
"FirstExecutionFrom": (double, False),
"ScheduleEndTime": (double, False),
"ScheduleExpression": (str, True),
"ScheduleOffset": (integer, False),
"ScheduleStartTime": (double, False),
"Timezone": (str, False),
}
[docs]class TriggerProperties(AWSProperty):
"""
`TriggerProperties <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-triggerproperties.html>`__
"""
props: PropsDictType = {
"Scheduled": (ScheduledTriggerProperties, False),
}
[docs]class TriggerConfig(AWSProperty):
"""
`TriggerConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-triggerconfig.html>`__
"""
props: PropsDictType = {
"TriggerProperties": (TriggerProperties, False),
"TriggerType": (str, True),
}
[docs]class FlowDefinition(AWSProperty):
"""
`FlowDefinition <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-flowdefinition.html>`__
"""
props: PropsDictType = {
"Description": (str, False),
"FlowName": (str, True),
"KmsArn": (str, True),
"SourceFlowConfig": (SourceFlowConfig, True),
"Tasks": ([Task], True),
"TriggerConfig": (TriggerConfig, True),
}
[docs]class ObjectTypeMapping(AWSProperty):
"""
`ObjectTypeMapping <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-objecttypemapping.html>`__
"""
props: PropsDictType = {
"Key": (str, True),
"Value": (str, True),
}
[docs]class Integration(AWSObject):
"""
`Integration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-integration.html>`__
"""
resource_type = "AWS::CustomerProfiles::Integration"
props: PropsDictType = {
"DomainName": (str, True),
"FlowDefinition": (FlowDefinition, False),
"ObjectTypeName": (str, False),
"ObjectTypeNames": ([ObjectTypeMapping], False),
"Tags": (Tags, False),
"Uri": (str, False),
}
[docs]class ObjectTypeField(AWSProperty):
"""
`ObjectTypeField <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-objecttypefield.html>`__
"""
props: PropsDictType = {
"ContentType": (str, False),
"Source": (str, False),
"Target": (str, False),
}
[docs]class FieldMap(AWSProperty):
"""
`FieldMap <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-fieldmap.html>`__
"""
props: PropsDictType = {
"Name": (str, False),
"ObjectTypeField": (ObjectTypeField, False),
}
[docs]class ObjectTypeKey(AWSProperty):
"""
`ObjectTypeKey <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-objecttypekey.html>`__
"""
props: PropsDictType = {
"FieldNames": ([str], False),
"StandardIdentifiers": ([str], False),
}
[docs]class KeyMap(AWSProperty):
"""
`KeyMap <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-keymap.html>`__
"""
props: PropsDictType = {
"Name": (str, False),
"ObjectTypeKeyList": ([ObjectTypeKey], False),
}
[docs]class ObjectType(AWSObject):
"""
`ObjectType <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-objecttype.html>`__
"""
resource_type = "AWS::CustomerProfiles::ObjectType"
props: PropsDictType = {
"AllowProfileCreation": (boolean, False),
"Description": (str, True),
"DomainName": (str, True),
"EncryptionKey": (str, False),
"ExpirationDays": (integer, False),
"Fields": ([FieldMap], False),
"Keys": ([KeyMap], False),
"ObjectTypeName": (str, True),
"SourceLastUpdatedTimestampFormat": (str, False),
"Tags": (Tags, False),
"TemplateId": (str, False),
}
[docs]class DestinationDetails(AWSProperty):
"""
`DestinationDetails <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-eventstream-destinationdetails.html>`__
"""
props: PropsDictType = {
"Status": (str, True),
"Uri": (str, True),
}
[docs]class DomainStats(AWSProperty):
"""
`DomainStats <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-domain-domainstats.html>`__
"""
props: PropsDictType = {
"MeteringProfileCount": (double, False),
"ObjectCount": (double, False),
"ProfileCount": (double, False),
"TotalSize": (double, False),
}