File: types.go

package info (click to toggle)
golang-github-aws-aws-sdk-go-v2 1.30.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 662,428 kB
  • sloc: java: 16,875; makefile: 432; sh: 175
file content (1676 lines) | stat: -rw-r--r-- 48,822 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
// Code generated by smithy-go-codegen DO NOT EDIT.

package types

import (
	smithydocument "github.com/aws/smithy-go/document"
	"time"
)

// A data type pair that consists of a KeyName and Values list that is used in
// conjunction with the [KeyName]and [Values] parameters to search for profiles using the [SearchProfiles] API.
//
// [KeyName]: https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html#customerprofiles-SearchProfiles-request-KeyName
// [SearchProfiles]: https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html
// [Values]: https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html#customerprofiles-SearchProfiles-request-Values
type AdditionalSearchKey struct {

	// A searchable identifier of a customer profile.
	//
	// This member is required.
	KeyName *string

	// A list of key values.
	//
	// This member is required.
	Values []string

	noSmithyDocumentSerde
}

// A generic address associated with the customer that is not mailing, shipping,
// or billing.
type Address struct {

	// The first line of a customer address.
	Address1 *string

	// The second line of a customer address.
	Address2 *string

	// The third line of a customer address.
	Address3 *string

	// The fourth line of a customer address.
	Address4 *string

	// The city in which a customer lives.
	City *string

	// The country in which a customer lives.
	Country *string

	// The county in which a customer lives.
	County *string

	// The postal code of a customer address.
	PostalCode *string

	// The province in which a customer lives.
	Province *string

	// The state in which a customer lives.
	State *string

	noSmithyDocumentSerde
}

// Details for workflow of type APPFLOW_INTEGRATION .
type AppflowIntegration struct {

	// The configurations that control how Customer Profiles retrieves data from the
	// source, Amazon AppFlow. Customer Profiles uses this information to create an
	// AppFlow flow on behalf of customers.
	//
	// This member is required.
	FlowDefinition *FlowDefinition

	// Batches in workflow of type APPFLOW_INTEGRATION .
	Batches []Batch

	noSmithyDocumentSerde
}

// Structure holding all APPFLOW_INTEGRATION specific workflow attributes.
type AppflowIntegrationWorkflowAttributes struct {

	// The name of the AppFlow connector profile used for ingestion.
	//
	// This member is required.
	ConnectorProfileName *string

	// Specifies the source connector type, such as Salesforce, ServiceNow, and
	// Marketo. Indicates source of ingestion.
	//
	// This member is required.
	SourceConnectorType SourceConnectorType

	// The Amazon Resource Name (ARN) of the IAM role. Customer Profiles assumes this
	// role to create resources on your behalf as part of workflow execution.
	RoleArn *string

	noSmithyDocumentSerde
}

// Workflow specific execution metrics for APPFLOW_INTEGRATION workflow.
type AppflowIntegrationWorkflowMetrics struct {

	// Number of records processed in APPFLOW_INTEGRATION workflow.
	//
	// This member is required.
	RecordsProcessed int64

	// Total steps completed in APPFLOW_INTEGRATION workflow.
	//
	// This member is required.
	StepsCompleted int64

	// Total steps in APPFLOW_INTEGRATION workflow.
	//
	// This member is required.
	TotalSteps int64

	noSmithyDocumentSerde
}

// Workflow step details for APPFLOW_INTEGRATION workflow.
type AppflowIntegrationWorkflowStep struct {

	// End datetime of records pulled in batch during execution of workflow step for
	// APPFLOW_INTEGRATION workflow.
	//
	// This member is required.
	BatchRecordsEndTime *string

	// Start datetime of records pulled in batch during execution of workflow step for
	// APPFLOW_INTEGRATION workflow.
	//
	// This member is required.
	BatchRecordsStartTime *string

	// Creation timestamp of workflow step for APPFLOW_INTEGRATION workflow.
	//
	// This member is required.
	CreatedAt *time.Time

	// Message indicating execution of workflow step for APPFLOW_INTEGRATION workflow.
	//
	// This member is required.
	ExecutionMessage *string

	// Name of the flow created during execution of workflow step. APPFLOW_INTEGRATION
	// workflow type creates an appflow flow during workflow step execution on the
	// customers behalf.
	//
	// This member is required.
	FlowName *string

	// Last updated timestamp for workflow step for APPFLOW_INTEGRATION workflow.
	//
	// This member is required.
	LastUpdatedAt *time.Time

	// Total number of records processed during execution of workflow step for
	// APPFLOW_INTEGRATION workflow.
	//
	// This member is required.
	RecordsProcessed int64

	// Workflow step status for APPFLOW_INTEGRATION workflow.
	//
	// This member is required.
	Status Status

	noSmithyDocumentSerde
}

// Mathematical expression and a list of attribute items specified in that
// expression.
type AttributeDetails struct {

	// A list of attribute items specified in the mathematical expression.
	//
	// This member is required.
	Attributes []AttributeItem

	// Mathematical expression that is performed on attribute items provided in the
	// attribute list. Each element in the expression should follow the structure of
	// \"{ObjectTypeName.AttributeName}\".
	//
	// This member is required.
	Expression *string

	noSmithyDocumentSerde
}

// The details of a single attribute item specified in the mathematical expression.
type AttributeItem struct {

	// The name of an attribute defined in a profile object type.
	//
	// This member is required.
	Name *string

	noSmithyDocumentSerde
}

// Configuration information about the AttributeTypesSelector where the rule-based
// identity resolution uses to match profiles. You can choose how profiles are
// compared across attribute types and which attribute to use for matching from
// each type. There are three attribute types you can configure:
//
//   - Email type
//
//   - You can choose from Email , BusinessEmail , and PersonalEmail
//
//   - Phone number type
//
//   - You can choose from Phone , HomePhone , and MobilePhone
//
//   - Address type
//
//   - You can choose from Address , BusinessAddress , MaillingAddress , and
//     ShippingAddress
//
// You can either choose ONE_TO_ONE or MANY_TO_MANY as the AttributeMatchingModel .
// When choosing MANY_TO_MANY , the system can match attribute across the sub-types
// of an attribute type. For example, if the value of the Email field of Profile A
// and the value of BusinessEmail field of Profile B matches, the two profiles are
// matched on the Email type. When choosing ONE_TO_ONE the system can only match
// if the sub-types are exact matches. For example, only when the value of the
// Email field of Profile A and the value of the Email field of Profile B matches,
// the two profiles are matched on the Email type.
type AttributeTypesSelector struct {

	// Configures the AttributeMatchingModel , you can either choose ONE_TO_ONE or
	// MANY_TO_MANY .
	//
	// This member is required.
	AttributeMatchingModel AttributeMatchingModel

	// The Address type. You can choose from Address , BusinessAddress ,
	// MaillingAddress , and ShippingAddress .
	//
	// You only can use the Address type in the MatchingRule . For example, if you want
	// to match profile based on BusinessAddress.City or MaillingAddress.City , you
	// need to choose the BusinessAddress and the MaillingAddress to represent the
	// Address type and specify the Address.City on the matching rule.
	Address []string

	// The Email type. You can choose from EmailAddress , BusinessEmailAddress and
	// PersonalEmailAddress .
	//
	// You only can use the EmailAddress type in the MatchingRule . For example, if you
	// want to match profile based on PersonalEmailAddress or BusinessEmailAddress ,
	// you need to choose the PersonalEmailAddress and the BusinessEmailAddress to
	// represent the EmailAddress type and only specify the EmailAddress on the
	// matching rule.
	EmailAddress []string

	// The PhoneNumber type. You can choose from PhoneNumber , HomePhoneNumber , and
	// MobilePhoneNumber .
	//
	// You only can use the PhoneNumber type in the MatchingRule . For example, if you
	// want to match a profile based on Phone or HomePhone , you need to choose the
	// Phone and the HomePhone to represent the PhoneNumber type and only specify the
	// PhoneNumber on the matching rule.
	PhoneNumber []string

	noSmithyDocumentSerde
}

// Configuration settings for how to perform the auto-merging of profiles.
type AutoMerging struct {

	// The flag that enables the auto-merging of duplicate profiles.
	//
	// This member is required.
	Enabled *bool

	// How the auto-merging process should resolve conflicts between different
	// profiles. For example, if Profile A and Profile B have the same FirstName and
	// LastName (and that is the matching criteria), which EmailAddress should be
	// used?
	ConflictResolution *ConflictResolution

	// A list of matching attributes that represent matching criteria. If two profiles
	// meet at least one of the requirements in the matching attributes list, they will
	// be merged.
	Consolidation *Consolidation

	// A number between 0 and 1 that represents the minimum confidence score required
	// for profiles within a matching group to be merged during the auto-merge process.
	// A higher score means higher similarity required to merge profiles.
	MinAllowedConfidenceScoreForMerging *float64

	noSmithyDocumentSerde
}

// Batch defines the boundaries for ingestion for each step in APPFLOW_INTEGRATION
// workflow. APPFLOW_INTEGRATION workflow splits ingestion based on these
// boundaries.
type Batch struct {

	// End time of batch to split ingestion.
	//
	// This member is required.
	EndTime *time.Time

	// Start time of batch to split ingestion.
	//
	// This member is required.
	StartTime *time.Time

	noSmithyDocumentSerde
}

// The conditions including range, object count, and threshold for the calculated
// attribute.
type Conditions struct {

	// The number of profile objects used for the calculated attribute.
	ObjectCount *int32

	// The relative time period over which data is included in the aggregation.
	Range *Range

	// The threshold for the calculated attribute.
	Threshold *Threshold

	noSmithyDocumentSerde
}

// How the auto-merging process should resolve conflicts between different
// profiles.
type ConflictResolution struct {

	// How the auto-merging process should resolve conflicts between different
	// profiles.
	//
	//   - RECENCY : Uses the data that was most recently updated.
	//
	//   - SOURCE : Uses the data from a specific source. For example, if a company has
	//   been aquired or two departments have merged, data from the specified source is
	//   used. If two duplicate profiles are from the same source, then RECENCY is used
	//   again.
	//
	// This member is required.
	ConflictResolvingModel ConflictResolvingModel

	// The ObjectType name that is used to resolve profile merging conflicts when
	// choosing SOURCE as the ConflictResolvingModel .
	SourceName *string

	noSmithyDocumentSerde
}

// The operation to be performed on the provided source fields.
type ConnectorOperator struct {

	// The operation to be performed on the provided Marketo source fields.
	Marketo MarketoConnectorOperator

	// The operation to be performed on the provided Amazon S3 source fields.
	S3 S3ConnectorOperator

	// The operation to be performed on the provided Salesforce source fields.
	Salesforce SalesforceConnectorOperator

	// The operation to be performed on the provided ServiceNow source fields.
	ServiceNow ServiceNowConnectorOperator

	// The operation to be performed on the provided Zendesk source fields.
	Zendesk ZendeskConnectorOperator

	noSmithyDocumentSerde
}

// The matching criteria to be used during the auto-merging process.
type Consolidation struct {

	// A list of matching criteria.
	//
	// This member is required.
	MatchingAttributesList [][]string

	noSmithyDocumentSerde
}

// Summary information about the Kinesis data stream
type DestinationSummary struct {

	// The status of enabling the Kinesis stream as a destination for export.
	//
	// This member is required.
	Status EventStreamDestinationStatus

	// The StreamARN of the destination to deliver profile events to. For example,
	// arn:aws:kinesis:region:account-id:stream/stream-name.
	//
	// This member is required.
	Uri *string

	// The timestamp when the status last changed to UNHEALHY .
	UnhealthySince *time.Time

	noSmithyDocumentSerde
}

// Contains ProfileObjectType mapping information from the model.
type DetectedProfileObjectType struct {

	// A map of the name and the ObjectType field.
	Fields map[string]ObjectTypeField

	// A list of unique keys that can be used to map data to a profile.
	Keys map[string][]ObjectTypeKey

	// The format of sourceLastUpdatedTimestamp that was detected in fields.
	SourceLastUpdatedTimestampFormat *string

	noSmithyDocumentSerde
}

// Usage-specific statistics about the domain.
type DomainStats struct {

	// The number of profiles that you are currently paying for in the domain. If you
	// have more than 100 objects associated with a single profile, that profile counts
	// as two profiles. If you have more than 200 objects, that profile counts as
	// three, and so on.
	MeteringProfileCount int64

	// The total number of objects in domain.
	ObjectCount int64

	// The total number of profiles currently in the domain.
	ProfileCount int64

	// The total size, in bytes, of all objects in the domain.
	TotalSize int64

	noSmithyDocumentSerde
}

// Details of the destination being used for the EventStream.
type EventStreamDestinationDetails struct {

	// The status of enabling the Kinesis stream as a destination for export.
	//
	// This member is required.
	Status EventStreamDestinationStatus

	// The StreamARN of the destination to deliver profile events to. For example,
	// arn:aws:kinesis:region:account-id:stream/stream-name.
	//
	// This member is required.
	Uri *string

	// The human-readable string that corresponds to the error or success while
	// enabling the streaming destination.
	Message *string

	// The timestamp when the status last changed to UNHEALHY .
	UnhealthySince *time.Time

	noSmithyDocumentSerde
}

// An instance of EventStream in a list of EventStreams.
type EventStreamSummary struct {

	// The unique name of the domain.
	//
	// This member is required.
	DomainName *string

	// A unique identifier for the event stream.
	//
	// This member is required.
	EventStreamArn *string

	// The name of the event stream.
	//
	// This member is required.
	EventStreamName *string

	// The operational state of destination stream for export.
	//
	// This member is required.
	State EventStreamState

	// Summary information about the Kinesis data stream.
	DestinationSummary *DestinationSummary

	// The timestamp when the State changed to STOPPED .
	StoppedSince *time.Time

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]string

	noSmithyDocumentSerde
}

// Configuration information about the S3 bucket where Identity Resolution Jobs
// writes result files.
//
// You need to give Customer Profiles service principal write permission to your
// S3 bucket. Otherwise, you'll get an exception in the API response. For an
// example policy, see [Amazon Connect Customer Profiles cross-service confused deputy prevention].
//
// [Amazon Connect Customer Profiles cross-service confused deputy prevention]: https://docs.aws.amazon.com/connect/latest/adminguide/cross-service-confused-deputy-prevention.html#customer-profiles-cross-service
type ExportingConfig struct {

	// The S3 location where Identity Resolution Jobs write result files.
	S3Exporting *S3ExportingConfig

	noSmithyDocumentSerde
}

// The S3 location where Identity Resolution Jobs write result files.
type ExportingLocation struct {

	// Information about the S3 location where Identity Resolution Jobs write result
	// files.
	S3Exporting *S3ExportingLocation

	noSmithyDocumentSerde
}

// A duplicate customer profile that is to be merged into a main profile.
type FieldSourceProfileIds struct {

	// A unique identifier for the account number field to be merged.
	AccountNumber *string

	// A unique identifier for the additional information field to be merged.
	AdditionalInformation *string

	// A unique identifier for the party type field to be merged.
	Address *string

	// A unique identifier for the attributes field to be merged.
	Attributes map[string]string

	// A unique identifier for the billing type field to be merged.
	BillingAddress *string

	// A unique identifier for the birthdate field to be merged.
	BirthDate *string

	// A unique identifier for the party type field to be merged.
	BusinessEmailAddress *string

	// A unique identifier for the business name field to be merged.
	BusinessName *string

	// A unique identifier for the business phone number field to be merged.
	BusinessPhoneNumber *string

	// A unique identifier for the email address field to be merged.
	EmailAddress *string

	// A unique identifier for the first name field to be merged.
	FirstName *string

	// A unique identifier for the gender field to be merged.
	Gender *string

	// A unique identifier for the home phone number field to be merged.
	HomePhoneNumber *string

	// A unique identifier for the last name field to be merged.
	LastName *string

	// A unique identifier for the mailing address field to be merged.
	MailingAddress *string

	// A unique identifier for the middle name field to be merged.
	MiddleName *string

	// A unique identifier for the mobile phone number field to be merged.
	MobilePhoneNumber *string

	// A unique identifier for the party type field to be merged.
	PartyType *string

	// A unique identifier for the personal email address field to be merged.
	PersonalEmailAddress *string

	// A unique identifier for the phone number field to be merged.
	PhoneNumber *string

	// A unique identifier for the shipping address field to be merged.
	ShippingAddress *string

	noSmithyDocumentSerde
}

// The configurations that control how Customer Profiles retrieves data from the
// source, Amazon AppFlow. Customer Profiles uses this information to create an
// AppFlow flow on behalf of customers.
type FlowDefinition struct {

	// The specified name of the flow. Use underscores (_) or hyphens (-) only. Spaces
	// are not allowed.
	//
	// This member is required.
	FlowName *string

	// The Amazon Resource Name of the AWS Key Management Service (KMS) key you
	// provide for encryption.
	//
	// This member is required.
	KmsArn *string

	// The configuration that controls how Customer Profiles retrieves data from the
	// source.
	//
	// This member is required.
	SourceFlowConfig *SourceFlowConfig

	// A list of tasks that Customer Profiles performs while transferring the data in
	// the flow run.
	//
	// This member is required.
	Tasks []Task

	// The trigger settings that determine how and when the flow runs.
	//
	// This member is required.
	TriggerConfig *TriggerConfig

	// A description of the flow you want to create.
	Description *string

	noSmithyDocumentSerde
}

// A data type pair that consists of a KeyName and Values list that were used to
// find a profile returned in response to a [SearchProfiles]request.
//
// [SearchProfiles]: https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html
type FoundByKeyValue struct {

	// A searchable identifier of a customer profile.
	KeyName *string

	// A list of key values.
	Values []string

	noSmithyDocumentSerde
}

// Information about the Identity Resolution Job.
type IdentityResolutionJob struct {

	// The unique name of the domain.
	DomainName *string

	// The S3 location where the Identity Resolution Job writes result files.
	ExportingLocation *ExportingLocation

	// The timestamp of when the job was completed.
	JobEndTime *time.Time

	// The unique identifier of the Identity Resolution Job.
	JobId *string

	// The timestamp of when the job was started or will be started.
	JobStartTime *time.Time

	// Statistics about an Identity Resolution Job.
	JobStats *JobStats

	// The error messages that are generated when the Identity Resolution Job runs.
	Message *string

	// The status of the Identity Resolution Job.
	//
	//   - PENDING : The Identity Resolution Job is scheduled but has not started yet.
	//   If you turn off the Identity Resolution feature in your domain, jobs in the
	//   PENDING state are deleted.
	//
	//   - PREPROCESSING : The Identity Resolution Job is loading your data.
	//
	//   - FIND_MATCHING : The Identity Resolution Job is using the machine learning
	//   model to identify profiles that belong to the same matching group.
	//
	//   - MERGING : The Identity Resolution Job is merging duplicate profiles.
	//
	//   - COMPLETED : The Identity Resolution Job completed successfully.
	//
	//   - PARTIAL_SUCCESS : There's a system error and not all of the data is merged.
	//   The Identity Resolution Job writes a message indicating the source of the
	//   problem.
	//
	//   - FAILED : The Identity Resolution Job did not merge any data. It writes a
	//   message indicating the source of the problem.
	Status IdentityResolutionJobStatus

	noSmithyDocumentSerde
}

// Specifies the configuration used when importing incremental records from the
// source.
type IncrementalPullConfig struct {

	// A field that specifies the date time or timestamp field as the criteria to use
	// when importing incremental records from the source.
	DatetimeTypeFieldName *string

	noSmithyDocumentSerde
}

// Configuration data for integration workflow.
type IntegrationConfig struct {

	// Configuration data for APPFLOW_INTEGRATION workflow type.
	AppflowIntegration *AppflowIntegration

	noSmithyDocumentSerde
}

// The day and time when do you want to start the Identity Resolution Job every
// week.
type JobSchedule struct {

	// The day when the Identity Resolution Job should run every week.
	//
	// This member is required.
	DayOfTheWeek JobScheduleDayOfTheWeek

	// The time when the Identity Resolution Job should run every week.
	//
	// This member is required.
	Time *string

	noSmithyDocumentSerde
}

// Statistics about the Identity Resolution Job.
type JobStats struct {

	// The number of matches found.
	NumberOfMatchesFound int64

	// The number of merges completed.
	NumberOfMergesDone int64

	// The number of profiles reviewed.
	NumberOfProfilesReviewed int64

	noSmithyDocumentSerde
}

// The details of a single calculated attribute definition.
type ListCalculatedAttributeDefinitionItem struct {

	// The unique name of the calculated attribute.
	CalculatedAttributeName *string

	// The threshold for the calculated attribute.
	CreatedAt *time.Time

	// The threshold for the calculated attribute.
	Description *string

	// The display name of the calculated attribute.
	DisplayName *string

	// The timestamp of when the calculated attribute definition was most recently
	// edited.
	LastUpdatedAt *time.Time

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]string

	noSmithyDocumentSerde
}

// The details of a single calculated attribute for a profile.
type ListCalculatedAttributeForProfileItem struct {

	// The unique name of the calculated attribute.
	CalculatedAttributeName *string

	// The display name of the calculated attribute.
	DisplayName *string

	// Indicates whether the calculated attribute’s value is based on partial data. If
	// data is partial, it is set to true.
	IsDataPartial *string

	// The value of the calculated attribute.
	Value *string

	noSmithyDocumentSerde
}

// An object in a list that represents a domain.
type ListDomainItem struct {

	// The timestamp of when the domain was created.
	//
	// This member is required.
	CreatedAt *time.Time

	// The unique name of the domain.
	//
	// This member is required.
	DomainName *string

	// The timestamp of when the domain was most recently edited.
	//
	// This member is required.
	LastUpdatedAt *time.Time

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]string

	noSmithyDocumentSerde
}

// An integration in list of integrations.
type ListIntegrationItem struct {

	// The timestamp of when the domain was created.
	//
	// This member is required.
	CreatedAt *time.Time

	// The unique name of the domain.
	//
	// This member is required.
	DomainName *string

	// The timestamp of when the domain was most recently edited.
	//
	// This member is required.
	LastUpdatedAt *time.Time

	// The URI of the S3 bucket or any other type of data source.
	//
	// This member is required.
	Uri *string

	// Boolean that shows if the Flow that's associated with the Integration is
	// created in Amazon Appflow, or with ObjectTypeName equals _unstructured via
	// API/CLI in flowDefinition.
	IsUnstructured *bool

	// The name of the profile object type.
	ObjectTypeName *string

	// A map in which each key is an event type from an external application such as
	// Segment or Shopify, and each value is an ObjectTypeName (template) used to
	// ingest the event. It supports the following event types: SegmentIdentify ,
	// ShopifyCreateCustomers , ShopifyUpdateCustomers , ShopifyCreateDraftOrders ,
	// ShopifyUpdateDraftOrders , ShopifyCreateOrders , and ShopifyUpdatedOrders .
	ObjectTypeNames map[string]string

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]string

	// Unique identifier for the workflow.
	WorkflowId *string

	noSmithyDocumentSerde
}

// A ProfileObject in a list of ProfileObjects.
type ListProfileObjectsItem struct {

	// A JSON representation of a ProfileObject that belongs to a profile.
	Object *string

	// Specifies the kind of object being added to a profile, such as
	// "Salesforce-Account."
	ObjectTypeName *string

	// The unique identifier of the ProfileObject generated by the service.
	ProfileObjectUniqueKey *string

	noSmithyDocumentSerde
}

// A ProfileObjectType instance.
type ListProfileObjectTypeItem struct {

	// Description of the profile object type.
	//
	// This member is required.
	Description *string

	// The name of the profile object type.
	//
	// This member is required.
	ObjectTypeName *string

	// The timestamp of when the domain was created.
	CreatedAt *time.Time

	// The timestamp of when the domain was most recently edited.
	LastUpdatedAt *time.Time

	// The amount of provisioned profile object max count available.
	MaxAvailableProfileObjectCount *int32

	// The amount of profile object max count assigned to the object type.
	MaxProfileObjectCount *int32

	// The tags used to organize, track, or control access for this resource.
	Tags map[string]string

	noSmithyDocumentSerde
}

// A ProfileObjectTypeTemplate in a list of ProfileObjectTypeTemplates.
type ListProfileObjectTypeTemplateItem struct {

	// The name of the source of the object template.
	SourceName *string

	// The source of the object template.
	SourceObject *string

	// A unique identifier for the object template.
	TemplateId *string

	noSmithyDocumentSerde
}

// A workflow in list of workflows.
type ListWorkflowsItem struct {

	// Creation timestamp for workflow.
	//
	// This member is required.
	CreatedAt *time.Time

	// Last updated timestamp for workflow.
	//
	// This member is required.
	LastUpdatedAt *time.Time

	// Status of workflow execution.
	//
	// This member is required.
	Status Status

	// Description for workflow execution status.
	//
	// This member is required.
	StatusDescription *string

	// Unique identifier for the workflow.
	//
	// This member is required.
	WorkflowId *string

	// The type of workflow. The only supported value is APPFLOW_INTEGRATION.
	//
	// This member is required.
	WorkflowType WorkflowType

	noSmithyDocumentSerde
}

// The properties that are applied when Marketo is being used as a source.
type MarketoSourceProperties struct {

	// The object specified in the Marketo flow source.
	//
	// This member is required.
	Object *string

	noSmithyDocumentSerde
}

// The flag that enables the matching process of duplicate profiles.
type MatchingRequest struct {

	// The flag that enables the matching process of duplicate profiles.
	//
	// This member is required.
	Enabled *bool

	// Configuration information about the auto-merging process.
	AutoMerging *AutoMerging

	// Configuration information for exporting Identity Resolution results, for
	// example, to an S3 bucket.
	ExportingConfig *ExportingConfig

	// The day and time when do you want to start the Identity Resolution Job every
	// week.
	JobSchedule *JobSchedule

	noSmithyDocumentSerde
}

// The flag that enables the matching process of duplicate profiles.
type MatchingResponse struct {

	// Configuration information about the auto-merging process.
	AutoMerging *AutoMerging

	// The flag that enables the matching process of duplicate profiles.
	Enabled *bool

	// Configuration information for exporting Identity Resolution results, for
	// example, to an S3 bucket.
	ExportingConfig *ExportingConfig

	// The day and time when do you want to start the Identity Resolution Job every
	// week.
	JobSchedule *JobSchedule

	noSmithyDocumentSerde
}

// Specifies how does the rule-based matching process should match profiles. You
// can choose from the following attributes to build the matching Rule:
//
//   - AccountNumber
//
//   - Address.Address
//
//   - Address.City
//
//   - Address.Country
//
//   - Address.County
//
//   - Address.PostalCode
//
//   - Address.State
//
//   - Address.Province
//
//   - BirthDate
//
//   - BusinessName
//
//   - EmailAddress
//
//   - FirstName
//
//   - Gender
//
//   - LastName
//
//   - MiddleName
//
//   - PhoneNumber
//
//   - Any customized profile attributes that start with the Attributes
type MatchingRule struct {

	// A single rule level of the MatchRules . Configures how the rule-based matching
	// process should match profiles.
	//
	// This member is required.
	Rule []string

	noSmithyDocumentSerde
}

// The Match group object.
type MatchItem struct {

	// A number between 0 and 1, where a higher score means higher similarity.
	// Examining match confidence scores lets you distinguish between groups of similar
	// records in which the system is highly confident (which you may decide to merge),
	// groups of similar records about which the system is uncertain (which you may
	// decide to have reviewed by a human), and groups of similar records that the
	// system deems to be unlikely (which you may decide to reject). Given confidence
	// scores vary as per the data input, it should not be used an absolute measure of
	// matching quality.
	ConfidenceScore *float64

	// The unique identifiers for this group of profiles that match.
	MatchId *string

	// A list of identifiers for profiles that match.
	ProfileIds []string

	noSmithyDocumentSerde
}

// The filter applied to ListProfileObjects response to include profile objects
// with the specified index values.
type ObjectFilter struct {

	// A searchable identifier of a profile object. The predefined keys you can use to
	// search for _asset include: _assetId , _assetName , and _serialNumber . The
	// predefined keys you can use to search for _case include: _caseId . The
	// predefined keys you can use to search for _order include: _orderId .
	//
	// This member is required.
	KeyName *string

	// A list of key values.
	//
	// This member is required.
	Values []string

	noSmithyDocumentSerde
}

// Represents a field in a ProfileObjectType.
type ObjectTypeField struct {

	// The content type of the field. Used for determining equality when searching.
	ContentType FieldContentType

	// A field of a ProfileObject. For example: _source.FirstName, where “_source” is
	// a ProfileObjectType of a Zendesk user and “FirstName” is a field in that
	// ObjectType.
	Source *string

	// The location of the data in the standard ProfileObject model. For example:
	// _profile.Address.PostalCode.
	Target *string

	noSmithyDocumentSerde
}

// An object that defines the Key element of a ProfileObject. A Key is a special
// element that can be used to search for a customer profile.
type ObjectTypeKey struct {

	// The reference for the key name of the fields map.
	FieldNames []string

	// The types of keys that a ProfileObject can have. Each ProfileObject can have
	// only 1 UNIQUE key but multiple PROFILE keys. PROFILE, ASSET, CASE, or ORDER
	// means that this key can be used to tie an object to a PROFILE, ASSET, CASE, or
	// ORDER respectively. UNIQUE means that it can be used to uniquely identify an
	// object. If a key a is marked as SECONDARY, it will be used to search for
	// profiles after all other PROFILE keys have been searched. A LOOKUP_ONLY key is
	// only used to match a profile but is not persisted to be used for searching of
	// the profile. A NEW_ONLY key is only used if the profile does not already exist
	// before the object is ingested, otherwise it is only used for matching objects to
	// profiles.
	StandardIdentifiers []StandardIdentifier

	noSmithyDocumentSerde
}

// The standard profile of a customer.
type Profile struct {

	// An account number that you have given to the customer.
	AccountNumber *string

	// Any additional information relevant to the customer’s profile.
	AdditionalInformation *string

	// A generic address associated with the customer that is not mailing, shipping,
	// or billing.
	Address *Address

	// A key value pair of attributes of a customer profile.
	Attributes map[string]string

	// The customer’s billing address.
	BillingAddress *Address

	// The customer’s birth date.
	BirthDate *string

	// The customer’s business email address.
	BusinessEmailAddress *string

	// The name of the customer’s business.
	BusinessName *string

	// The customer’s home phone number.
	BusinessPhoneNumber *string

	// The customer’s email address, which has not been specified as a personal or
	// business address.
	EmailAddress *string

	// The customer’s first name.
	FirstName *string

	// A list of items used to find a profile returned in a [SearchProfiles] response. An item is a
	// key-value(s) pair that matches an attribute in the profile.
	//
	// If the optional AdditionalSearchKeys parameter was included in the [SearchProfiles] request,
	// the FoundByItems list should be interpreted based on the LogicalOperator used
	// in the request:
	//
	//   - AND - The profile included in the response matched all of the search keys
	//   specified in the request. The FoundByItems will include all of the
	//   key-value(s) pairs that were specified in the request (as this is a requirement
	//   of AND search logic).
	//
	//   - OR - The profile included in the response matched at least one of the search
	//   keys specified in the request. The FoundByItems will include each of the
	//   key-value(s) pairs that the profile was found by.
	//
	// The OR relationship is the default behavior if the LogicalOperator parameter is
	// not included in the [SearchProfiles]request.
	//
	// [SearchProfiles]: https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html
	FoundByItems []FoundByKeyValue

	// The gender with which the customer identifies.
	//
	// Deprecated: This member has been deprecated.
	Gender Gender

	// An alternative to Gender which accepts any string as input.
	GenderString *string

	// The customer’s home phone number.
	HomePhoneNumber *string

	// The customer’s last name.
	LastName *string

	// The customer’s mailing address.
	MailingAddress *Address

	// The customer’s middle name.
	MiddleName *string

	// The customer’s mobile phone number.
	MobilePhoneNumber *string

	// The type of profile used to describe the customer.
	//
	// Deprecated: This member has been deprecated.
	PartyType PartyType

	// An alternative to PartyType which accepts any string as input.
	PartyTypeString *string

	// The customer’s personal email address.
	PersonalEmailAddress *string

	// The customer's phone number, which has not been specified as a mobile, home, or
	// business number.
	PhoneNumber *string

	// The unique identifier of a customer profile.
	ProfileId *string

	// The customer’s shipping address.
	ShippingAddress *Address

	noSmithyDocumentSerde
}

// The relative time period over which data is included in the aggregation.
type Range struct {

	// The unit of time.
	//
	// This member is required.
	Unit Unit

	// The amount of time of the specified unit.
	//
	// This member is required.
	Value *int32

	noSmithyDocumentSerde
}

// The request to enable the rule-based matching.
type RuleBasedMatchingRequest struct {

	// The flag that enables the rule-based matching process of duplicate profiles.
	//
	// This member is required.
	Enabled *bool

	// Configures information about the AttributeTypesSelector where the rule-based
	// identity resolution uses to match profiles.
	AttributeTypesSelector *AttributeTypesSelector

	// How the auto-merging process should resolve conflicts between different
	// profiles.
	ConflictResolution *ConflictResolution

	// Configuration information about the S3 bucket where Identity Resolution Jobs
	// writes result files.
	//
	// You need to give Customer Profiles service principal write permission to your
	// S3 bucket. Otherwise, you'll get an exception in the API response. For an
	// example policy, see [Amazon Connect Customer Profiles cross-service confused deputy prevention].
	//
	// [Amazon Connect Customer Profiles cross-service confused deputy prevention]: https://docs.aws.amazon.com/connect/latest/adminguide/cross-service-confused-deputy-prevention.html#customer-profiles-cross-service
	ExportingConfig *ExportingConfig

	// Configures how the rule-based matching process should match profiles. You can
	// have up to 15 MatchingRule in the MatchingRules .
	MatchingRules []MatchingRule

	// Indicates the maximum allowed rule level.
	MaxAllowedRuleLevelForMatching *int32

	// [MatchingRule]
	//
	// [MatchingRule]: https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_MatchingRule.html
	MaxAllowedRuleLevelForMerging *int32

	noSmithyDocumentSerde
}

// The response of the Rule-based matching request.
type RuleBasedMatchingResponse struct {

	// Configures information about the AttributeTypesSelector where the rule-based
	// identity resolution uses to match profiles.
	AttributeTypesSelector *AttributeTypesSelector

	// How the auto-merging process should resolve conflicts between different
	// profiles.
	ConflictResolution *ConflictResolution

	// The flag that enables the rule-based matching process of duplicate profiles.
	Enabled *bool

	// Configuration information about the S3 bucket where Identity Resolution Jobs
	// writes result files.
	//
	// You need to give Customer Profiles service principal write permission to your
	// S3 bucket. Otherwise, you'll get an exception in the API response. For an
	// example policy, see [Amazon Connect Customer Profiles cross-service confused deputy prevention].
	//
	// [Amazon Connect Customer Profiles cross-service confused deputy prevention]: https://docs.aws.amazon.com/connect/latest/adminguide/cross-service-confused-deputy-prevention.html#customer-profiles-cross-service
	ExportingConfig *ExportingConfig

	// Configures how the rule-based matching process should match profiles. You can
	// have up to 15 MatchingRule in the MatchingRules .
	MatchingRules []MatchingRule

	// Indicates the maximum allowed rule level.
	MaxAllowedRuleLevelForMatching *int32

	// [MatchingRule]
	//
	// [MatchingRule]: https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_MatchingRule.html
	MaxAllowedRuleLevelForMerging *int32

	// PENDING
	//
	//   - The first status after configuration a rule-based matching rule. If it is
	//   an existing domain, the rule-based Identity Resolution waits one hour before
	//   creating the matching rule. If it is a new domain, the system will skip the
	//   PENDING stage.
	//
	// IN_PROGRESS
	//
	//   - The system is creating the rule-based matching rule. Under this status, the
	//   system is evaluating the existing data and you can no longer change the
	//   Rule-based matching configuration.
	//
	// ACTIVE
	//
	//   - The rule is ready to use. You can change the rule a day after the status is
	//   in ACTIVE .
	Status RuleBasedMatchingStatus

	noSmithyDocumentSerde
}

// Configuration information about the S3 bucket where Identity Resolution Jobs
// write result files.
type S3ExportingConfig struct {

	// The name of the S3 bucket where Identity Resolution Jobs write result files.
	//
	// This member is required.
	S3BucketName *string

	// The S3 key name of the location where Identity Resolution Jobs write result
	// files.
	S3KeyName *string

	noSmithyDocumentSerde
}

// The S3 location where Identity Resolution Jobs write result files.
type S3ExportingLocation struct {

	// The name of the S3 bucket name where Identity Resolution Jobs write result
	// files.
	S3BucketName *string

	// The S3 key name of the location where Identity Resolution Jobs write result
	// files.
	S3KeyName *string

	noSmithyDocumentSerde
}

// The properties that are applied when Amazon S3 is being used as the flow source.
type S3SourceProperties struct {

	// The Amazon S3 bucket name where the source files are stored.
	//
	// This member is required.
	BucketName *string

	// The object key for the Amazon S3 bucket in which the source files are stored.
	BucketPrefix *string

	noSmithyDocumentSerde
}

// The properties that are applied when Salesforce is being used as a source.
type SalesforceSourceProperties struct {

	// The object specified in the Salesforce flow source.
	//
	// This member is required.
	Object *string

	// The flag that enables dynamic fetching of new (recently added) fields in the
	// Salesforce objects while running a flow.
	EnableDynamicFieldUpdate bool

	// Indicates whether Amazon AppFlow includes deleted files in the flow run.
	IncludeDeletedRecords bool

	noSmithyDocumentSerde
}

// Specifies the configuration details of a scheduled-trigger flow that you
// define. Currently, these settings only apply to the scheduled-trigger type.
type ScheduledTriggerProperties struct {

	// The scheduling expression that determines the rate at which the schedule will
	// run, for example rate (5 minutes).
	//
	// This member is required.
	ScheduleExpression *string

	// Specifies whether a scheduled flow has an incremental data transfer or a
	// complete data transfer for each flow run.
	DataPullMode DataPullMode

	// Specifies the date range for the records to import from the connector in the
	// first flow run.
	FirstExecutionFrom *time.Time

	// Specifies the scheduled end time for a scheduled-trigger flow.
	ScheduleEndTime *time.Time

	// Specifies the optional offset that is added to the time interval for a
	// schedule-triggered flow.
	ScheduleOffset *int64

	// Specifies the scheduled start time for a scheduled-trigger flow.
	ScheduleStartTime *time.Time

	// Specifies the time zone used when referring to the date and time of a
	// scheduled-triggered flow, such as America/New_York.
	Timezone *string

	noSmithyDocumentSerde
}

// The properties that are applied when ServiceNow is being used as a source.
type ServiceNowSourceProperties struct {

	// The object specified in the ServiceNow flow source.
	//
	// This member is required.
	Object *string

	noSmithyDocumentSerde
}

// Specifies the information that is required to query a particular Amazon AppFlow
// connector. Customer Profiles supports Salesforce, Zendesk, Marketo, ServiceNow
// and Amazon S3.
type SourceConnectorProperties struct {

	// The properties that are applied when Marketo is being used as a source.
	Marketo *MarketoSourceProperties

	// The properties that are applied when Amazon S3 is being used as the flow source.
	S3 *S3SourceProperties

	// The properties that are applied when Salesforce is being used as a source.
	Salesforce *SalesforceSourceProperties

	// The properties that are applied when ServiceNow is being used as a source.
	ServiceNow *ServiceNowSourceProperties

	// The properties that are applied when using Zendesk as a flow source.
	Zendesk *ZendeskSourceProperties

	noSmithyDocumentSerde
}

// Contains information about the configuration of the source connector used in
// the flow.
type SourceFlowConfig struct {

	// The type of connector, such as Salesforce, Marketo, and so on.
	//
	// This member is required.
	ConnectorType SourceConnectorType

	// Specifies the information that is required to query a particular source
	// connector.
	//
	// This member is required.
	SourceConnectorProperties *SourceConnectorProperties

	// The name of the AppFlow connector profile. This name must be unique for each
	// connector profile in the AWS account.
	ConnectorProfileName *string

	// Defines the configuration for a scheduled incremental data pull. If a valid
	// configuration is provided, the fields specified in the configuration are used
	// when querying for the incremental data pull.
	IncrementalPullConfig *IncrementalPullConfig

	noSmithyDocumentSerde
}

// A class for modeling different type of tasks. Task implementation varies based
// on the TaskType.
type Task struct {

	// The source fields to which a particular task is applied.
	//
	// This member is required.
	SourceFields []string

	// Specifies the particular task implementation that Amazon AppFlow performs.
	//
	// This member is required.
	TaskType TaskType

	// The operation to be performed on the provided source fields.
	ConnectorOperator *ConnectorOperator

	// A field in a destination connector, or a field value against which Amazon
	// AppFlow validates a source field.
	DestinationField *string

	// A map used to store task-related information. The service looks for particular
	// information based on the TaskType.
	TaskProperties map[string]string

	noSmithyDocumentSerde
}

// The threshold for the calculated attribute.
type Threshold struct {

	// The operator of the threshold.
	//
	// This member is required.
	Operator Operator

	// The value of the threshold.
	//
	// This member is required.
	Value *string

	noSmithyDocumentSerde
}

// The trigger settings that determine how and when Amazon AppFlow runs the
// specified flow.
type TriggerConfig struct {

	// Specifies the type of flow trigger. It can be OnDemand, Scheduled, or Event.
	//
	// This member is required.
	TriggerType TriggerType

	// Specifies the configuration details of a schedule-triggered flow that you
	// define. Currently, these settings only apply to the Scheduled trigger type.
	TriggerProperties *TriggerProperties

	noSmithyDocumentSerde
}

// Specifies the configuration details that control the trigger for a flow.
// Currently, these settings only apply to the Scheduled trigger type.
type TriggerProperties struct {

	// Specifies the configuration details of a schedule-triggered flow that you
	// define.
	Scheduled *ScheduledTriggerProperties

	noSmithyDocumentSerde
}

// Updates associated with the address properties of a customer profile.
type UpdateAddress struct {

	// The first line of a customer address.
	Address1 *string

	// The second line of a customer address.
	Address2 *string

	// The third line of a customer address.
	Address3 *string

	// The fourth line of a customer address.
	Address4 *string

	// The city in which a customer lives.
	City *string

	// The country in which a customer lives.
	Country *string

	// The county in which a customer lives.
	County *string

	// The postal code of a customer address.
	PostalCode *string

	// The province in which a customer lives.
	Province *string

	// The state in which a customer lives.
	State *string

	noSmithyDocumentSerde
}

// Structure to hold workflow attributes.
type WorkflowAttributes struct {

	// Workflow attributes specific to APPFLOW_INTEGRATION workflow.
	AppflowIntegration *AppflowIntegrationWorkflowAttributes

	noSmithyDocumentSerde
}

// Generic object containing workflow execution metrics.
type WorkflowMetrics struct {

	// Workflow execution metrics for APPFLOW_INTEGRATION workflow.
	AppflowIntegration *AppflowIntegrationWorkflowMetrics

	noSmithyDocumentSerde
}

// List containing steps in workflow.
type WorkflowStepItem struct {

	// Workflow step information specific to APPFLOW_INTEGRATION workflow.
	AppflowIntegration *AppflowIntegrationWorkflowStep

	noSmithyDocumentSerde
}

// The properties that are applied when using Zendesk as a flow source.
type ZendeskSourceProperties struct {

	// The object specified in the Zendesk flow source.
	//
	// This member is required.
	Object *string

	noSmithyDocumentSerde
}

type noSmithyDocumentSerde = smithydocument.NoSerde