Skip to content

Commit 4f00f1a

Browse files
author
awstools
committed
feat(client-appflow): AppFlow simplifies the preparation and cataloging of SaaS data into the AWS Glue Data Catalog where your data can be discovered and accessed by AWS analytics and ML services. AppFlow now also supports data field partitioning and file size optimization to improve query performance and reduce cost.
1 parent 8212786 commit 4f00f1a

File tree

3 files changed

+740
-141
lines changed

3 files changed

+740
-141
lines changed

clients/client-appflow/src/models/models_0.ts

Lines changed: 247 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,14 @@ export interface AggregationConfig {
3737
* leave them unaggregated. </p>
3838
*/
3939
aggregationType?: AggregationType | string;
40+
41+
/**
42+
* <p>The desired file size, in MB, for each output file that Amazon AppFlow writes to the
43+
* flow destination. For each file, Amazon AppFlow attempts to achieve the size that you
44+
* specify. The actual file sizes might differ from this target based on the number and size of
45+
* the records that each file contains.</p>
46+
*/
47+
targetFileSize?: number;
4048
}
4149

4250
export enum AmplitudeConnectorOperator {
@@ -283,6 +291,10 @@ export interface BasicAuthCredentials {
283291
password: string | undefined;
284292
}
285293

294+
export enum CatalogType {
295+
GLUE = "GLUE",
296+
}
297+
286298
/**
287299
* <p> There was a conflict when processing the request (for example, a flow with the given name
288300
* already exists within the account. Check for conflicting resource names and try again. </p>
@@ -2846,6 +2858,11 @@ export enum FileType {
28462858
PARQUET = "PARQUET",
28472859
}
28482860

2861+
export enum PathPrefix {
2862+
EXECUTION_ID = "EXECUTION_ID",
2863+
SCHEMA_VERSION = "SCHEMA_VERSION",
2864+
}
2865+
28492866
export enum PrefixFormat {
28502867
DAY = "DAY",
28512868
HOUR = "HOUR",
@@ -2861,20 +2878,49 @@ export enum PrefixType {
28612878
}
28622879

28632880
/**
2864-
* <p> Determines the prefix that Amazon AppFlow applies to the destination folder name.
2865-
* You can name your destination folders according to the flow frequency and date. </p>
2881+
* <p>Specifies elements that Amazon AppFlow includes in the file and folder names in the flow
2882+
* destination.</p>
28662883
*/
28672884
export interface PrefixConfig {
28682885
/**
2869-
* <p> Determines the format of the prefix, and whether it applies to the file name, file path,
2886+
* <p>Determines the format of the prefix, and whether it applies to the file name, file path,
28702887
* or both. </p>
28712888
*/
28722889
prefixType?: PrefixType | string;
28732890

28742891
/**
2875-
* <p> Determines the level of granularity that's included in the prefix. </p>
2892+
* <p>Determines the level of granularity for the date and time that's included in the prefix. </p>
28762893
*/
28772894
prefixFormat?: PrefixFormat | string;
2895+
2896+
/**
2897+
* <p>Specifies whether the destination file path includes either or both of the following
2898+
* elements:</p>
2899+
* <dl>
2900+
* <dt>EXECUTION_ID</dt>
2901+
* <dd>
2902+
* <p>The ID that Amazon AppFlow assigns to the flow run.</p>
2903+
* </dd>
2904+
* <dt>SCHEMA_VERSION</dt>
2905+
* <dd>
2906+
* <p>The version number of your data schema. Amazon AppFlow assigns this version
2907+
* number. The version number increases by one when you change any of the following
2908+
* settings in your flow configuration:</p>
2909+
* <ul>
2910+
* <li>
2911+
* <p>Source-to-destination field mappings</p>
2912+
* </li>
2913+
* <li>
2914+
* <p>Field data types</p>
2915+
* </li>
2916+
* <li>
2917+
* <p>Partition keys</p>
2918+
* </li>
2919+
* </ul>
2920+
* </dd>
2921+
* </dl>
2922+
*/
2923+
pathPrefixHierarchy?: (PathPrefix | string)[];
28782924
}
28792925

28802926
/**
@@ -3113,8 +3159,8 @@ export interface UpsolverS3OutputFormatConfig {
31133159
fileType?: FileType | string;
31143160

31153161
/**
3116-
* <p> Determines the prefix that Amazon AppFlow applies to the destination folder name.
3117-
* You can name your destination folders according to the flow frequency and date. </p>
3162+
* <p>Specifies elements that Amazon AppFlow includes in the file and folder names in the flow
3163+
* destination.</p>
31183164
*/
31193165
prefixConfig: PrefixConfig | undefined;
31203166

@@ -3275,6 +3321,56 @@ export interface DestinationFlowConfig {
32753321
destinationConnectorProperties: DestinationConnectorProperties | undefined;
32763322
}
32773323

3324+
/**
3325+
* <p>Specifies the configuration that Amazon AppFlow uses when it catalogs your data with
3326+
* the Glue Data Catalog. When Amazon AppFlow catalogs your data, it stores
3327+
* metadata in Data Catalog tables. This metadata represents the data that's transferred
3328+
* by the flow that you configure with these settings.</p>
3329+
* <note>
3330+
* <p>You can configure a flow with these settings only when the flow destination is Amazon S3.</p>
3331+
* </note>
3332+
*/
3333+
export interface GlueDataCatalogConfig {
3334+
/**
3335+
* <p>The Amazon Resource Name (ARN) of an IAM role that grants Amazon AppFlow the permissions it needs to create Data Catalog tables, databases, and
3336+
* partitions.</p>
3337+
* <p>For an example IAM policy that has the required permissions, see <a href="https://docs.aws.amazon.com/appflow/latest/userguide/security_iam_id-based-policy-examples.html">Identity-based
3338+
* policy examples for Amazon AppFlow</a>.</p>
3339+
*/
3340+
roleArn: string | undefined;
3341+
3342+
/**
3343+
* <p>The name of the Data Catalog database that stores the metadata tables that
3344+
* Amazon AppFlow creates in your Amazon Web Services account. These tables contain
3345+
* metadata for the data that's transferred by the flow that you configure with this
3346+
* parameter.</p>
3347+
* <note>
3348+
* <p>When you configure a new flow with this parameter, you must specify an existing
3349+
* database.</p>
3350+
* </note>
3351+
*/
3352+
databaseName: string | undefined;
3353+
3354+
/**
3355+
* <p>A naming prefix for each Data Catalog table that Amazon AppFlow creates for
3356+
* the flow that you configure with this setting. Amazon AppFlow adds the prefix to the
3357+
* beginning of the each table name.</p>
3358+
*/
3359+
tablePrefix: string | undefined;
3360+
}
3361+
3362+
/**
3363+
* <p>Specifies the configuration that Amazon AppFlow uses when it catalogs your data.
3364+
* When Amazon AppFlow catalogs your data, it stores metadata in a data catalog.</p>
3365+
*/
3366+
export interface MetadataCatalogConfig {
3367+
/**
3368+
* <p>Specifies the configuration that Amazon AppFlow uses when it catalogs your data with the
3369+
* Glue Data Catalog.</p>
3370+
*/
3371+
glueDataCatalog?: GlueDataCatalogConfig;
3372+
}
3373+
32783374
/**
32793375
* <p> Specifies the configuration used when importing incremental records from the source.
32803376
* </p>
@@ -3675,6 +3771,7 @@ export enum OperatorPropertiesKeys {
36753771
MASK_LENGTH = "MASK_LENGTH",
36763772
MASK_VALUE = "MASK_VALUE",
36773773
MATH_OPERATION_FIELDS_ORDER = "MATH_OPERATION_FIELDS_ORDER",
3774+
ORDERED_PARTITION_KEYS_LIST = "ORDERED_PARTITION_KEYS_LIST",
36783775
SOURCE_DATA_TYPE = "SOURCE_DATA_TYPE",
36793776
SUBFIELD_CATEGORY_MAP = "SUBFIELD_CATEGORY_MAP",
36803777
TRUNCATE_LENGTH = "TRUNCATE_LENGTH",
@@ -3691,6 +3788,7 @@ export enum TaskType {
36913788
MAP_ALL = "Map_all",
36923789
MASK = "Mask",
36933790
MERGE = "Merge",
3791+
PARTITION = "Partition",
36943792
PASSTHROUGH = "Passthrough",
36953793
TRUNCATE = "Truncate",
36963794
VALIDATE = "Validate",
@@ -3870,6 +3968,13 @@ export interface CreateFlowRequest {
38703968
* <p> The tags used to organize, track, or control access for your flow. </p>
38713969
*/
38723970
tags?: Record<string, string>;
3971+
3972+
/**
3973+
* <p>Specifies the configuration that Amazon AppFlow uses when it catalogs the data
3974+
* that's transferred by the associated flow. When Amazon AppFlow catalogs the data from a
3975+
* flow, it stores metadata in a data catalog.</p>
3976+
*/
3977+
metadataCatalogConfig?: MetadataCatalogConfig;
38733978
}
38743979

38753980
export enum FlowStatus {
@@ -4113,6 +4218,72 @@ export interface ExecutionDetails {
41134218
mostRecentExecutionStatus?: ExecutionStatus | string;
41144219
}
41154220

4221+
/**
4222+
* <p>Describes the status of an attempt from Amazon AppFlow to register a
4223+
* resource.</p>
4224+
* <p>When you run a flow that you've configured to use a metadata catalog, Amazon AppFlow
4225+
* registers a metadata table and data partitions with that catalog. This operation provides the
4226+
* status of that registration attempt. The operation also indicates how many related resources
4227+
* Amazon AppFlow created or updated.</p>
4228+
*/
4229+
export interface RegistrationOutput {
4230+
/**
4231+
* <p>Explains the status of the registration attempt from Amazon AppFlow. If the attempt
4232+
* fails, the message explains why.</p>
4233+
*/
4234+
message?: string;
4235+
4236+
/**
4237+
* <p>Indicates the number of resources that Amazon AppFlow created or updated. Possible
4238+
* resources include metadata tables and data partitions.</p>
4239+
*/
4240+
result?: string;
4241+
4242+
/**
4243+
* <p>Indicates the status of the registration attempt from Amazon AppFlow.</p>
4244+
*/
4245+
status?: ExecutionStatus | string;
4246+
}
4247+
4248+
/**
4249+
* <p>Describes the metadata catalog, metadata table, and data partitions that Amazon AppFlow used for the associated flow run.</p>
4250+
*/
4251+
export interface MetadataCatalogDetail {
4252+
/**
4253+
* <p>The type of metadata catalog that Amazon AppFlow used for the associated flow run.
4254+
* This parameter returns the following value:</p>
4255+
* <dl>
4256+
* <dt>GLUE</dt>
4257+
* <dd>
4258+
* <p>The metadata catalog is provided by the Glue Data Catalog. Glue includes the Glue Data Catalog as a component.</p>
4259+
* </dd>
4260+
* </dl>
4261+
*/
4262+
catalogType?: CatalogType | string;
4263+
4264+
/**
4265+
* <p>The name of the table that stores the metadata for the associated flow run. The table
4266+
* stores metadata that represents the data that the flow transferred. Amazon AppFlow
4267+
* stores the table in the metadata catalog.</p>
4268+
*/
4269+
tableName?: string;
4270+
4271+
/**
4272+
* <p>Describes the status of the attempt from Amazon AppFlow to register the metadata
4273+
* table with the metadata catalog. Amazon AppFlow creates or updates this table for the
4274+
* associated flow run.</p>
4275+
*/
4276+
tableRegistrationOutput?: RegistrationOutput;
4277+
4278+
/**
4279+
* <p>Describes the status of the attempt from Amazon AppFlow to register the data
4280+
* partitions with the metadata catalog. The data partitions organize the flow output into a
4281+
* hierarchical path, such as a folder path in an S3 bucket. Amazon AppFlow creates the
4282+
* partitions (if they don't already exist) based on your flow configuration.</p>
4283+
*/
4284+
partitionRegistrationOutput?: RegistrationOutput;
4285+
}
4286+
41164287
export interface DescribeFlowResponse {
41174288
/**
41184289
* <p> The flow's Amazon Resource Name (ARN). </p>
@@ -4200,6 +4371,36 @@ export interface DescribeFlowResponse {
42004371
* <p> The tags used to organize, track, or control access for your flow. </p>
42014372
*/
42024373
tags?: Record<string, string>;
4374+
4375+
/**
4376+
* <p>Specifies the configuration that Amazon AppFlow uses when it catalogs the data
4377+
* that's transferred by the associated flow. When Amazon AppFlow catalogs the data from a
4378+
* flow, it stores metadata in a data catalog.</p>
4379+
*/
4380+
metadataCatalogConfig?: MetadataCatalogConfig;
4381+
4382+
/**
4383+
* <p>Describes the metadata catalog, metadata table, and data partitions that Amazon AppFlow used for the associated flow run.</p>
4384+
*/
4385+
lastRunMetadataCatalogDetails?: MetadataCatalogDetail[];
4386+
4387+
/**
4388+
* <p>The version number of your data schema. Amazon AppFlow assigns this version number.
4389+
* The version number increases by one when you change any of the following settings in your flow
4390+
* configuration:</p>
4391+
* <ul>
4392+
* <li>
4393+
* <p>Source-to-destination field mappings</p>
4394+
* </li>
4395+
* <li>
4396+
* <p>Field data types</p>
4397+
* </li>
4398+
* <li>
4399+
* <p>Partition keys</p>
4400+
* </li>
4401+
* </ul>
4402+
*/
4403+
schemaVersion?: number;
42034404
}
42044405

42054406
export interface DescribeFlowExecutionRecordsRequest {
@@ -4303,6 +4504,11 @@ export interface ExecutionRecord {
43034504
* run. </p>
43044505
*/
43054506
dataPullEndTime?: Date;
4507+
4508+
/**
4509+
* <p>Describes the metadata catalog, metadata table, and data partitions that Amazon AppFlow used for the associated flow run.</p>
4510+
*/
4511+
metadataCatalogDetails?: MetadataCatalogDetail[];
43064512
}
43074513

43084514
export interface DescribeFlowExecutionRecordsResponse {
@@ -4723,6 +4929,13 @@ export interface UpdateFlowRequest {
47234929
* flow run. </p>
47244930
*/
47254931
tasks: Task[] | undefined;
4932+
4933+
/**
4934+
* <p>Specifies the configuration that Amazon AppFlow uses when it catalogs the data
4935+
* that's transferred by the associated flow. When Amazon AppFlow catalogs the data from a
4936+
* flow, it stores metadata in a data catalog.</p>
4937+
*/
4938+
metadataCatalogConfig?: MetadataCatalogConfig;
47264939
}
47274940

47284941
export interface UpdateFlowResponse {
@@ -5632,6 +5845,20 @@ export const DestinationFlowConfigFilterSensitiveLog = (obj: DestinationFlowConf
56325845
...obj,
56335846
});
56345847

5848+
/**
5849+
* @internal
5850+
*/
5851+
export const GlueDataCatalogConfigFilterSensitiveLog = (obj: GlueDataCatalogConfig): any => ({
5852+
...obj,
5853+
});
5854+
5855+
/**
5856+
* @internal
5857+
*/
5858+
export const MetadataCatalogConfigFilterSensitiveLog = (obj: MetadataCatalogConfig): any => ({
5859+
...obj,
5860+
});
5861+
56355862
/**
56365863
* @internal
56375864
*/
@@ -5905,6 +6132,20 @@ export const ExecutionDetailsFilterSensitiveLog = (obj: ExecutionDetails): any =
59056132
...obj,
59066133
});
59076134

6135+
/**
6136+
* @internal
6137+
*/
6138+
export const RegistrationOutputFilterSensitiveLog = (obj: RegistrationOutput): any => ({
6139+
...obj,
6140+
});
6141+
6142+
/**
6143+
* @internal
6144+
*/
6145+
export const MetadataCatalogDetailFilterSensitiveLog = (obj: MetadataCatalogDetail): any => ({
6146+
...obj,
6147+
});
6148+
59086149
/**
59096150
* @internal
59106151
*/

0 commit comments

Comments
 (0)