Interface HttpInvokeJsonataProps
- All Superinterfaces:
AssignableStateOptions,software.amazon.jsii.JsiiSerializable,JsonataCommonOptions,StateBaseProps,TaskStateBaseOptions,TaskStateJsonataBaseProps
- All Known Implementing Classes:
HttpInvokeJsonataProps.Jsii$Proxy
@Generated(value="jsii-pacmak/1.118.0 (build 02eec31)",
date="2025-11-10T13:40:16.311Z")
@Stability(Stable)
public interface HttpInvokeJsonataProps
extends software.amazon.jsii.JsiiSerializable, TaskStateJsonataBaseProps
Properties for calling an external HTTP endpoint with HttpInvoke using JSONata.
Example:
import software.amazon.awscdk.services.events.*;
Connection connection;
HttpInvoke getIssue = HttpInvoke.jsonata(this, "Get Issue", HttpInvokeJsonataProps.builder()
.connection(connection)
.apiRoot("{% 'https://' & $states.input.hostname %}")
.apiEndpoint(TaskInput.fromText("{% 'issues/' & $states.input.issue.id %}"))
.method(TaskInput.fromText("GET"))
// Parse the API call result to object and set to the variables
.assign(Map.of(
"hostname", "{% $states.input.hostname %}",
"issue", "{% $parse($states.result.ResponseBody) %}"))
.build());
HttpInvoke updateLabels = HttpInvoke.jsonata(this, "Update Issue Labels", HttpInvokeJsonataProps.builder()
.connection(connection)
.apiRoot("{% 'https://' & $states.input.hostname %}")
.apiEndpoint(TaskInput.fromText("{% 'issues/' & $states.input.issue.id & 'labels' %}"))
.method(TaskInput.fromText("POST"))
.body(TaskInput.fromObject(Map.of(
"labels", "{% [$type, $component] %}")))
.build());
Pass notMatchTitleTemplate = Pass.jsonata(this, "Not Match Title Template");
Chain definition = getIssue.next(Choice.jsonata(this, "Match Title Template?").when(Condition.jsonata("{% $contains($issue.title, /(feat)|(fix)|(chore)(w*):.*/) %}"), updateLabels, ChoiceTransitionOptions.builder()
.assign(Map.of(
"type", "{% $match($states.input.title, /(w*)((.*))/).groups[0] %}",
"component", "{% $match($states.input.title, /(w*)((.*))/).groups[1] %}"))
.build()).otherwise(notMatchTitleTemplate));
StateMachine.Builder.create(this, "StateMachine")
.definitionBody(DefinitionBody.fromChainable(definition))
.timeout(Duration.minutes(5))
.comment("automate issue labeling state machine")
.build();
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final classA builder forHttpInvokeJsonataPropsstatic final classAn implementation forHttpInvokeJsonataProps -
Method Summary
Modifier and TypeMethodDescriptionbuilder()The API endpoint to call, relative toapiRoot.Permissions are granted to call all resources under this path.default TaskInputgetBody()The body to send to the HTTP endpoint.The EventBridge Connection to use for authentication.default TaskInputThe headers to send to the HTTP endpoint.The HTTP method to use.default TaskInputThe query string parameters to send to the HTTP endpoint.default URLEncodingFormatDetermines whether to apply URL encoding to the request body, and which array encoding format to use.Methods inherited from interface software.amazon.awscdk.services.stepfunctions.AssignableStateOptions
getAssignMethods inherited from interface software.amazon.jsii.JsiiSerializable
$jsii$toJsonMethods inherited from interface software.amazon.awscdk.services.stepfunctions.JsonataCommonOptions
getOutputsMethods inherited from interface software.amazon.awscdk.services.stepfunctions.StateBaseProps
getComment, getQueryLanguage, getStateNameMethods inherited from interface software.amazon.awscdk.services.stepfunctions.TaskStateBaseOptions
getCredentials, getHeartbeat, getHeartbeatTimeout, getIntegrationPattern, getTaskTimeout, getTimeout
-
Method Details
-
getApiEndpoint
The API endpoint to call, relative toapiRoot.Example:
TaskInput.fromText("path/to/resource"); -
getApiRoot
Permissions are granted to call all resources under this path.Example:
"https://api.example.com";
-
getConnection
The EventBridge Connection to use for authentication. -
getMethod
The HTTP method to use.Example:
TaskInput.fromText("GET"); -
getBody
The body to send to the HTTP endpoint.Default: - No body is sent with the request.
-
getHeaders
The headers to send to the HTTP endpoint.Default: - No additional headers are added to the request.
Example:
TaskInput.fromObject(Map.of("Content-Type", "application/json")); -
getQueryStringParameters
The query string parameters to send to the HTTP endpoint.Default: - No query string parameters are sent in the request.
-
getUrlEncodingFormat
Determines whether to apply URL encoding to the request body, and which array encoding format to use.URLEncodingFormat.NONEpasses the JSON-serializedRequestBodyfield as the HTTP request body. Otherwise, the HTTP request body is the URL-encoded form data of theRequestBodyfield using the specified array encoding format, and theContent-Typeheader is set toapplication/x-www-form-urlencoded.Default: - URLEncodingFormat.NONE
-
builder
- Returns:
- a
HttpInvokeJsonataProps.BuilderofHttpInvokeJsonataProps
-