Skip to content

update_application

update_application(
    application_name: ApplicationName,
    *,
    config_overrides: Optional[KinesisAnalyticsV2ClientConfig] = None,
    current_application_version_id: Optional[ApplicationVersionId] = None,
    application_configuration_update: Optional[ApplicationConfigurationUpdate] = None,
    service_execution_role_update: Optional[RoleARN] = None,
    run_configuration_update: Optional[RunConfigurationUpdate] = None,
    cloud_watch_logging_option_updates: Optional[CloudWatchLoggingOptionUpdates] = None,
    conditional_token: Optional[ConditionalToken] = None,
    runtime_environment_update: Optional[RuntimeEnvironment] = None,
) -> UpdateApplicationResponse

Updates an existing Managed Service for Apache Flink application. Using this operation, you can update application code, input configuration, and output configuration.

Managed Service for Apache Flink updates the ApplicationVersionId each time you update your application.

Parameters:

  • application_name (ApplicationName) –

    The name of the application to update.

  • current_application_version_id (Optional[ApplicationVersionId], default: None ) –

    The current application version ID. You must provide the CurrentApplicationVersionId or the ConditionalToken.You can retrieve the application version ID using DescribeApplication. For better concurrency support, use the ConditionalToken parameter instead of CurrentApplicationVersionId.

  • application_configuration_update (Optional[ApplicationConfigurationUpdate], default: None ) –

    Describes application configuration updates.

  • service_execution_role_update (Optional[RoleARN], default: None ) –

    Describes updates to the service execution role.

  • run_configuration_update (Optional[RunConfigurationUpdate], default: None ) –

    Describes updates to the application's starting parameters.

  • cloud_watch_logging_option_updates (Optional[CloudWatchLoggingOptionUpdates], default: None ) –

    Describes application Amazon CloudWatch logging option updates. You can only update existing CloudWatch logging options with this action. To add a new CloudWatch logging option, use AddApplicationCloudWatchLoggingOption.

  • conditional_token (Optional[ConditionalToken], default: None ) –

    A value you use to implement strong concurrency for application updates. You must provide the CurrentApplicationVersionId or the ConditionalToken. You get the application's current ConditionalToken using DescribeApplication. For better concurrency support, use the ConditionalToken parameter instead of CurrentApplicationVersionId.

  • runtime_environment_update (Optional[RuntimeEnvironment], default: None ) –

    Updates the Managed Service for Apache Flink runtime environment used to run your code. To avoid issues you must:

    • Ensure your new jar and dependencies are compatible with the new runtime selected.

    • Ensure your new code's state is compatible with the snapshot from which your application will start

Raises:

Source code in docs_src/capo_kinesis_analytics_v2/_services/kinesis_analytics_v2.py
def update_application(
    self,
    application_name: "capo_kinesis_analytics_v2.types.application_name.ApplicationName",
    *,
    config_overrides: Optional[KinesisAnalyticsV2ClientConfig] = None,
    current_application_version_id: Optional[
        "capo_kinesis_analytics_v2.types.application_version_id.ApplicationVersionId"
    ] = None,
    application_configuration_update: Optional[
        "capo_kinesis_analytics_v2.types.application_configuration_update.ApplicationConfigurationUpdate"
    ] = None,
    service_execution_role_update: Optional[
        "capo_kinesis_analytics_v2.types.role_arn.RoleARN"
    ] = None,
    run_configuration_update: Optional[
        "capo_kinesis_analytics_v2.types.run_configuration_update.RunConfigurationUpdate"
    ] = None,
    cloud_watch_logging_option_updates: Optional[
        "capo_kinesis_analytics_v2.types.cloud_watch_logging_option_updates.CloudWatchLoggingOptionUpdates"
    ] = None,
    conditional_token: Optional[
        "capo_kinesis_analytics_v2.types.conditional_token.ConditionalToken"
    ] = None,
    runtime_environment_update: Optional[
        "capo_kinesis_analytics_v2.types.runtime_environment.RuntimeEnvironment"
    ] = None,
) -> "capo_kinesis_analytics_v2.types.update_application_response.UpdateApplicationResponse":
    """<p>Updates an existing Managed Service for Apache Flink application. Using this operation, you can update application code, input configuration, and output configuration. </p> <p>Managed Service for Apache Flink updates the <code>ApplicationVersionId</code> each time you update your application. </p>

    Args:
        application_name: <p>The name of the application to update.</p>
        current_application_version_id: <p>The current application version ID. You must provide the <code>CurrentApplicationVersionId</code> or the <code>ConditionalToken</code>.You can retrieve the application version ID using <a>DescribeApplication</a>. For better concurrency support, use the <code>ConditionalToken</code> parameter instead of <code>CurrentApplicationVersionId</code>.</p>
        application_configuration_update: <p>Describes application configuration updates.</p>
        service_execution_role_update: <p>Describes updates to the service execution role.</p>
        run_configuration_update: <p>Describes updates to the application's starting parameters.</p>
        cloud_watch_logging_option_updates: <p>Describes application Amazon CloudWatch logging option updates. You can only update existing CloudWatch logging options with this action. To add a new CloudWatch logging option, use <a>AddApplicationCloudWatchLoggingOption</a>.</p>
        conditional_token: <p>A value you use to implement strong concurrency for application updates. You must provide the <code>CurrentApplicationVersionId</code> or the <code>ConditionalToken</code>. You get the application's current <code>ConditionalToken</code> using <a>DescribeApplication</a>. For better concurrency support, use the <code>ConditionalToken</code> parameter instead of <code>CurrentApplicationVersionId</code>.</p>
        runtime_environment_update: <p>Updates the Managed Service for Apache Flink runtime environment used to run your code. To avoid issues you must:</p> <ul> <li> <p>Ensure your new jar and dependencies are compatible with the new runtime selected.</p> </li> <li> <p>Ensure your new code's state is compatible with the snapshot from which your application will start</p> </li> </ul>

    Raises:
        capo_kinesis_analytics_v2.errors.code_validation_exception.CodeValidationException: <p>The user-provided application code (query) is not valid. This can be a simple syntax error.</p>
        capo_kinesis_analytics_v2.errors.concurrent_modification_exception.ConcurrentModificationException: <p>Exception thrown as a result of concurrent modifications to an application. This error can be the result of attempting to modify an application without using the current application ID.</p>
        capo_kinesis_analytics_v2.errors.invalid_application_configuration_exception.InvalidApplicationConfigurationException: <p>The user-provided application configuration is not valid.</p>
        capo_kinesis_analytics_v2.errors.invalid_argument_exception.InvalidArgumentException: <p>The specified input parameter value is not valid.</p>
        capo_kinesis_analytics_v2.errors.invalid_request_exception.InvalidRequestException: <p>The request JSON is not valid for the operation.</p>
        capo_kinesis_analytics_v2.errors.limit_exceeded_exception.LimitExceededException: <p>The number of allowed resources has been exceeded.</p>
        capo_kinesis_analytics_v2.errors.resource_in_use_exception.ResourceInUseException: <p>The application is not available for this operation.</p>
        capo_kinesis_analytics_v2.errors.resource_not_found_exception.ResourceNotFoundException: <p>Specified application can't be found.</p>
        capo_kinesis_analytics_v2.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_kinesis_analytics_v2.types.update_application_request.UpdateApplicationRequest]",
    ) -> OperationResponse[
        "capo_kinesis_analytics_v2.types.update_application_response.UpdateApplicationResponse"
    ]:
        import capo_kinesis_analytics_v2._operations.kinesis_analytics_20180523.update_application

        output, http_response = (
            capo_kinesis_analytics_v2._operations.kinesis_analytics_20180523.update_application.update_application(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("UpdateApplication")
    )
    input_: capo_kinesis_analytics_v2.types.update_application_request.UpdateApplicationRequest = {
        "application_name": application_name
    }
    if current_application_version_id is not None:
        input_["current_application_version_id"] = current_application_version_id
    if application_configuration_update is not None:
        input_["application_configuration_update"] = (
            application_configuration_update
        )
    if service_execution_role_update is not None:
        input_["service_execution_role_update"] = service_execution_role_update
    if run_configuration_update is not None:
        input_["run_configuration_update"] = run_configuration_update
    if cloud_watch_logging_option_updates is not None:
        input_["cloud_watch_logging_option_updates"] = (
            cloud_watch_logging_option_updates
        )
    if conditional_token is not None:
        input_["conditional_token"] = conditional_token
    if runtime_environment_update is not None:
        input_["runtime_environment_update"] = runtime_environment_update

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