1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	"time"
7)
8
9// A generic address associated with the customer that is not mailing, shipping, or
10// billing.
11type Address struct {
12
13	// The first line of a customer address.
14	Address1 *string
15
16	// The second line of a customer address.
17	Address2 *string
18
19	// The third line of a customer address.
20	Address3 *string
21
22	// The fourth line of a customer address.
23	Address4 *string
24
25	// The city in which a customer lives.
26	City *string
27
28	// The country in which a customer lives.
29	Country *string
30
31	// The county in which a customer lives.
32	County *string
33
34	// The postal code of a customer address.
35	PostalCode *string
36
37	// The province in which a customer lives.
38	Province *string
39
40	// The state in which a customer lives.
41	State *string
42}
43
44// The operation to be performed on the provided source fields.
45type ConnectorOperator struct {
46
47	// The operation to be performed on the provided Marketo source fields.
48	Marketo MarketoConnectorOperator
49
50	// The operation to be performed on the provided Amazon S3 source fields.
51	S3 S3ConnectorOperator
52
53	// The operation to be performed on the provided Salesforce source fields.
54	Salesforce SalesforceConnectorOperator
55
56	// The operation to be performed on the provided ServiceNow source fields.
57	ServiceNow ServiceNowConnectorOperator
58
59	// The operation to be performed on the provided Zendesk source fields.
60	Zendesk ZendeskConnectorOperator
61}
62
63// Usage-specific statistics about the domain.
64type DomainStats struct {
65
66	// The number of profiles that you are currently paying for in the domain. If you
67	// have more than 100 objects associated with a single profile, that profile counts
68	// as two profiles. If you have more than 200 objects, that profile counts as
69	// three, and so on.
70	MeteringProfileCount int64
71
72	// The total number of objects in domain.
73	ObjectCount int64
74
75	// The total number of profiles currently in the domain.
76	ProfileCount int64
77
78	// The total size, in bytes, of all objects in the domain.
79	TotalSize int64
80}
81
82// The configurations that control how Customer Profiles retrieves data from the
83// source, Amazon AppFlow. Customer Profiles uses this information to create an
84// AppFlow flow on behalf of customers.
85type FlowDefinition struct {
86
87	// The specified name of the flow. Use underscores (_) or hyphens (-) only. Spaces
88	// are not allowed.
89	//
90	// This member is required.
91	FlowName *string
92
93	// The Amazon Resource Name of the AWS Key Management Service (KMS) key you provide
94	// for encryption.
95	//
96	// This member is required.
97	KmsArn *string
98
99	// The configuration that controls how Customer Profiles retrieves data from the
100	// source.
101	//
102	// This member is required.
103	SourceFlowConfig *SourceFlowConfig
104
105	// A list of tasks that Customer Profiles performs while transferring the data in
106	// the flow run.
107	//
108	// This member is required.
109	Tasks []Task
110
111	// The trigger settings that determine how and when the flow runs.
112	//
113	// This member is required.
114	TriggerConfig *TriggerConfig
115
116	// A description of the flow you want to create.
117	Description *string
118}
119
120// Specifies the configuration used when importing incremental records from the
121// source.
122type IncrementalPullConfig struct {
123
124	// A field that specifies the date time or timestamp field as the criteria to use
125	// when importing incremental records from the source.
126	DatetimeTypeFieldName *string
127}
128
129// An object in a list that represents a domain.
130type ListDomainItem struct {
131
132	// The timestamp of when the domain was created.
133	//
134	// This member is required.
135	CreatedAt *time.Time
136
137	// The unique name of the domain.
138	//
139	// This member is required.
140	DomainName *string
141
142	// The timestamp of when the domain was most recently edited.
143	//
144	// This member is required.
145	LastUpdatedAt *time.Time
146
147	// The tags used to organize, track, or control access for this resource.
148	Tags map[string]string
149}
150
151// An integration in list of integrations.
152type ListIntegrationItem struct {
153
154	// The timestamp of when the domain was created.
155	//
156	// This member is required.
157	CreatedAt *time.Time
158
159	// The unique name of the domain.
160	//
161	// This member is required.
162	DomainName *string
163
164	// The timestamp of when the domain was most recently edited.
165	//
166	// This member is required.
167	LastUpdatedAt *time.Time
168
169	// The name of the profile object type.
170	//
171	// This member is required.
172	ObjectTypeName *string
173
174	// The URI of the S3 bucket or any other type of data source.
175	//
176	// This member is required.
177	Uri *string
178
179	// The tags used to organize, track, or control access for this resource.
180	Tags map[string]string
181}
182
183// A ProfileObject in a list of ProfileObjects.
184type ListProfileObjectsItem struct {
185
186	// A JSON representation of a ProfileObject that belongs to a profile.
187	Object *string
188
189	// Specifies the kind of object being added to a profile, such as
190	// "Salesforce-Account."
191	ObjectTypeName *string
192
193	// The unique identifier of the ProfileObject generated by the service.
194	ProfileObjectUniqueKey *string
195}
196
197// A ProfileObjectType instance.
198type ListProfileObjectTypeItem struct {
199
200	// Description of the profile object type.
201	//
202	// This member is required.
203	Description *string
204
205	// The name of the profile object type.
206	//
207	// This member is required.
208	ObjectTypeName *string
209
210	// The timestamp of when the domain was created.
211	CreatedAt *time.Time
212
213	// The timestamp of when the domain was most recently edited.
214	LastUpdatedAt *time.Time
215
216	// The tags used to organize, track, or control access for this resource.
217	Tags map[string]string
218}
219
220// A ProfileObjectTypeTemplate in a list of ProfileObjectTypeTemplates.
221type ListProfileObjectTypeTemplateItem struct {
222
223	// The name of the source of the object template.
224	SourceName *string
225
226	// The source of the object template.
227	SourceObject *string
228
229	// A unique identifier for the object template.
230	TemplateId *string
231}
232
233// The properties that are applied when Marketo is being used as a source.
234type MarketoSourceProperties struct {
235
236	// The object specified in the Marketo flow source.
237	//
238	// This member is required.
239	Object *string
240}
241
242// Represents a field in a ProfileObjectType.
243type ObjectTypeField struct {
244
245	// The content type of the field. Used for determining equality when searching.
246	ContentType FieldContentType
247
248	// A field of a ProfileObject. For example: _source.FirstName, where “_source” is a
249	// ProfileObjectType of a Zendesk user and “FirstName” is a field in that
250	// ObjectType.
251	Source *string
252
253	// The location of the data in the standard ProfileObject model. For example:
254	// _profile.Address.PostalCode.
255	Target *string
256}
257
258// An object that defines the Key element of a ProfileObject. A Key is a special
259// element that can be used to search for a customer profile.
260type ObjectTypeKey struct {
261
262	// The reference for the key name of the fields map.
263	FieldNames []string
264
265	// The types of keys that a ProfileObject can have. Each ProfileObject can have
266	// only 1 UNIQUE key but multiple PROFILE keys. PROFILE means that this key can be
267	// used to tie an object to a PROFILE. UNIQUE means that it can be used to uniquely
268	// identify an object. If a key a is marked as SECONDARY, it will be used to search
269	// for profiles after all other PROFILE keys have been searched. A LOOKUP_ONLY key
270	// is only used to match a profile but is not persisted to be used for searching of
271	// the profile. A NEW_ONLY key is only used if the profile does not already exist
272	// before the object is ingested, otherwise it is only used for matching objects to
273	// profiles.
274	StandardIdentifiers []StandardIdentifier
275}
276
277// The standard profile of a customer.
278type Profile struct {
279
280	// A unique account number that you have given to the customer.
281	AccountNumber *string
282
283	// Any additional information relevant to the customer's profile.
284	AdditionalInformation *string
285
286	// A generic address associated with the customer that is not mailing, shipping, or
287	// billing.
288	Address *Address
289
290	// A key value pair of attributes of a customer profile.
291	Attributes map[string]string
292
293	// The customer’s billing address.
294	BillingAddress *Address
295
296	// The customer’s birth date.
297	BirthDate *string
298
299	// The customer’s business email address.
300	BusinessEmailAddress *string
301
302	// The name of the customer’s business.
303	BusinessName *string
304
305	// The customer’s home phone number.
306	BusinessPhoneNumber *string
307
308	// The customer's email address, which has not been specified as a personal or
309	// business address.
310	EmailAddress *string
311
312	// The customer’s first name.
313	FirstName *string
314
315	// The gender with which the customer identifies.
316	Gender Gender
317
318	// The customer’s home phone number.
319	HomePhoneNumber *string
320
321	// The customer’s last name.
322	LastName *string
323
324	// The customer’s mailing address.
325	MailingAddress *Address
326
327	// The customer’s middle name.
328	MiddleName *string
329
330	// The customer’s mobile phone number.
331	MobilePhoneNumber *string
332
333	// The type of profile used to describe the customer.
334	PartyType PartyType
335
336	// The customer’s personal email address.
337	PersonalEmailAddress *string
338
339	// The customer's phone number, which has not been specified as a mobile, home, or
340	// business number.
341	PhoneNumber *string
342
343	// The unique identifier of a customer profile.
344	ProfileId *string
345
346	// The customer’s shipping address.
347	ShippingAddress *Address
348}
349
350// The properties that are applied when Amazon S3 is being used as the flow source.
351type S3SourceProperties struct {
352
353	// The Amazon S3 bucket name where the source files are stored.
354	//
355	// This member is required.
356	BucketName *string
357
358	// The object key for the Amazon S3 bucket in which the source files are stored.
359	BucketPrefix *string
360}
361
362// The properties that are applied when Salesforce is being used as a source.
363type SalesforceSourceProperties struct {
364
365	// The object specified in the Salesforce flow source.
366	//
367	// This member is required.
368	Object *string
369
370	// The flag that enables dynamic fetching of new (recently added) fields in the
371	// Salesforce objects while running a flow.
372	EnableDynamicFieldUpdate bool
373
374	// Indicates whether Amazon AppFlow includes deleted files in the flow run.
375	IncludeDeletedRecords bool
376}
377
378// Specifies the configuration details of a scheduled-trigger flow that you define.
379// Currently, these settings only apply to the scheduled-trigger type.
380type ScheduledTriggerProperties struct {
381
382	// The scheduling expression that determines the rate at which the schedule will
383	// run, for example rate (5 minutes).
384	//
385	// This member is required.
386	ScheduleExpression *string
387
388	// Specifies whether a scheduled flow has an incremental data transfer or a
389	// complete data transfer for each flow run.
390	DataPullMode DataPullMode
391
392	// Specifies the date range for the records to import from the connector in the
393	// first flow run.
394	FirstExecutionFrom *time.Time
395
396	// Specifies the scheduled end time for a scheduled-trigger flow.
397	ScheduleEndTime *time.Time
398
399	// Specifies the optional offset that is added to the time interval for a
400	// schedule-triggered flow.
401	ScheduleOffset int64
402
403	// Specifies the scheduled start time for a scheduled-trigger flow.
404	ScheduleStartTime *time.Time
405
406	// Specifies the time zone used when referring to the date and time of a
407	// scheduled-triggered flow, such as America/New_York.
408	Timezone *string
409}
410
411// The properties that are applied when ServiceNow is being used as a source.
412type ServiceNowSourceProperties struct {
413
414	// The object specified in the ServiceNow flow source.
415	//
416	// This member is required.
417	Object *string
418}
419
420// Specifies the information that is required to query a particular Amazon AppFlow
421// connector. Customer Profiles supports Salesforce, Zendesk, Marketo, ServiceNow
422// and Amazon S3.
423type SourceConnectorProperties struct {
424
425	// The properties that are applied when Marketo is being used as a source.
426	Marketo *MarketoSourceProperties
427
428	// The properties that are applied when Amazon S3 is being used as the flow source.
429	S3 *S3SourceProperties
430
431	// The properties that are applied when Salesforce is being used as a source.
432	Salesforce *SalesforceSourceProperties
433
434	// The properties that are applied when ServiceNow is being used as a source.
435	ServiceNow *ServiceNowSourceProperties
436
437	// The properties that are applied when using Zendesk as a flow source.
438	Zendesk *ZendeskSourceProperties
439}
440
441// Contains information about the configuration of the source connector used in the
442// flow.
443type SourceFlowConfig struct {
444
445	// The type of connector, such as Salesforce, Marketo, and so on.
446	//
447	// This member is required.
448	ConnectorType SourceConnectorType
449
450	// Specifies the information that is required to query a particular source
451	// connector.
452	//
453	// This member is required.
454	SourceConnectorProperties *SourceConnectorProperties
455
456	// The name of the AppFlow connector profile. This name must be unique for each
457	// connector profile in the AWS account.
458	ConnectorProfileName *string
459
460	// Defines the configuration for a scheduled incremental data pull. If a valid
461	// configuration is provided, the fields specified in the configuration are used
462	// when querying for the incremental data pull.
463	IncrementalPullConfig *IncrementalPullConfig
464}
465
466// A class for modeling different type of tasks. Task implementation varies based
467// on the TaskType.
468type Task struct {
469
470	// The source fields to which a particular task is applied.
471	//
472	// This member is required.
473	SourceFields []string
474
475	// Specifies the particular task implementation that Amazon AppFlow performs.
476	//
477	// This member is required.
478	TaskType TaskType
479
480	// The operation to be performed on the provided source fields.
481	ConnectorOperator *ConnectorOperator
482
483	// A field in a destination connector, or a field value against which Amazon
484	// AppFlow validates a source field.
485	DestinationField *string
486
487	// A map used to store task-related information. The service looks for particular
488	// information based on the TaskType.
489	TaskProperties map[string]string
490}
491
492// The trigger settings that determine how and when Amazon AppFlow runs the
493// specified flow.
494type TriggerConfig struct {
495
496	// Specifies the type of flow trigger. It can be OnDemand, Scheduled, or Event.
497	//
498	// This member is required.
499	TriggerType TriggerType
500
501	// Specifies the configuration details of a schedule-triggered flow that you
502	// define. Currently, these settings only apply to the Scheduled trigger type.
503	TriggerProperties *TriggerProperties
504}
505
506// Specifies the configuration details that control the trigger for a flow.
507// Currently, these settings only apply to the Scheduled trigger type.
508type TriggerProperties struct {
509
510	// Specifies the configuration details of a schedule-triggered flow that you
511	// define.
512	Scheduled *ScheduledTriggerProperties
513}
514
515// Updates associated with the address properties of a customer profile.
516type UpdateAddress struct {
517
518	// The first line of a customer address.
519	Address1 *string
520
521	// The second line of a customer address.
522	Address2 *string
523
524	// The third line of a customer address.
525	Address3 *string
526
527	// The fourth line of a customer address.
528	Address4 *string
529
530	// The city in which a customer lives.
531	City *string
532
533	// The country in which a customer lives.
534	Country *string
535
536	// The county in which a customer lives.
537	County *string
538
539	// The postal code of a customer address.
540	PostalCode *string
541
542	// The province in which a customer lives.
543	Province *string
544
545	// The state in which a customer lives.
546	State *string
547}
548
549// The properties that are applied when using Zendesk as a flow source.
550type ZendeskSourceProperties struct {
551
552	// The object specified in the Zendesk flow source.
553	//
554	// This member is required.
555	Object *string
556}
557