1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	"time"
7)
8
9// The aggregation settings that you can use to customize the output format of your
10// flow data.
11type AggregationConfig struct {
12
13	// Specifies whether Amazon AppFlow aggregates the flow records into a single file,
14	// or leave them unaggregated.
15	AggregationType AggregationType
16}
17
18// The connector-specific credentials required when using Amplitude.
19type AmplitudeConnectorProfileCredentials struct {
20
21	// A unique alphanumeric identifier used to authenticate a user, developer, or
22	// calling program to your API.
23	//
24	// This member is required.
25	ApiKey *string
26
27	// The Secret Access Key portion of the credentials.
28	//
29	// This member is required.
30	SecretKey *string
31}
32
33// The connector-specific profile properties required when using Amplitude.
34type AmplitudeConnectorProfileProperties struct {
35}
36
37// The connector metadata specific to Amplitude.
38type AmplitudeMetadata struct {
39}
40
41// The properties that are applied when Amplitude is being used as a source.
42type AmplitudeSourceProperties struct {
43
44	// The object specified in the Amplitude flow source.
45	//
46	// This member is required.
47	Object *string
48}
49
50// The configuration settings related to a given connector.
51type ConnectorConfiguration struct {
52
53	// Specifies whether the connector can be used as a destination.
54	CanUseAsDestination bool
55
56	// Specifies whether the connector can be used as a source.
57	CanUseAsSource bool
58
59	// Specifies connector-specific metadata such as oAuthScopes, supportedRegions,
60	// privateLinkServiceUrl, and so on.
61	ConnectorMetadata *ConnectorMetadata
62
63	// Specifies if PrivateLink is enabled for that connector.
64	IsPrivateLinkEnabled bool
65
66	// Specifies if a PrivateLink endpoint URL is required.
67	IsPrivateLinkEndpointUrlRequired bool
68
69	// Lists the connectors that are available for use as destinations.
70	SupportedDestinationConnectors []ConnectorType
71
72	// Specifies the supported flow frequency for that connector.
73	SupportedSchedulingFrequencies []ScheduleFrequencyType
74
75	// Specifies the supported trigger types for the flow.
76	SupportedTriggerTypes []TriggerType
77}
78
79// The high-level entity that can be queried in Amazon AppFlow. For example, a
80// Salesforce entity might be an Account or Opportunity, whereas a ServiceNow
81// entity might be an Incident.
82type ConnectorEntity struct {
83
84	// The name of the connector entity.
85	//
86	// This member is required.
87	Name *string
88
89	// Specifies whether the connector entity is a parent or a category and has more
90	// entities nested underneath it. If another call is made with entitiesPath =
91	// "the_current_entity_name_with_hasNestedEntities_true", then it returns the
92	// nested entities underneath it. This provides a way to retrieve all supported
93	// entities in a recursive fashion.
94	HasNestedEntities bool
95
96	// The label applied to the connector entity.
97	Label *string
98}
99
100// Describes the data model of a connector field. For example, for an account
101// entity, the fields would be account name, account ID, and so on.
102type ConnectorEntityField struct {
103
104	// The unique identifier of the connector field.
105	//
106	// This member is required.
107	Identifier *string
108
109	// A description of the connector entity field.
110	Description *string
111
112	// The properties applied to a field when the connector is being used as a
113	// destination.
114	DestinationProperties *DestinationFieldProperties
115
116	// The label applied to a connector entity field.
117	Label *string
118
119	// The properties that can be applied to a field when the connector is being used
120	// as a source.
121	SourceProperties *SourceFieldProperties
122
123	// Contains details regarding the supported FieldType, including the corresponding
124	// filterOperators and supportedValues.
125	SupportedFieldTypeDetails *SupportedFieldTypeDetails
126}
127
128// A structure to specify connector-specific metadata such as oAuthScopes,
129// supportedRegions, privateLinkServiceUrl, and so on.
130type ConnectorMetadata struct {
131
132	// The connector metadata specific to Amplitude.
133	Amplitude *AmplitudeMetadata
134
135	// The connector metadata specific to Datadog.
136	Datadog *DatadogMetadata
137
138	// The connector metadata specific to Dynatrace.
139	Dynatrace *DynatraceMetadata
140
141	// The connector metadata specific to Amazon EventBridge.
142	EventBridge *EventBridgeMetadata
143
144	// The connector metadata specific to Google Analytics.
145	GoogleAnalytics *GoogleAnalyticsMetadata
146
147	// The connector metadata specific to Infor Nexus.
148	InforNexus *InforNexusMetadata
149
150	// The connector metadata specific to Marketo.
151	Marketo *MarketoMetadata
152
153	// The connector metadata specific to Amazon Redshift.
154	Redshift *RedshiftMetadata
155
156	// The connector metadata specific to Amazon S3.
157	S3 *S3Metadata
158
159	// The connector metadata specific to Salesforce.
160	Salesforce *SalesforceMetadata
161
162	// The connector metadata specific to ServiceNow.
163	ServiceNow *ServiceNowMetadata
164
165	// The connector metadata specific to Singular.
166	Singular *SingularMetadata
167
168	// The connector metadata specific to Slack.
169	Slack *SlackMetadata
170
171	// The connector metadata specific to Snowflake.
172	Snowflake *SnowflakeMetadata
173
174	// The connector metadata specific to Trend Micro.
175	Trendmicro *TrendmicroMetadata
176
177	// The connector metadata specific to Upsolver.
178	Upsolver *UpsolverMetadata
179
180	// The connector metadata specific to Veeva.
181	Veeva *VeevaMetadata
182
183	// The connector metadata specific to Zendesk.
184	Zendesk *ZendeskMetadata
185}
186
187// Used by select connectors for which the OAuth workflow is supported, such as
188// Salesforce, Google Analytics, Marketo, Zendesk, and Slack.
189type ConnectorOAuthRequest struct {
190
191	// The code provided by the connector when it has been authenticated via the
192	// connected app.
193	AuthCode *string
194
195	// The URL to which the authentication server redirects the browser after
196	// authorization has been granted.
197	RedirectUri *string
198}
199
200// The operation to be performed on the provided source fields.
201type ConnectorOperator struct {
202
203	// The operation to be performed on the provided Amplitude source fields.
204	Amplitude AmplitudeConnectorOperator
205
206	// The operation to be performed on the provided Datadog source fields.
207	Datadog DatadogConnectorOperator
208
209	// The operation to be performed on the provided Dynatrace source fields.
210	Dynatrace DynatraceConnectorOperator
211
212	// The operation to be performed on the provided Google Analytics source fields.
213	GoogleAnalytics GoogleAnalyticsConnectorOperator
214
215	// The operation to be performed on the provided Infor Nexus source fields.
216	InforNexus InforNexusConnectorOperator
217
218	// The operation to be performed on the provided Marketo source fields.
219	Marketo MarketoConnectorOperator
220
221	// The operation to be performed on the provided Amazon S3 source fields.
222	S3 S3ConnectorOperator
223
224	// The operation to be performed on the provided Salesforce source fields.
225	Salesforce SalesforceConnectorOperator
226
227	// The operation to be performed on the provided ServiceNow source fields.
228	ServiceNow ServiceNowConnectorOperator
229
230	// The operation to be performed on the provided Singular source fields.
231	Singular SingularConnectorOperator
232
233	// The operation to be performed on the provided Slack source fields.
234	Slack SlackConnectorOperator
235
236	// The operation to be performed on the provided Trend Micro source fields.
237	Trendmicro TrendmicroConnectorOperator
238
239	// The operation to be performed on the provided Veeva source fields.
240	Veeva VeevaConnectorOperator
241
242	// The operation to be performed on the provided Zendesk source fields.
243	Zendesk ZendeskConnectorOperator
244}
245
246// Describes an instance of a connector. This includes the provided name,
247// credentials ARN, connection-mode, and so on. To keep the API intuitive and
248// extensible, the fields that are common to all types of connector profiles are
249// explicitly specified at the top level. The rest of the connector-specific
250// properties are available via the connectorProfileProperties field.
251type ConnectorProfile struct {
252
253	// Indicates the connection mode and if it is public or private.
254	ConnectionMode ConnectionMode
255
256	// The Amazon Resource Name (ARN) of the connector profile.
257	ConnectorProfileArn *string
258
259	// The name of the connector profile. The name is unique for each ConnectorProfile
260	// in the AWS account.
261	ConnectorProfileName *string
262
263	// The connector-specific properties of the profile configuration.
264	ConnectorProfileProperties *ConnectorProfileProperties
265
266	// The type of connector, such as Salesforce, Amplitude, and so on.
267	ConnectorType ConnectorType
268
269	// Specifies when the connector profile was created.
270	CreatedAt *time.Time
271
272	// The Amazon Resource Name (ARN) of the connector profile credentials.
273	CredentialsArn *string
274
275	// Specifies when the connector profile was last updated.
276	LastUpdatedAt *time.Time
277}
278
279// Defines the connector-specific configuration and credentials for the connector
280// profile.
281type ConnectorProfileConfig struct {
282
283	// The connector-specific credentials required by each connector.
284	//
285	// This member is required.
286	ConnectorProfileCredentials *ConnectorProfileCredentials
287
288	// The connector-specific properties of the profile configuration.
289	//
290	// This member is required.
291	ConnectorProfileProperties *ConnectorProfileProperties
292}
293
294// The connector-specific credentials required by a connector.
295type ConnectorProfileCredentials struct {
296
297	// The connector-specific credentials required when using Amplitude.
298	Amplitude *AmplitudeConnectorProfileCredentials
299
300	// The connector-specific credentials required when using Datadog.
301	Datadog *DatadogConnectorProfileCredentials
302
303	// The connector-specific credentials required when using Dynatrace.
304	Dynatrace *DynatraceConnectorProfileCredentials
305
306	// The connector-specific credentials required when using Google Analytics.
307	GoogleAnalytics *GoogleAnalyticsConnectorProfileCredentials
308
309	// The connector-specific credentials required when using Infor Nexus.
310	InforNexus *InforNexusConnectorProfileCredentials
311
312	// The connector-specific credentials required when using Marketo.
313	Marketo *MarketoConnectorProfileCredentials
314
315	// The connector-specific credentials required when using Amazon Redshift.
316	Redshift *RedshiftConnectorProfileCredentials
317
318	// The connector-specific credentials required when using Salesforce.
319	Salesforce *SalesforceConnectorProfileCredentials
320
321	// The connector-specific credentials required when using ServiceNow.
322	ServiceNow *ServiceNowConnectorProfileCredentials
323
324	// The connector-specific credentials required when using Singular.
325	Singular *SingularConnectorProfileCredentials
326
327	// The connector-specific credentials required when using Slack.
328	Slack *SlackConnectorProfileCredentials
329
330	// The connector-specific credentials required when using Snowflake.
331	Snowflake *SnowflakeConnectorProfileCredentials
332
333	// The connector-specific credentials required when using Trend Micro.
334	Trendmicro *TrendmicroConnectorProfileCredentials
335
336	// The connector-specific credentials required when using Veeva.
337	Veeva *VeevaConnectorProfileCredentials
338
339	// The connector-specific credentials required when using Zendesk.
340	Zendesk *ZendeskConnectorProfileCredentials
341}
342
343// The connector-specific profile properties required by each connector.
344type ConnectorProfileProperties struct {
345
346	// The connector-specific properties required by Amplitude.
347	Amplitude *AmplitudeConnectorProfileProperties
348
349	// The connector-specific properties required by Datadog.
350	Datadog *DatadogConnectorProfileProperties
351
352	// The connector-specific properties required by Dynatrace.
353	Dynatrace *DynatraceConnectorProfileProperties
354
355	// The connector-specific properties required Google Analytics.
356	GoogleAnalytics *GoogleAnalyticsConnectorProfileProperties
357
358	// The connector-specific properties required by Infor Nexus.
359	InforNexus *InforNexusConnectorProfileProperties
360
361	// The connector-specific properties required by Marketo.
362	Marketo *MarketoConnectorProfileProperties
363
364	// The connector-specific properties required by Amazon Redshift.
365	Redshift *RedshiftConnectorProfileProperties
366
367	// The connector-specific properties required by Salesforce.
368	Salesforce *SalesforceConnectorProfileProperties
369
370	// The connector-specific properties required by serviceNow.
371	ServiceNow *ServiceNowConnectorProfileProperties
372
373	// The connector-specific properties required by Singular.
374	Singular *SingularConnectorProfileProperties
375
376	// The connector-specific properties required by Slack.
377	Slack *SlackConnectorProfileProperties
378
379	// The connector-specific properties required by Snowflake.
380	Snowflake *SnowflakeConnectorProfileProperties
381
382	// The connector-specific properties required by Trend Micro.
383	Trendmicro *TrendmicroConnectorProfileProperties
384
385	// The connector-specific properties required by Veeva.
386	Veeva *VeevaConnectorProfileProperties
387
388	// The connector-specific properties required by Zendesk.
389	Zendesk *ZendeskConnectorProfileProperties
390}
391
392// The connector-specific credentials required by Datadog.
393type DatadogConnectorProfileCredentials struct {
394
395	// A unique alphanumeric identifier used to authenticate a user, developer, or
396	// calling program to your API.
397	//
398	// This member is required.
399	ApiKey *string
400
401	// Application keys, in conjunction with your API key, give you full access to
402	// Datadog’s programmatic API. Application keys are associated with the user
403	// account that created them. The application key is used to log all requests made
404	// to the API.
405	//
406	// This member is required.
407	ApplicationKey *string
408}
409
410// The connector-specific profile properties required by Datadog.
411type DatadogConnectorProfileProperties struct {
412
413	// The location of the Datadog resource.
414	//
415	// This member is required.
416	InstanceUrl *string
417}
418
419// The connector metadata specific to Datadog.
420type DatadogMetadata struct {
421}
422
423// The properties that are applied when Datadog is being used as a source.
424type DatadogSourceProperties struct {
425
426	// The object specified in the Datadog flow source.
427	//
428	// This member is required.
429	Object *string
430}
431
432// This stores the information that is required to query a particular connector.
433type DestinationConnectorProperties struct {
434
435	// The properties required to query Amazon EventBridge.
436	EventBridge *EventBridgeDestinationProperties
437
438	// The properties required to query Amazon Redshift.
439	Redshift *RedshiftDestinationProperties
440
441	// The properties required to query Amazon S3.
442	S3 *S3DestinationProperties
443
444	// The properties required to query Salesforce.
445	Salesforce *SalesforceDestinationProperties
446
447	// The properties required to query Snowflake.
448	Snowflake *SnowflakeDestinationProperties
449
450	// The properties required to query Upsolver.
451	Upsolver *UpsolverDestinationProperties
452}
453
454// The properties that can be applied to a field when connector is being used as a
455// destination.
456type DestinationFieldProperties struct {
457
458	// Specifies if the destination field can be created by the current user.
459	IsCreatable bool
460
461	// Specifies if the destination field can have a null value.
462	IsNullable bool
463
464	// Specifies whether the field can be updated during an UPDATE or UPSERT write
465	// operation.
466	IsUpdatable bool
467
468	// Specifies if the flow run can either insert new rows in the destination field if
469	// they do not already exist, or update them if they do.
470	IsUpsertable bool
471
472	// A list of supported write operations. For each write operation listed, this
473	// field can be used in idFieldNames when that write operation is present as a
474	// destination option.
475	SupportedWriteOperations []WriteOperationType
476}
477
478// Contains information about the configuration of destination connectors present
479// in the flow.
480type DestinationFlowConfig struct {
481
482	// The type of connector, such as Salesforce, Amplitude, and so on.
483	//
484	// This member is required.
485	ConnectorType ConnectorType
486
487	// This stores the information that is required to query a particular connector.
488	//
489	// This member is required.
490	DestinationConnectorProperties *DestinationConnectorProperties
491
492	// The name of the connector profile. This name must be unique for each connector
493	// profile in the AWS account.
494	ConnectorProfileName *string
495}
496
497// The connector-specific profile credentials required by Dynatrace.
498type DynatraceConnectorProfileCredentials struct {
499
500	// The API tokens used by Dynatrace API to authenticate various API calls.
501	//
502	// This member is required.
503	ApiToken *string
504}
505
506// The connector-specific profile properties required by Dynatrace.
507type DynatraceConnectorProfileProperties struct {
508
509	// The location of the Dynatrace resource.
510	//
511	// This member is required.
512	InstanceUrl *string
513}
514
515// The connector metadata specific to Dynatrace.
516type DynatraceMetadata struct {
517}
518
519// The properties that are applied when Dynatrace is being used as a source.
520type DynatraceSourceProperties struct {
521
522	// The object specified in the Dynatrace flow source.
523	//
524	// This member is required.
525	Object *string
526}
527
528// The settings that determine how Amazon AppFlow handles an error when placing
529// data in the destination. For example, this setting would determine if the flow
530// should fail after one insertion error, or continue and attempt to insert every
531// record regardless of the initial failure. ErrorHandlingConfig is a part of the
532// destination connector details.
533type ErrorHandlingConfig struct {
534
535	// Specifies the name of the Amazon S3 bucket.
536	BucketName *string
537
538	// Specifies the Amazon S3 bucket prefix.
539	BucketPrefix *string
540
541	// Specifies if the flow should fail after the first instance of a failure when
542	// attempting to place data in the destination.
543	FailOnFirstDestinationError bool
544}
545
546// Provides details in the event of a failed flow, including the failure count and
547// the related error messages.
548type ErrorInfo struct {
549
550	// Specifies the error message that appears if a flow fails.
551	ExecutionMessage *string
552
553	// Specifies the failure count for the attempted flow.
554	PutFailuresCount *int64
555}
556
557// The properties that are applied when Amazon EventBridge is being used as a
558// destination.
559type EventBridgeDestinationProperties struct {
560
561	// The object specified in the Amazon EventBridge flow destination.
562	//
563	// This member is required.
564	Object *string
565
566	// The settings that determine how Amazon AppFlow handles an error when placing
567	// data in the destination. For example, this setting would determine if the flow
568	// should fail after one insertion error, or continue and attempt to insert every
569	// record regardless of the initial failure. ErrorHandlingConfig is a part of the
570	// destination connector details.
571	ErrorHandlingConfig *ErrorHandlingConfig
572}
573
574// The connector metadata specific to Amazon EventBridge.
575type EventBridgeMetadata struct {
576}
577
578// Describes the details of the flow run, including the timestamp, status, and
579// message.
580type ExecutionDetails struct {
581
582	// Describes the details of the most recent flow run.
583	MostRecentExecutionMessage *string
584
585	// Specifies the status of the most recent flow run.
586	MostRecentExecutionStatus ExecutionStatus
587
588	// Specifies the time of the most recent flow run.
589	MostRecentExecutionTime *time.Time
590}
591
592// Specifies information about the past flow run instances for a given flow.
593type ExecutionRecord struct {
594
595	// Specifies the identifier of the given flow run.
596	ExecutionId *string
597
598	// Describes the result of the given flow run.
599	ExecutionResult *ExecutionResult
600
601	// Specifies the flow run status and whether it is in progress, has completed
602	// successfully, or has failed.
603	ExecutionStatus ExecutionStatus
604
605	// Specifies the time of the most recent update.
606	LastUpdatedAt *time.Time
607
608	// Specifies the start time of the flow run.
609	StartedAt *time.Time
610}
611
612// Specifies the end result of the flow run.
613type ExecutionResult struct {
614
615	// The total number of bytes processed by the flow run.
616	BytesProcessed *int64
617
618	// The total number of bytes written as a result of the flow run.
619	BytesWritten *int64
620
621	// Provides any error message information related to the flow run.
622	ErrorInfo *ErrorInfo
623
624	// The number of records processed in the flow run.
625	RecordsProcessed *int64
626}
627
628// Contains details regarding the supported field type and the operators that can
629// be applied for filtering.
630type FieldTypeDetails struct {
631
632	// The type of field, such as string, integer, date, and so on.
633	//
634	// This member is required.
635	FieldType *string
636
637	// The list of operators supported by a field.
638	//
639	// This member is required.
640	FilterOperators []Operator
641
642	// The list of values that a field can contain. For example, a Boolean fieldType
643	// can have two values: "true" and "false".
644	SupportedValues []string
645}
646
647// The properties of the flow, such as its source, destination, trigger type, and
648// so on.
649type FlowDefinition struct {
650
651	// Specifies when the flow was created.
652	CreatedAt *time.Time
653
654	// The ARN of the user who created the flow.
655	CreatedBy *string
656
657	// A user-entered description of the flow.
658	Description *string
659
660	// Specifies the destination connector type, such as Salesforce, Amazon S3,
661	// Amplitude, and so on.
662	DestinationConnectorType ConnectorType
663
664	// The flow's Amazon Resource Name (ARN).
665	FlowArn *string
666
667	// The specified name of the flow. Spaces are not allowed. Use underscores (_) or
668	// hyphens (-) only.
669	FlowName *string
670
671	// Indicates the current status of the flow.
672	FlowStatus FlowStatus
673
674	// Describes the details of the most recent flow run.
675	LastRunExecutionDetails *ExecutionDetails
676
677	// Specifies when the flow was last updated.
678	LastUpdatedAt *time.Time
679
680	// Specifies the account user name that most recently updated the flow.
681	LastUpdatedBy *string
682
683	// Specifies the source connector type, such as Salesforce, Amazon S3, Amplitude,
684	// and so on.
685	SourceConnectorType ConnectorType
686
687	// The tags used to organize, track, or control access for your flow.
688	Tags map[string]string
689
690	// Specifies the type of flow trigger. This can be OnDemand, Scheduled, or Event.
691	TriggerType TriggerType
692}
693
694// The connector-specific profile credentials required by Google Analytics.
695type GoogleAnalyticsConnectorProfileCredentials struct {
696
697	// The identifier for the desired client.
698	//
699	// This member is required.
700	ClientId *string
701
702	// The client secret used by the OAuth client to authenticate to the authorization
703	// server.
704	//
705	// This member is required.
706	ClientSecret *string
707
708	// The credentials used to access protected Google Analytics resources.
709	AccessToken *string
710
711	// The OAuth requirement needed to request security tokens from the connector
712	// endpoint.
713	OAuthRequest *ConnectorOAuthRequest
714
715	// The credentials used to acquire new access tokens. This is required only for
716	// OAuth2 access tokens, and is not required for OAuth1 access tokens.
717	RefreshToken *string
718}
719
720// The connector-specific profile properties required by Google Analytics.
721type GoogleAnalyticsConnectorProfileProperties struct {
722}
723
724// The connector metadata specific to Google Analytics.
725type GoogleAnalyticsMetadata struct {
726
727	// The desired authorization scope for the Google Analytics account.
728	OAuthScopes []string
729}
730
731// The properties that are applied when Google Analytics is being used as a source.
732type GoogleAnalyticsSourceProperties struct {
733
734	// The object specified in the Google Analytics flow source.
735	//
736	// This member is required.
737	Object *string
738}
739
740// Specifies the configuration used when importing incremental records from the
741// source.
742type IncrementalPullConfig struct {
743
744	// A field that specifies the date time or timestamp field as the criteria to use
745	// when importing incremental records from the source.
746	DatetimeTypeFieldName *string
747}
748
749// The connector-specific profile credentials required by Infor Nexus.
750type InforNexusConnectorProfileCredentials struct {
751
752	// The Access Key portion of the credentials.
753	//
754	// This member is required.
755	AccessKeyId *string
756
757	// The encryption keys used to encrypt data.
758	//
759	// This member is required.
760	Datakey *string
761
762	// The secret key used to sign requests.
763	//
764	// This member is required.
765	SecretAccessKey *string
766
767	// The identifier for the user.
768	//
769	// This member is required.
770	UserId *string
771}
772
773// The connector-specific profile properties required by Infor Nexus.
774type InforNexusConnectorProfileProperties struct {
775
776	// The location of the Infor Nexus resource.
777	//
778	// This member is required.
779	InstanceUrl *string
780}
781
782// The connector metadata specific to Infor Nexus.
783type InforNexusMetadata struct {
784}
785
786// The properties that are applied when Infor Nexus is being used as a source.
787type InforNexusSourceProperties struct {
788
789	// The object specified in the Infor Nexus flow source.
790	//
791	// This member is required.
792	Object *string
793}
794
795// The connector-specific profile credentials required by Marketo.
796type MarketoConnectorProfileCredentials struct {
797
798	// The identifier for the desired client.
799	//
800	// This member is required.
801	ClientId *string
802
803	// The client secret used by the OAuth client to authenticate to the authorization
804	// server.
805	//
806	// This member is required.
807	ClientSecret *string
808
809	// The credentials used to access protected Marketo resources.
810	AccessToken *string
811
812	// The OAuth requirement needed to request security tokens from the connector
813	// endpoint.
814	OAuthRequest *ConnectorOAuthRequest
815}
816
817// The connector-specific profile properties required when using Marketo.
818type MarketoConnectorProfileProperties struct {
819
820	// The location of the Marketo resource.
821	//
822	// This member is required.
823	InstanceUrl *string
824}
825
826// The connector metadata specific to Marketo.
827type MarketoMetadata struct {
828}
829
830// The properties that are applied when Marketo is being used as a source.
831type MarketoSourceProperties struct {
832
833	// The object specified in the Marketo flow source.
834	//
835	// This member is required.
836	Object *string
837}
838
839// Determines the prefix that Amazon AppFlow applies to the destination folder
840// name. You can name your destination folders according to the flow frequency and
841// date.
842type PrefixConfig struct {
843
844	// Determines the format of the prefix, and whether it applies to the file name,
845	// file path, or both.
846	PrefixFormat PrefixFormat
847
848	// Determines the level of granularity that's included in the prefix.
849	PrefixType PrefixType
850}
851
852// The connector-specific profile credentials required when using Amazon Redshift.
853type RedshiftConnectorProfileCredentials struct {
854
855	// The password that corresponds to the user name.
856	//
857	// This member is required.
858	Password *string
859
860	// The name of the user.
861	//
862	// This member is required.
863	Username *string
864}
865
866// The connector-specific profile properties when using Amazon Redshift.
867type RedshiftConnectorProfileProperties struct {
868
869	// A name for the associated Amazon S3 bucket.
870	//
871	// This member is required.
872	BucketName *string
873
874	// The JDBC URL of the Amazon Redshift cluster.
875	//
876	// This member is required.
877	DatabaseUrl *string
878
879	// The Amazon Resource Name (ARN) of the IAM role.
880	//
881	// This member is required.
882	RoleArn *string
883
884	// The object key for the destination bucket in which Amazon AppFlow places the
885	// files.
886	BucketPrefix *string
887}
888
889// The properties that are applied when Amazon Redshift is being used as a
890// destination.
891type RedshiftDestinationProperties struct {
892
893	// The intermediate bucket that Amazon AppFlow uses when moving data into Amazon
894	// Redshift.
895	//
896	// This member is required.
897	IntermediateBucketName *string
898
899	// The object specified in the Amazon Redshift flow destination.
900	//
901	// This member is required.
902	Object *string
903
904	// The object key for the bucket in which Amazon AppFlow places the destination
905	// files.
906	BucketPrefix *string
907
908	// The settings that determine how Amazon AppFlow handles an error when placing
909	// data in the Amazon Redshift destination. For example, this setting would
910	// determine if the flow should fail after one insertion error, or continue and
911	// attempt to insert every record regardless of the initial failure.
912	// ErrorHandlingConfig is a part of the destination connector details.
913	ErrorHandlingConfig *ErrorHandlingConfig
914}
915
916// The connector metadata specific to Amazon Redshift.
917type RedshiftMetadata struct {
918}
919
920// The properties that are applied when Amazon S3 is used as a destination.
921type S3DestinationProperties struct {
922
923	// The Amazon S3 bucket name in which Amazon AppFlow places the transferred data.
924	//
925	// This member is required.
926	BucketName *string
927
928	// The object key for the destination bucket in which Amazon AppFlow places the
929	// files.
930	BucketPrefix *string
931
932	// The configuration that determines how Amazon AppFlow should format the flow
933	// output data when Amazon S3 is used as the destination.
934	S3OutputFormatConfig *S3OutputFormatConfig
935}
936
937// The connector metadata specific to Amazon S3.
938type S3Metadata struct {
939}
940
941// The configuration that determines how Amazon AppFlow should format the flow
942// output data when Amazon S3 is used as the destination.
943type S3OutputFormatConfig struct {
944
945	// The aggregation settings that you can use to customize the output format of your
946	// flow data.
947	AggregationConfig *AggregationConfig
948
949	// Indicates the file type that Amazon AppFlow places in the Amazon S3 bucket.
950	FileType FileType
951
952	// Determines the prefix that Amazon AppFlow applies to the folder name in the
953	// Amazon S3 bucket. You can name folders according to the flow frequency and date.
954	PrefixConfig *PrefixConfig
955}
956
957// The properties that are applied when Amazon S3 is being used as the flow source.
958type S3SourceProperties struct {
959
960	// The Amazon S3 bucket name where the source files are stored.
961	//
962	// This member is required.
963	BucketName *string
964
965	// The object key for the Amazon S3 bucket in which the source files are stored.
966	BucketPrefix *string
967}
968
969// The connector-specific profile credentials required when using Salesforce.
970type SalesforceConnectorProfileCredentials struct {
971
972	// The credentials used to access protected Salesforce resources.
973	AccessToken *string
974
975	// The secret manager ARN, which contains the client ID and client secret of the
976	// connected app.
977	ClientCredentialsArn *string
978
979	// The OAuth requirement needed to request security tokens from the connector
980	// endpoint.
981	OAuthRequest *ConnectorOAuthRequest
982
983	// The credentials used to acquire new access tokens.
984	RefreshToken *string
985}
986
987// The connector-specific profile properties required when using Salesforce.
988type SalesforceConnectorProfileProperties struct {
989
990	// The location of the Salesforce resource.
991	InstanceUrl *string
992
993	// Indicates whether the connector profile applies to a sandbox or production
994	// environment.
995	IsSandboxEnvironment bool
996}
997
998// The properties that are applied when Salesforce is being used as a destination.
999type SalesforceDestinationProperties struct {
1000
1001	// The object specified in the Salesforce flow destination.
1002	//
1003	// This member is required.
1004	Object *string
1005
1006	// The settings that determine how Amazon AppFlow handles an error when placing
1007	// data in the Salesforce destination. For example, this setting would determine if
1008	// the flow should fail after one insertion error, or continue and attempt to
1009	// insert every record regardless of the initial failure. ErrorHandlingConfig is a
1010	// part of the destination connector details.
1011	ErrorHandlingConfig *ErrorHandlingConfig
1012
1013	// The name of the field that Amazon AppFlow uses as an ID when performing a write
1014	// operation such as update or delete.
1015	IdFieldNames []string
1016
1017	// This specifies the type of write operation to be performed in Salesforce. When
1018	// the value is UPSERT, then idFieldNames is required.
1019	WriteOperationType WriteOperationType
1020}
1021
1022// The connector metadata specific to Salesforce.
1023type SalesforceMetadata struct {
1024
1025	// The desired authorization scope for the Salesforce account.
1026	OAuthScopes []string
1027}
1028
1029// The properties that are applied when Salesforce is being used as a source.
1030type SalesforceSourceProperties struct {
1031
1032	// The object specified in the Salesforce flow source.
1033	//
1034	// This member is required.
1035	Object *string
1036
1037	// The flag that enables dynamic fetching of new (recently added) fields in the
1038	// Salesforce objects while running a flow.
1039	EnableDynamicFieldUpdate bool
1040
1041	// Indicates whether Amazon AppFlow includes deleted files in the flow run.
1042	IncludeDeletedRecords bool
1043}
1044
1045// Specifies the configuration details of a schedule-triggered flow as defined by
1046// the user. Currently, these settings only apply to the Scheduled trigger type.
1047type ScheduledTriggerProperties struct {
1048
1049	// The scheduling expression that determines the rate at which the schedule will
1050	// run, for example rate(5minutes).
1051	//
1052	// This member is required.
1053	ScheduleExpression *string
1054
1055	// Specifies whether a scheduled flow has an incremental data transfer or a
1056	// complete data transfer for each flow run.
1057	DataPullMode DataPullMode
1058
1059	// Specifies the scheduled end time for a schedule-triggered flow.
1060	ScheduleEndTime *time.Time
1061
1062	// Specifies the scheduled start time for a schedule-triggered flow.
1063	ScheduleStartTime *time.Time
1064
1065	// Specifies the time zone used when referring to the date and time of a
1066	// scheduled-triggered flow.
1067	Timezone *string
1068}
1069
1070// The connector-specific profile credentials required when using ServiceNow.
1071type ServiceNowConnectorProfileCredentials struct {
1072
1073	// The password that corresponds to the user name.
1074	//
1075	// This member is required.
1076	Password *string
1077
1078	// The name of the user.
1079	//
1080	// This member is required.
1081	Username *string
1082}
1083
1084// The connector-specific profile properties required when using ServiceNow.
1085type ServiceNowConnectorProfileProperties struct {
1086
1087	// The location of the ServiceNow resource.
1088	//
1089	// This member is required.
1090	InstanceUrl *string
1091}
1092
1093// The connector metadata specific to ServiceNow.
1094type ServiceNowMetadata struct {
1095}
1096
1097// The properties that are applied when ServiceNow is being used as a source.
1098type ServiceNowSourceProperties struct {
1099
1100	// The object specified in the ServiceNow flow source.
1101	//
1102	// This member is required.
1103	Object *string
1104}
1105
1106// The connector-specific profile credentials required when using Singular.
1107type SingularConnectorProfileCredentials struct {
1108
1109	// A unique alphanumeric identifier used to authenticate a user, developer, or
1110	// calling program to your API.
1111	//
1112	// This member is required.
1113	ApiKey *string
1114}
1115
1116// The connector-specific profile properties required when using Singular.
1117type SingularConnectorProfileProperties struct {
1118}
1119
1120// The connector metadata specific to Singular.
1121type SingularMetadata struct {
1122}
1123
1124// The properties that are applied when Singular is being used as a source.
1125type SingularSourceProperties struct {
1126
1127	// The object specified in the Singular flow source.
1128	//
1129	// This member is required.
1130	Object *string
1131}
1132
1133// The connector-specific profile credentials required when using Slack.
1134type SlackConnectorProfileCredentials struct {
1135
1136	// The identifier for the client.
1137	//
1138	// This member is required.
1139	ClientId *string
1140
1141	// The client secret used by the OAuth client to authenticate to the authorization
1142	// server.
1143	//
1144	// This member is required.
1145	ClientSecret *string
1146
1147	// The credentials used to access protected Slack resources.
1148	AccessToken *string
1149
1150	// The OAuth requirement needed to request security tokens from the connector
1151	// endpoint.
1152	OAuthRequest *ConnectorOAuthRequest
1153}
1154
1155// The connector-specific profile properties required when using Slack.
1156type SlackConnectorProfileProperties struct {
1157
1158	// The location of the Slack resource.
1159	//
1160	// This member is required.
1161	InstanceUrl *string
1162}
1163
1164// The connector metadata specific to Slack.
1165type SlackMetadata struct {
1166
1167	// The desired authorization scope for the Slack account.
1168	OAuthScopes []string
1169}
1170
1171// The properties that are applied when Slack is being used as a source.
1172type SlackSourceProperties struct {
1173
1174	// The object specified in the Slack flow source.
1175	//
1176	// This member is required.
1177	Object *string
1178}
1179
1180// The connector-specific profile credentials required when using Snowflake.
1181type SnowflakeConnectorProfileCredentials struct {
1182
1183	// The password that corresponds to the user name.
1184	//
1185	// This member is required.
1186	Password *string
1187
1188	// The name of the user.
1189	//
1190	// This member is required.
1191	Username *string
1192}
1193
1194// The connector-specific profile properties required when using Snowflake.
1195type SnowflakeConnectorProfileProperties struct {
1196
1197	// The name of the Amazon S3 bucket associated with Snowflake.
1198	//
1199	// This member is required.
1200	BucketName *string
1201
1202	// The name of the Amazon S3 stage that was created while setting up an Amazon S3
1203	// stage in the Snowflake account. This is written in the following format: <
1204	// Database>< Schema>.
1205	//
1206	// This member is required.
1207	Stage *string
1208
1209	// The name of the Snowflake warehouse.
1210	//
1211	// This member is required.
1212	Warehouse *string
1213
1214	// The name of the account.
1215	AccountName *string
1216
1217	// The bucket path that refers to the Amazon S3 bucket associated with Snowflake.
1218	BucketPrefix *string
1219
1220	// The Snowflake Private Link service name to be used for private data transfers.
1221	PrivateLinkServiceName *string
1222
1223	// The AWS Region of the Snowflake account.
1224	Region *string
1225}
1226
1227// The properties that are applied when Snowflake is being used as a destination.
1228type SnowflakeDestinationProperties struct {
1229
1230	// The intermediate bucket that Amazon AppFlow uses when moving data into
1231	// Snowflake.
1232	//
1233	// This member is required.
1234	IntermediateBucketName *string
1235
1236	// The object specified in the Snowflake flow destination.
1237	//
1238	// This member is required.
1239	Object *string
1240
1241	// The object key for the destination bucket in which Amazon AppFlow places the
1242	// files.
1243	BucketPrefix *string
1244
1245	// The settings that determine how Amazon AppFlow handles an error when placing
1246	// data in the Snowflake destination. For example, this setting would determine if
1247	// the flow should fail after one insertion error, or continue and attempt to
1248	// insert every record regardless of the initial failure. ErrorHandlingConfig is a
1249	// part of the destination connector details.
1250	ErrorHandlingConfig *ErrorHandlingConfig
1251}
1252
1253// The connector metadata specific to Snowflake.
1254type SnowflakeMetadata struct {
1255
1256	// Specifies the supported AWS Regions when using Snowflake.
1257	SupportedRegions []string
1258}
1259
1260// Specifies the information that is required to query a particular connector.
1261type SourceConnectorProperties struct {
1262
1263	// Specifies the information that is required for querying Amplitude.
1264	Amplitude *AmplitudeSourceProperties
1265
1266	// Specifies the information that is required for querying Datadog.
1267	Datadog *DatadogSourceProperties
1268
1269	// Specifies the information that is required for querying Dynatrace.
1270	Dynatrace *DynatraceSourceProperties
1271
1272	// Specifies the information that is required for querying Google Analytics.
1273	GoogleAnalytics *GoogleAnalyticsSourceProperties
1274
1275	// Specifies the information that is required for querying Infor Nexus.
1276	InforNexus *InforNexusSourceProperties
1277
1278	// Specifies the information that is required for querying Marketo.
1279	Marketo *MarketoSourceProperties
1280
1281	// Specifies the information that is required for querying Amazon S3.
1282	S3 *S3SourceProperties
1283
1284	// Specifies the information that is required for querying Salesforce.
1285	Salesforce *SalesforceSourceProperties
1286
1287	// Specifies the information that is required for querying ServiceNow.
1288	ServiceNow *ServiceNowSourceProperties
1289
1290	// Specifies the information that is required for querying Singular.
1291	Singular *SingularSourceProperties
1292
1293	// Specifies the information that is required for querying Slack.
1294	Slack *SlackSourceProperties
1295
1296	// Specifies the information that is required for querying Trend Micro.
1297	Trendmicro *TrendmicroSourceProperties
1298
1299	// Specifies the information that is required for querying Veeva.
1300	Veeva *VeevaSourceProperties
1301
1302	// Specifies the information that is required for querying Zendesk.
1303	Zendesk *ZendeskSourceProperties
1304}
1305
1306// The properties that can be applied to a field when the connector is being used
1307// as a source.
1308type SourceFieldProperties struct {
1309
1310	// Indicates if the field can be queried.
1311	IsQueryable bool
1312
1313	// Indicates whether the field can be returned in a search result.
1314	IsRetrievable bool
1315}
1316
1317// Contains information about the configuration of the source connector used in the
1318// flow.
1319type SourceFlowConfig struct {
1320
1321	// The type of connector, such as Salesforce, Amplitude, and so on.
1322	//
1323	// This member is required.
1324	ConnectorType ConnectorType
1325
1326	// Specifies the information that is required to query a particular source
1327	// connector.
1328	//
1329	// This member is required.
1330	SourceConnectorProperties *SourceConnectorProperties
1331
1332	// The name of the connector profile. This name must be unique for each connector
1333	// profile in the AWS account.
1334	ConnectorProfileName *string
1335
1336	// Defines the configuration for a scheduled incremental data pull. If a valid
1337	// configuration is provided, the fields specified in the configuration are used
1338	// when querying for the incremental data pull.
1339	IncrementalPullConfig *IncrementalPullConfig
1340}
1341
1342// Contains details regarding all the supported FieldTypes and their corresponding
1343// filterOperators and supportedValues.
1344type SupportedFieldTypeDetails struct {
1345
1346	// The initial supported version for fieldType. If this is later changed to a
1347	// different version, v2 will be introduced.
1348	//
1349	// This member is required.
1350	V1 *FieldTypeDetails
1351}
1352
1353// A class for modeling different type of tasks. Task implementation varies based
1354// on the TaskType.
1355type Task struct {
1356
1357	// The source fields to which a particular task is applied.
1358	//
1359	// This member is required.
1360	SourceFields []string
1361
1362	// Specifies the particular task implementation that Amazon AppFlow performs.
1363	//
1364	// This member is required.
1365	TaskType TaskType
1366
1367	// The operation to be performed on the provided source fields.
1368	ConnectorOperator *ConnectorOperator
1369
1370	// A field in a destination connector, or a field value against which Amazon
1371	// AppFlow validates a source field.
1372	DestinationField *string
1373
1374	// A map used to store task-related information. The execution service looks for
1375	// particular information based on the TaskType.
1376	TaskProperties map[string]string
1377}
1378
1379// The connector-specific profile credentials required when using Trend Micro.
1380type TrendmicroConnectorProfileCredentials struct {
1381
1382	// The Secret Access Key portion of the credentials.
1383	//
1384	// This member is required.
1385	ApiSecretKey *string
1386}
1387
1388// The connector-specific profile properties required when using Trend Micro.
1389type TrendmicroConnectorProfileProperties struct {
1390}
1391
1392// The connector metadata specific to Trend Micro.
1393type TrendmicroMetadata struct {
1394}
1395
1396// The properties that are applied when using Trend Micro as a flow source.
1397type TrendmicroSourceProperties struct {
1398
1399	// The object specified in the Trend Micro flow source.
1400	//
1401	// This member is required.
1402	Object *string
1403}
1404
1405// The trigger settings that determine how and when Amazon AppFlow runs the
1406// specified flow.
1407type TriggerConfig struct {
1408
1409	// Specifies the type of flow trigger. This can be OnDemand, Scheduled, or Event.
1410	//
1411	// This member is required.
1412	TriggerType TriggerType
1413
1414	// Specifies the configuration details of a schedule-triggered flow as defined by
1415	// the user. Currently, these settings only apply to the Scheduled trigger type.
1416	TriggerProperties *TriggerProperties
1417}
1418
1419// Specifies the configuration details that control the trigger for a flow.
1420// Currently, these settings only apply to the Scheduled trigger type.
1421type TriggerProperties struct {
1422
1423	// Specifies the configuration details of a schedule-triggered flow as defined by
1424	// the user.
1425	Scheduled *ScheduledTriggerProperties
1426}
1427
1428// The properties that are applied when Upsolver is used as a destination.
1429type UpsolverDestinationProperties struct {
1430
1431	// The Upsolver Amazon S3 bucket name in which Amazon AppFlow places the
1432	// transferred data.
1433	//
1434	// This member is required.
1435	BucketName *string
1436
1437	// The configuration that determines how data is formatted when Upsolver is used as
1438	// the flow destination.
1439	//
1440	// This member is required.
1441	S3OutputFormatConfig *UpsolverS3OutputFormatConfig
1442
1443	// The object key for the destination Upsolver Amazon S3 bucket in which Amazon
1444	// AppFlow places the files.
1445	BucketPrefix *string
1446}
1447
1448// The connector metadata specific to Upsolver.
1449type UpsolverMetadata struct {
1450}
1451
1452// The configuration that determines how Amazon AppFlow formats the flow output
1453// data when Upsolver is used as the destination.
1454type UpsolverS3OutputFormatConfig struct {
1455
1456	// Determines the prefix that Amazon AppFlow applies to the destination folder
1457	// name. You can name your destination folders according to the flow frequency and
1458	// date.
1459	//
1460	// This member is required.
1461	PrefixConfig *PrefixConfig
1462
1463	// The aggregation settings that you can use to customize the output format of your
1464	// flow data.
1465	AggregationConfig *AggregationConfig
1466
1467	// Indicates the file type that Amazon AppFlow places in the Upsolver Amazon S3
1468	// bucket.
1469	FileType FileType
1470}
1471
1472// The connector-specific profile credentials required when using Veeva.
1473type VeevaConnectorProfileCredentials struct {
1474
1475	// The password that corresponds to the user name.
1476	//
1477	// This member is required.
1478	Password *string
1479
1480	// The name of the user.
1481	//
1482	// This member is required.
1483	Username *string
1484}
1485
1486// The connector-specific profile properties required when using Veeva.
1487type VeevaConnectorProfileProperties struct {
1488
1489	// The location of the Veeva resource.
1490	//
1491	// This member is required.
1492	InstanceUrl *string
1493}
1494
1495// The connector metadata specific to Veeva.
1496type VeevaMetadata struct {
1497}
1498
1499// The properties that are applied when using Veeva as a flow source.
1500type VeevaSourceProperties struct {
1501
1502	// The object specified in the Veeva flow source.
1503	//
1504	// This member is required.
1505	Object *string
1506}
1507
1508// The connector-specific profile credentials required when using Zendesk.
1509type ZendeskConnectorProfileCredentials struct {
1510
1511	// The identifier for the desired client.
1512	//
1513	// This member is required.
1514	ClientId *string
1515
1516	// The client secret used by the OAuth client to authenticate to the authorization
1517	// server.
1518	//
1519	// This member is required.
1520	ClientSecret *string
1521
1522	// The credentials used to access protected Zendesk resources.
1523	AccessToken *string
1524
1525	// The OAuth requirement needed to request security tokens from the connector
1526	// endpoint.
1527	OAuthRequest *ConnectorOAuthRequest
1528}
1529
1530// The connector-specific profile properties required when using Zendesk.
1531type ZendeskConnectorProfileProperties struct {
1532
1533	// The location of the Zendesk resource.
1534	//
1535	// This member is required.
1536	InstanceUrl *string
1537}
1538
1539// The connector metadata specific to Zendesk.
1540type ZendeskMetadata struct {
1541
1542	// The desired authorization scope for the Zendesk account.
1543	OAuthScopes []string
1544}
1545
1546// The properties that are applied when using Zendesk as a flow source.
1547type ZendeskSourceProperties struct {
1548
1549	// The object specified in the Zendesk flow source.
1550	//
1551	// This member is required.
1552	Object *string
1553}
1554