Skip to content

update_function

update_function(
    api_id: String,
    name: ResourceName,
    function_id: ResourceName,
    data_source_name: ResourceName,
    *,
    config_overrides: Optional[AppSyncClientConfig] = None,
    description: Optional[String] = None,
    request_mapping_template: Optional[MappingTemplate] = None,
    response_mapping_template: Optional[MappingTemplate] = None,
    function_version: Optional[String] = None,
    sync_config: Optional[SyncConfig] = None,
    max_batch_size: Optional[MaxBatchSize] = None,
    runtime: Optional[AppSyncRuntime] = None,
    code: Optional[Code] = None,
) -> UpdateFunctionResponse

Updates a Function object.

Parameters:

  • api_id (String) –

    The GraphQL API ID.

  • name (ResourceName) –

    The Function name.

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

    The Function description.

  • function_id (ResourceName) –

    The function ID.

  • data_source_name (ResourceName) –

    The Function DataSource name.

  • request_mapping_template (Optional[MappingTemplate], default: None ) –

    The Function request mapping template. Functions support only the 2018-05-29 version of the request mapping template.

  • response_mapping_template (Optional[MappingTemplate], default: None ) –

    The Function request mapping template.

  • function_version (Optional[String], default: None ) –

    The version of the request mapping template. Currently, the supported value is 2018-05-29. Note that when using VTL and mapping templates, the functionVersion is required.

  • max_batch_size (Optional[MaxBatchSize], default: None ) –

    The maximum batching size for a resolver.

  • code (Optional[Code], default: None ) –

    The function code that contains the request and response functions. When code is used, the runtime is required. The runtime value must be APPSYNC_JS.

Raises:

  • BadRequestException –

    The request is not well formed. For example, a value is invalid or a required field is missing. Check the field values, and then try again.

  • ConcurrentModificationException –

    Another modification is in progress at this time and it must complete before you can make your change.

  • InternalFailureException –

    An internal AppSync error occurred. Try your request again.

  • NotFoundException –

    The resource specified in the request was not found. Check the resource, and then try again.

  • UnauthorizedException –

    You aren't authorized to perform this operation.

  • UnknownServiceError –

    The service returned an error code this client does not model.

Source code in docs_src/capo_appsync/_services/app_sync.py
def update_function(
    self,
    api_id: "capo_appsync.types.string.String",
    name: "capo_appsync.types.resource_name.ResourceName",
    function_id: "capo_appsync.types.resource_name.ResourceName",
    data_source_name: "capo_appsync.types.resource_name.ResourceName",
    *,
    config_overrides: Optional[AppSyncClientConfig] = None,
    description: Optional["capo_appsync.types.string.String"] = None,
    request_mapping_template: Optional[
        "capo_appsync.types.mapping_template.MappingTemplate"
    ] = None,
    response_mapping_template: Optional[
        "capo_appsync.types.mapping_template.MappingTemplate"
    ] = None,
    function_version: Optional["capo_appsync.types.string.String"] = None,
    sync_config: Optional["capo_appsync.types.sync_config.SyncConfig"] = None,
    max_batch_size: Optional[
        "capo_appsync.types.max_batch_size.MaxBatchSize"
    ] = None,
    runtime: Optional["capo_appsync.types.app_sync_runtime.AppSyncRuntime"] = None,
    code: Optional["capo_appsync.types.code.Code"] = None,
) -> "capo_appsync.types.update_function_response.UpdateFunctionResponse":
    """<p>Updates a <code>Function</code> object.</p>

    Args:
        api_id: <p>The GraphQL API ID.</p>
        name: <p>The <code>Function</code> name.</p>
        description: <p>The <code>Function</code> description.</p>
        function_id: <p>The function ID.</p>
        data_source_name: <p>The <code>Function</code> <code>DataSource</code> name.</p>
        request_mapping_template: <p>The <code>Function</code> request mapping template. Functions support only the 2018-05-29 version of the request mapping template.</p>
        response_mapping_template: <p>The <code>Function</code> request mapping template.</p>
        function_version: <p>The <code>version</code> of the request mapping template. Currently, the supported value is 2018-05-29. Note that when using VTL and mapping templates, the <code>functionVersion</code> is required.</p>
        max_batch_size: <p>The maximum batching size for a resolver.</p>
        code: <p>The <code>function</code> code that contains the request and response functions. When code is used, the <code>runtime</code> is required. The <code>runtime</code> value must be <code>APPSYNC_JS</code>.</p>

    Raises:
        capo_appsync.errors.bad_request_exception.BadRequestException: <p>The request is not well formed. For example, a value is invalid or a required field is missing. Check the field values, and then try again.</p>
        capo_appsync.errors.concurrent_modification_exception.ConcurrentModificationException: <p>Another modification is in progress at this time and it must complete before you can make your change.</p>
        capo_appsync.errors.internal_failure_exception.InternalFailureException: <p>An internal AppSync error occurred. Try your request again.</p>
        capo_appsync.errors.not_found_exception.NotFoundException: <p>The resource specified in the request was not found. Check the resource, and then try again.</p>
        capo_appsync.errors.unauthorized_exception.UnauthorizedException: <p>You aren't authorized to perform this operation.</p>
        capo_appsync.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_appsync.types.update_function_request.UpdateFunctionRequest]",
    ) -> OperationResponse[
        "capo_appsync.types.update_function_response.UpdateFunctionResponse"
    ]:
        import capo_appsync._operations.aws_deepdish_control_plane_service.update_function

        output, http_response = (
            capo_appsync._operations.aws_deepdish_control_plane_service.update_function.update_function(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("UpdateFunction")
    )
    input_: capo_appsync.types.update_function_request.UpdateFunctionRequest = {
        "api_id": api_id,
        "name": name,
        "function_id": function_id,
        "data_source_name": data_source_name,
    }
    if description is not None:
        input_["description"] = description
    if request_mapping_template is not None:
        input_["request_mapping_template"] = request_mapping_template
    if response_mapping_template is not None:
        input_["response_mapping_template"] = response_mapping_template
    if function_version is not None:
        input_["function_version"] = function_version
    if sync_config is not None:
        input_["sync_config"] = sync_config
    if max_batch_size is not None:
        input_["max_batch_size"] = max_batch_size
    if runtime is not None:
        input_["runtime"] = runtime
    if code is not None:
        input_["code"] = code

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