Skip to content

update_flow

update_flow(
    flow_name: FlowName,
    trigger_config: TriggerConfig,
    source_flow_config: SourceFlowConfig,
    destination_flow_config_list: DestinationFlowConfigList,
    tasks: Tasks,
    *,
    config_overrides: Optional[AppflowClientConfig] = None,
    description: Optional[FlowDescription] = None,
    metadata_catalog_config: Optional[MetadataCatalogConfig] = None,
    client_token: Optional[ClientToken] = None,
) -> UpdateFlowResponse

Updates an existing flow.

Parameters:

  • flow_name (FlowName) –

    The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only.

  • description (Optional[FlowDescription], default: None ) –

    A description of the flow.

  • trigger_config (TriggerConfig) –

    The trigger settings that determine how and when the flow runs.

  • destination_flow_config_list (DestinationFlowConfigList) –

    The configuration that controls how Amazon AppFlow transfers data to the destination connector.

  • tasks (Tasks) –

    A list of tasks that Amazon AppFlow performs while transferring the data in the flow run.

  • metadata_catalog_config (Optional[MetadataCatalogConfig], default: None ) –

    Specifies the configuration that Amazon AppFlow uses when it catalogs the data that's transferred by the associated flow. When Amazon AppFlow catalogs the data from a flow, it stores metadata in a data catalog.

  • client_token (Optional[ClientToken], default: None ) –

    The clientToken parameter is an idempotency token. It ensures that your UpdateFlow request completes only once. You choose the value to pass. For example, if you don't receive a response from your request, you can safely retry the request with the same clientToken parameter value.

    If you omit a clientToken value, the Amazon Web Services SDK that you are using inserts a value for you. This way, the SDK can safely retry requests multiple times after a network error. You must provide your own value for other use cases.

    If you specify input parameters that differ from your first request, an error occurs. If you use a different value for clientToken, Amazon AppFlow considers it a new call to UpdateFlow. The token is active for 8 hours.

Raises:

Source code in docs_src/capo_appflow/_services/appflow.py
def update_flow(
    self,
    flow_name: "capo_appflow.types.flow_name.FlowName",
    trigger_config: "capo_appflow.types.trigger_config.TriggerConfig",
    source_flow_config: "capo_appflow.types.source_flow_config.SourceFlowConfig",
    destination_flow_config_list: "capo_appflow.types.destination_flow_config_list.DestinationFlowConfigList",
    tasks: "capo_appflow.types.tasks.Tasks",
    *,
    config_overrides: Optional[AppflowClientConfig] = None,
    description: Optional[
        "capo_appflow.types.flow_description.FlowDescription"
    ] = None,
    metadata_catalog_config: Optional[
        "capo_appflow.types.metadata_catalog_config.MetadataCatalogConfig"
    ] = None,
    client_token: Optional["capo_appflow.types.client_token.ClientToken"] = None,
) -> "capo_appflow.types.update_flow_response.UpdateFlowResponse":
    """<p> Updates an existing flow. </p>

    Args:
        flow_name: <p> The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only. </p>
        description: <p> A description of the flow. </p>
        trigger_config: <p> The trigger settings that determine how and when the flow runs. </p>
        destination_flow_config_list: <p> The configuration that controls how Amazon AppFlow transfers data to the destination connector. </p>
        tasks: <p> A list of tasks that Amazon AppFlow performs while transferring the data in the flow run. </p>
        metadata_catalog_config: <p>Specifies the configuration that Amazon AppFlow uses when it catalogs the data that's transferred by the associated flow. When Amazon AppFlow catalogs the data from a flow, it stores metadata in a data catalog.</p>
        client_token: <p>The <code>clientToken</code> parameter is an idempotency token. It ensures that your <code>UpdateFlow</code> request completes only once. You choose the value to pass. For example, if you don't receive a response from your request, you can safely retry the request with the same <code>clientToken</code> parameter value.</p> <p>If you omit a <code>clientToken</code> value, the Amazon Web Services SDK that you are using inserts a value for you. This way, the SDK can safely retry requests multiple times after a network error. You must provide your own value for other use cases.</p> <p>If you specify input parameters that differ from your first request, an error occurs. If you use a different value for <code>clientToken</code>, Amazon AppFlow considers it a new call to <code>UpdateFlow</code>. The token is active for 8 hours.</p>

    Raises:
        capo_appflow.errors.access_denied_exception.AccessDeniedException: <p>AppFlow/Requester has invalid or missing permissions.</p>
        capo_appflow.errors.conflict_exception.ConflictException: <p> There was a conflict when processing the request (for example, a flow with the given name already exists within the account. Check for conflicting resource names and try again. </p>
        capo_appflow.errors.connector_authentication_exception.ConnectorAuthenticationException: <p> An error occurred when authenticating with the connector endpoint. </p>
        capo_appflow.errors.connector_server_exception.ConnectorServerException: <p> An error occurred when retrieving data from the connector endpoint. </p>
        capo_appflow.errors.internal_server_exception.InternalServerException: <p> An internal service error occurred during the processing of your request. Try again later. </p>
        capo_appflow.errors.resource_not_found_exception.ResourceNotFoundException: <p> The resource specified in the request (such as the source or destination connector profile) is not found. </p>
        capo_appflow.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p> The request would cause a service quota (such as the number of flows) to be exceeded. </p>
        capo_appflow.errors.validation_exception.ValidationException: <p> The request has invalid or missing parameters. </p>
        capo_appflow.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_appflow.types.update_flow_request.UpdateFlowRequest]",
    ) -> OperationResponse[
        "capo_appflow.types.update_flow_response.UpdateFlowResponse"
    ]:
        import capo_appflow._operations.sandstone_configuration_service_lambda.update_flow

        output, http_response = (
            capo_appflow._operations.sandstone_configuration_service_lambda.update_flow.update_flow(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("UpdateFlow")
    )
    input_: capo_appflow.types.update_flow_request.UpdateFlowRequest = {
        "flow_name": flow_name,
        "trigger_config": trigger_config,
        "source_flow_config": source_flow_config,
        "destination_flow_config_list": destination_flow_config_list,
        "tasks": tasks,
    }
    if description is not None:
        input_["description"] = description
    if metadata_catalog_config is not None:
        input_["metadata_catalog_config"] = metadata_catalog_config
    if client_token is None:
        client_token = str(uuid.uuid4())
    input_["client_token"] = client_token

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output