flows
Creates, updates, deletes or gets a flow resource or lists flows in a region
Overview
| Name | flows |
| Type | Resource |
| Description | Resource schema for AWS::AppFlow::Flow. |
| Id | awscc.appflow.flows |
Fields
- get (all properties)
- list (identifiers only)
| Name | Datatype | Description |
|---|---|---|
flow_arn | string | ARN identifier of the flow. |
flow_name | string | Name of the flow. |
description | string | Description of the flow. |
kms_arn | string | The ARN of the AWS Key Management Service (AWS KMS) key that's used to encrypt your function's environment variables. If it's not provided, AWS Lambda uses a default service key. |
trigger_config | object | Trigger settings of the flow. |
flow_status | string | Flow activation status for Scheduled- and Event-triggered flows |
source_flow_config | object | Configurations of Source connector of the flow. |
destination_flow_config_list | array | List of Destination connectors of the flow. |
tasks | array | List of tasks for the flow. |
tags | array | List of Tags. |
metadata_catalog_config | object | Configurations of metadata catalog of the flow. |
region | string | AWS region. |
| Name | Datatype | Description |
|---|---|---|
flow_name | string | Name of the flow. |
region | string | AWS region. |
For more information, see AWS::AppFlow::Flow.
Methods
| Name | Resource | Accessible by | Required Params |
|---|---|---|---|
create_resource | flows | INSERT | FlowName, Tasks, SourceFlowConfig, DestinationFlowConfigList, TriggerConfig, region |
delete_resource | flows | DELETE | Identifier, region |
update_resource | flows | UPDATE | Identifier, PatchDocument, region |
list_resources | flows_list_only | SELECT | region |
get_resource | flows | SELECT | Identifier, region |
SELECT examples
- get (all properties)
- list (identifiers only)
Gets all properties from an individual flow.
SELECT
region,
flow_arn,
flow_name,
description,
kms_arn,
trigger_config,
flow_status,
source_flow_config,
destination_flow_config_list,
tasks,
tags,
metadata_catalog_config
FROM awscc.appflow.flows
WHERE
region = 'us-east-1' AND
Identifier = '{{ flow_name }}';
Lists all flows in a region.
SELECT
region,
flow_name
FROM awscc.appflow.flows_list_only
WHERE
region = 'us-east-1';
INSERT example
Use the following StackQL query and manifest file to create a new flow resource, using stack-deploy.
- Required Properties
- All Properties
- Manifest
/*+ create */
INSERT INTO awscc.appflow.flows (
FlowName,
TriggerConfig,
SourceFlowConfig,
DestinationFlowConfigList,
Tasks,
region
)
SELECT
'{{ flow_name }}',
'{{ trigger_config }}',
'{{ source_flow_config }}',
'{{ destination_flow_config_list }}',
'{{ tasks }}',
'{{ region }}';
/*+ create */
INSERT INTO awscc.appflow.flows (
FlowName,
Description,
KMSArn,
TriggerConfig,
FlowStatus,
SourceFlowConfig,
DestinationFlowConfigList,
Tasks,
Tags,
MetadataCatalogConfig,
region
)
SELECT
'{{ flow_name }}',
'{{ description }}',
'{{ kms_arn }}',
'{{ trigger_config }}',
'{{ flow_status }}',
'{{ source_flow_config }}',
'{{ destination_flow_config_list }}',
'{{ tasks }}',
'{{ tags }}',
'{{ metadata_catalog_config }}',
'{{ region }}';
version: 1
name: stack name
description: stack description
providers:
- aws
globals:
- name: region
value: '{{ vars.AWS_REGION }}'
resources:
- name: flow
props:
- name: flow_name
value: '{{ flow_name }}'
- name: description
value: '{{ description }}'
- name: kms_arn
value: '{{ kms_arn }}'
- name: trigger_config
value:
trigger_type: '{{ trigger_type }}'
trigger_properties:
schedule_expression: '{{ schedule_expression }}'
data_pull_mode: '{{ data_pull_mode }}'
schedule_start_time: null
schedule_end_time: null
first_execution_from: null
time_zone: '{{ time_zone }}'
schedule_offset: null
flow_error_deactivation_threshold: '{{ flow_error_deactivation_threshold }}'
- name: flow_status
value: '{{ flow_status }}'
- name: source_flow_config
value:
connector_type: '{{ connector_type }}'
api_version: '{{ api_version }}'
connector_profile_name: '{{ connector_profile_name }}'
source_connector_properties:
amplitude:
object: '{{ object }}'
datadog:
object: null
dynatrace:
object: null
google_analytics:
object: null
infor_nexus:
object: null
marketo:
object: null
s3:
bucket_name: '{{ bucket_name }}'
bucket_prefix: '{{ bucket_prefix }}'
s3_input_format_config:
s3_input_file_type: '{{ s3_input_file_type }}'
s_ap_odata:
object_path: null
parallelism_config:
max_parallelism: '{{ max_parallelism }}'
pagination_config:
max_page_size: '{{ max_page_size }}'
salesforce:
object: null
enable_dynamic_field_update: '{{ enable_dynamic_field_update }}'
include_deleted_records: '{{ include_deleted_records }}'
data_transfer_api: '{{ data_transfer_api }}'
pardot:
object: null
service_now:
object: null
singular:
object: null
slack:
object: null
trendmicro:
object: null
veeva:
object: null
document_type: '{{ document_type }}'
include_source_files: '{{ include_source_files }}'
include_renditions: '{{ include_renditions }}'
include_all_versions: '{{ include_all_versions }}'
zendesk:
object: null
custom_connector:
entity_name: '{{ entity_name }}'
custom_properties: {}
data_transfer_api:
name: '{{ name }}'
type: '{{ type }}'
incremental_pull_config:
datetime_type_field_name: '{{ datetime_type_field_name }}'
- name: destination_flow_config_list
value:
- connector_type: null
api_version: null
connector_profile_name: null
destination_connector_properties:
redshift:
object: null
intermediate_bucket_name: null
bucket_prefix: null
error_handling_config:
fail_on_first_error: '{{ fail_on_first_error }}'
bucket_prefix: null
bucket_name: null
s3:
bucket_name: null
bucket_prefix: null
s3_output_format_config:
file_type: '{{ file_type }}'
prefix_config:
prefix_type: '{{ prefix_type }}'
prefix_format: '{{ prefix_format }}'
path_prefix_hierarchy:
- '{{ path_prefix_hierarchy[0] }}'
aggregation_config:
aggregation_type: '{{ aggregation_type }}'
target_file_size: '{{ target_file_size }}'
preserve_source_data_typing: '{{ preserve_source_data_typing }}'
salesforce:
object: null
error_handling_config: null
id_field_names:
- '{{ id_field_names[0] }}'
write_operation_type: '{{ write_operation_type }}'
data_transfer_api: null
snowflake:
object: null
intermediate_bucket_name: null
bucket_prefix: null
error_handling_config: null
event_bridge:
object: null
error_handling_config: null
upsolver:
bucket_name: '{{ bucket_name }}'
bucket_prefix: null
s3_output_format_config:
file_type: null
prefix_config: null
aggregation_config: null
lookout_metrics:
object: null
marketo:
object: null
error_handling_config: null
zendesk:
object: null
error_handling_config: null
id_field_names:
- '{{ id_field_names[0] }}'
write_operation_type: null
custom_connector:
entity_name: null
error_handling_config: null
write_operation_type: null
id_field_names:
- '{{ id_field_names[0] }}'
custom_properties: null
s_ap_odata:
object_path: null
error_handling_config: null
success_response_handling_config:
bucket_prefix: null
bucket_name: null
id_field_names:
- '{{ id_field_names[0] }}'
write_operation_type: null
- name: tasks
value:
- source_fields:
- '{{ source_fields[0] }}'
connector_operator:
amplitude: '{{ amplitude }}'
datadog: '{{ datadog }}'
dynatrace: '{{ dynatrace }}'
google_analytics: '{{ google_analytics }}'
infor_nexus: '{{ infor_nexus }}'
marketo: '{{ marketo }}'
s3: '{{ s3 }}'
s_ap_odata: '{{ s_ap_odata }}'
salesforce: '{{ salesforce }}'
pardot: '{{ pardot }}'
service_now: '{{ service_now }}'
singular: '{{ singular }}'
slack: '{{ slack }}'
trendmicro: '{{ trendmicro }}'
veeva: '{{ veeva }}'
zendesk: '{{ zendesk }}'
custom_connector: '{{ custom_connector }}'
destination_field: '{{ destination_field }}'
task_type: '{{ task_type }}'
task_properties:
- key: '{{ key }}'
value: '{{ value }}'
- name: tags
value:
- key: '{{ key }}'
value: '{{ value }}'
- name: metadata_catalog_config
value:
glue_data_catalog:
role_arn: '{{ role_arn }}'
database_name: '{{ database_name }}'
table_prefix: '{{ table_prefix }}'
UPDATE example
Use the following StackQL query and manifest file to update a flow resource, using stack-deploy.
/*+ update */
UPDATE awscc.appflow.flows
SET PatchDocument = string('{{ {
"Description": description,
"TriggerConfig": trigger_config,
"FlowStatus": flow_status,
"SourceFlowConfig": source_flow_config,
"DestinationFlowConfigList": destination_flow_config_list,
"Tasks": tasks,
"Tags": tags,
"MetadataCatalogConfig": metadata_catalog_config
} | generate_patch_document }}')
WHERE
region = '{{ region }}' AND
Identifier = '{{ flow_name }}';
DELETE example
/*+ delete */
DELETE FROM awscc.appflow.flows
WHERE
Identifier = '{{ flow_name }}' AND
region = 'us-east-1';
Permissions
To operate on the flows resource, the following permissions are required:
- Create
- Read
- Update
- Delete
- List
appflow:CreateFlow,
appflow:StartFlow,
appflow:TagResource,
appflow:ListTagsForResource,
appflow:UseConnectorProfile,
iam:PassRole,
s3:ListAllMyBuckets,
s3:GetBucketLocation,
s3:GetBucketPolicy,
kms:ListGrants,
kms:ListKeys,
kms:DescribeKey,
kms:ListAliases,
kms:CreateGrant,
secretsmanager:CreateSecret,
secretsmanager:PutResourcePolicy
appflow:DescribeFlow,
appflow:ListTagsForResource
appflow:DescribeFlow,
appflow:UpdateFlow,
appflow:StartFlow,
appflow:StopFlow,
appflow:TagResource,
appflow:UntagResource,
appflow:ListTagsForResource,
appflow:UseConnectorProfile,
iam:PassRole,
s3:ListAllMyBuckets,
s3:GetBucketLocation,
s3:GetBucketPolicy,
kms:ListGrants,
secretsmanager:CreateSecret,
secretsmanager:PutResourcePolicy
appflow:DeleteFlow
appflow:ListFlows