import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class Task { ConnectorOperator ? : ConnectorOperator ; SourceFields ! : List < Value < string > > ; DestinationField ? : Value < string > ; TaskType ! : Value < string > ; TaskProperties ? : List < TaskPropertiesMap > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class TriggerProperties { Scheduled ? : ScheduledTriggerProperties ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ScheduledTriggerProperties { ScheduleExpression ! : Value < string > ; DataPullMode ? : Value < string > ; ScheduleStartTime ? : Value < number > ; ScheduleEndTime ? : Value < number > ; Timezone ? : Value < string > ; ScheduleOffset ? : Value < number > ; FirstExecutionFrom ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class S3SourceProperties { BucketName ! : Value < string > ; BucketPrefix ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class FlowDefinition { FlowName ! : Value < string > ; Description ? : Value < string > ; KmsArn ! : Value < string > ; Tasks ! : List < Task > ; TriggerConfig ! : TriggerConfig ; SourceFlowConfig ! : SourceFlowConfig ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class IncrementalPullConfig { DatetimeTypeFieldName ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class MarketoSourceProperties { Object ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class TaskPropertiesMap { OperatorPropertyKey ! : Value < string > ; Property ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ConnectorOperator { Marketo ? : Value < string > ; S3 ? : Value < string > ; Salesforce ? : Value < string > ; ServiceNow ? : Value < string > ; Zendesk ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ZendeskSourceProperties { Object ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class SourceConnectorProperties { Marketo ? : MarketoSourceProperties ; S3 ? : S3SourceProperties ; Salesforce ? : SalesforceSourceProperties ; ServiceNow ? : ServiceNowSourceProperties ; Zendesk ? : ZendeskSourceProperties ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ServiceNowSourceProperties { Object ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class SalesforceSourceProperties { Object ! : Value < string > ; EnableDynamicFieldUpdate ? : Value < boolean > ; IncludeDeletedRecords ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class TriggerConfig { TriggerType ! : Value < string > ; TriggerProperties ? : TriggerProperties ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class SourceFlowConfig { ConnectorType ! : Value < string > ; ConnectorProfileName ? : Value < string > ; IncrementalPullConfig ? : IncrementalPullConfig ; SourceConnectorProperties ! : SourceConnectorProperties ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface IntegrationProperties { DomainName : Value < string > ; Uri ? : Value < string > ; FlowDefinition ? : FlowDefinition ; ObjectTypeName : Value < string > ; Tags ? : List < ResourceTag > ; } export default class Integration extends ResourceBase < IntegrationProperties > { static Task = Task ; static TriggerProperties = TriggerProperties ; static ScheduledTriggerProperties = ScheduledTriggerProperties ; static S3SourceProperties = S3SourceProperties ; static FlowDefinition = FlowDefinition ; static IncrementalPullConfig = IncrementalPullConfig ; static MarketoSourceProperties = MarketoSourceProperties ; static TaskPropertiesMap = TaskPropertiesMap ; static ConnectorOperator = ConnectorOperator ; static ZendeskSourceProperties = ZendeskSourceProperties ; static SourceConnectorProperties = SourceConnectorProperties ; static ServiceNowSourceProperties = ServiceNowSourceProperties ; static SalesforceSourceProperties = SalesforceSourceProperties ; static TriggerConfig = TriggerConfig ; static SourceFlowConfig = SourceFlowConfig ; constructor ( properties ) { super ( 'AWS::CustomerProfiles::Integration' , properties ) ; } }