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 = '{{ region }}' AND
Identifier = '{{ flow_name }}';
Lists all flows in a region.
SELECT
region,
flow_name
FROM awscc.appflow.flows_list_only
WHERE
region = '{{ region }}';
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 }}'
RETURNING
ErrorCode,
EventTime,
Identifier,
Operation,
OperationStatus,
RequestToken,
ResourceModel,
RetryAfter,
StatusMessage,
TypeName
;
/*+ 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 }}'
RETURNING
ErrorCode,
EventTime,
Identifier,
Operation,
OperationStatus,
RequestToken,
ResourceModel,
RetryAfter,
StatusMessage,
TypeName
;
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 }}'
RETURNING
ErrorCode,
EventTime,
Identifier,
Operation,
OperationStatus,
RequestToken,
ResourceModel,
RetryAfter,
StatusMessage,
TypeName
;
DELETE example
/*+ delete */
DELETE FROM awscc.appflow.flows
WHERE
Identifier = '{{ flow_name }}' AND
region = '{{ region }}'
RETURNING
ErrorCode,
EventTime,
Identifier,
Operation,
OperationStatus,
RequestToken,
ResourceModel,
RetryAfter,
StatusMessage,
TypeName
;
Additional Parameters
Mutable resources in the Cloud Control provider support additional optional parameters which can be supplied with INSERT, UPDATE, or DELETE operations. These include:
| Parameter | Description |
|---|---|
ClientToken | A unique identifier to ensure the idempotency of the resource request.This allows the provider to accurately distinguish between retries and new requests.A client token is valid for 36 hours once used. After that, a resource request with the same client token is treated as a new request. If you do not specify a client token, one is generated for inclusion in the request. |
RoleArn | The ARN of the IAM role used to perform this resource operation.The role specified must have the permissions required for this operation.If you do not specify a role, a temporary session is created using your AWS user credentials. |
TypeVersionId | For private resource types, the type version to use in this resource operation.If you do not specify a resource version, the default version is used. |
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