HttpInvokeJsonPathProps Struct
Properties for calling an external HTTP endpoint with HttpInvoke using JSONPath.
Example
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import * as cdk from 'aws-cdk-lib';
import { aws_events as events } from 'aws-cdk-lib';
import { aws_stepfunctions as stepfunctions } from 'aws-cdk-lib';
import { aws_stepfunctions_tasks as stepfunctions_tasks } from 'aws-cdk-lib';
declare const assign: any;
declare const connection: events.Connection;
declare const resultSelector: any;
declare const taskInput: stepfunctions.TaskInput;
declare const taskRole: stepfunctions.TaskRole;
declare const timeout: stepfunctions.Timeout;
const httpInvokeJsonPathProps: stepfunctions_tasks.HttpInvokeJsonPathProps = {
apiEndpoint: taskInput,
apiRoot: 'apiRoot',
connection: connection,
method: taskInput,
// the properties below are optional
assign: {
assignKey: assign,
},
body: taskInput,
comment: 'comment',
credentials: {
role: taskRole,
},
headers: taskInput,
heartbeat: cdk.Duration.minutes(30),
heartbeatTimeout: timeout,
inputPath: 'inputPath',
integrationPattern: stepfunctions.IntegrationPattern.REQUEST_RESPONSE,
outputPath: 'outputPath',
queryLanguage: stepfunctions.QueryLanguage.JSON_PATH,
queryStringParameters: taskInput,
resultPath: 'resultPath',
resultSelector: {
resultSelectorKey: resultSelector,
},
stateName: 'stateName',
taskTimeout: timeout,
timeout: cdk.Duration.minutes(30),
urlEncodingFormat: stepfunctions_tasks.URLEncodingFormat.BRACKETS,
};
# The code below shows an example of how to instantiate this type.
# The values are placeholders you should change.
import aws_cdk as cdk
from aws_cdk import aws_events as events
from aws_cdk import aws_stepfunctions as stepfunctions
from aws_cdk import aws_stepfunctions_tasks as stepfunctions_tasks
# assign: Any
# connection: events.Connection
# result_selector: Any
# task_input: stepfunctions.TaskInput
# task_role: stepfunctions.TaskRole
# timeout: stepfunctions.Timeout
http_invoke_json_path_props = stepfunctions_tasks.HttpInvokeJsonPathProps(
api_endpoint=task_input,
api_root="apiRoot",
connection=connection,
method=task_input,
# the properties below are optional
assign={
"assign_key": assign
},
body=task_input,
comment="comment",
credentials=stepfunctions.Credentials(
role=task_role
),
headers=task_input,
heartbeat=cdk.Duration.minutes(30),
heartbeat_timeout=timeout,
input_path="inputPath",
integration_pattern=stepfunctions.IntegrationPattern.REQUEST_RESPONSE,
output_path="outputPath",
query_language=stepfunctions.QueryLanguage.JSON_PATH,
query_string_parameters=task_input,
result_path="resultPath",
result_selector={
"result_selector_key": result_selector
},
state_name="stateName",
task_timeout=timeout,
timeout=cdk.Duration.minutes(30),
url_encoding_format=stepfunctions_tasks.URLEncodingFormat.BRACKETS
)
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import software.amazon.awscdk.*;
import software.amazon.awscdk.services.events.*;
import software.amazon.awscdk.services.stepfunctions.*;
import software.amazon.awscdk.services.stepfunctions.tasks.*;
Object assign;
Connection connection;
Object resultSelector;
TaskInput taskInput;
TaskRole taskRole;
Timeout timeout;
HttpInvokeJsonPathProps httpInvokeJsonPathProps = HttpInvokeJsonPathProps.builder()
.apiEndpoint(taskInput)
.apiRoot("apiRoot")
.connection(connection)
.method(taskInput)
// the properties below are optional
.assign(Map.of(
"assignKey", assign))
.body(taskInput)
.comment("comment")
.credentials(Credentials.builder()
.role(taskRole)
.build())
.headers(taskInput)
.heartbeat(Duration.minutes(30))
.heartbeatTimeout(timeout)
.inputPath("inputPath")
.integrationPattern(IntegrationPattern.REQUEST_RESPONSE)
.outputPath("outputPath")
.queryLanguage(QueryLanguage.JSON_PATH)
.queryStringParameters(taskInput)
.resultPath("resultPath")
.resultSelector(Map.of(
"resultSelectorKey", resultSelector))
.stateName("stateName")
.taskTimeout(timeout)
.timeout(Duration.minutes(30))
.urlEncodingFormat(URLEncodingFormat.BRACKETS)
.build();
// Install: dotnet add package Amazon.CDK.Lib
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
using Amazon.CDK;
using Amazon.CDK.AWS.Events;
using Amazon.CDK.AWS.StepFunctions;
using Amazon.CDK.AWS.StepFunctions.Tasks;
var assign;
Connection connection;
var resultSelector;
TaskInput taskInput;
TaskRole taskRole;
Timeout timeout;
var httpInvokeJsonPathProps = new HttpInvokeJsonPathProps {
ApiEndpoint = taskInput,
ApiRoot = "apiRoot",
Connection = connection,
Method = taskInput,
// the properties below are optional
Assign = new Dictionary<string, object> {
{ "assignKey", assign }
},
Body = taskInput,
Comment = "comment",
Credentials = new Credentials {
Role = taskRole
},
Headers = taskInput,
Heartbeat = Duration.Minutes(30),
HeartbeatTimeout = timeout,
InputPath = "inputPath",
IntegrationPattern = IntegrationPattern.REQUEST_RESPONSE,
OutputPath = "outputPath",
QueryLanguage = QueryLanguage.JSON_PATH,
QueryStringParameters = taskInput,
ResultPath = "resultPath",
ResultSelector = new Dictionary<string, object> {
{ "resultSelectorKey", resultSelector }
},
StateName = "stateName",
TaskTimeout = timeout,
Timeout = Duration.Minutes(30),
UrlEncodingFormat = URLEncodingFormat.BRACKETS
};
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
var assign interface{}
var connection Connection
var resultSelector interface{}
var taskInput TaskInput
var taskRole TaskRole
var timeout Timeout
httpInvokeJsonPathProps := &HttpInvokeJsonPathProps{
ApiEndpoint: taskInput,
ApiRoot: jsii.String("apiRoot"),
Connection: connection,
Method: taskInput,
// the properties below are optional
Assign: map[string]interface{}{
"assignKey": assign,
},
Body: taskInput,
Comment: jsii.String("comment"),
Credentials: &Credentials{
Role: taskRole,
},
Headers: taskInput,
Heartbeat: cdk.Duration_Minutes(jsii.Number(30)),
HeartbeatTimeout: timeout,
InputPath: jsii.String("inputPath"),
IntegrationPattern: awscdk.Aws_stepfunctions.IntegrationPattern_REQUEST_RESPONSE,
OutputPath: jsii.String("outputPath"),
QueryLanguage: awscdk.*Aws_stepfunctions.QueryLanguage_JSON_PATH,
QueryStringParameters: taskInput,
ResultPath: jsii.String("resultPath"),
ResultSelector: map[string]interface{}{
"resultSelectorKey": resultSelector,
},
StateName: jsii.String("stateName"),
TaskTimeout: timeout,
Timeout: cdk.Duration_*Minutes(jsii.Number(30)),
UrlEncodingFormat: awscdk.Aws_stepfunctions_tasks.URLEncodingFormat_BRACKETS,
}
Properties
apiEndpointTaskInputapi_endpointTaskInputapiEndpointTaskInputApiEndpointTaskInputApiEndpointTaskInputrequired#example
sfn.TaskInput.fromText('path/to/resource')
example
'https://api.example.com'
assignoptional{ [key: string]: any }assignoptionaltyping.Mapping[str, Any]assignoptionalMap<String, Object>AssignoptionalIDictionary<string, object>Assignoptional*map[string]interface{}#Default: Not assign variables
Using workflow variables, you can store data in a step and retrieve that data in future steps.
bodyoptionalTaskInputbodyoptionalTaskInputbodyoptionalTaskInputBodyoptionalTaskInputBodyoptionalTaskInput#Default: No body is sent with the request.
commentoptionalstringcommentoptionalstrcommentoptionalStringCommentoptionalstringCommentoptional*string#Default: No comment
connectionIConnectionconnectionIConnectionconnectionIConnectionConnectionIConnectionConnectionIConnectionrequired#credentialsoptionalCredentialscredentialsoptionalCredentialscredentialsoptionalCredentialsCredentialsoptionalCredentialsCredentialsoptionalCredentials#Default: None (Task is executed using the State Machine's execution role)
This enables cross-account resource invocations.
headersoptionalTaskInputheadersoptionalTaskInputheadersoptionalTaskInputHeadersoptionalTaskInputHeadersoptionalTaskInput#Default: No additional headers are added to the request.
example
sfn.TaskInput.fromObject({ 'Content-Type': 'application/json' })
heartbeatoptionalDurationheartbeatoptionalDurationheartbeatoptionalDurationHeartbeatoptionalDurationHeartbeatoptionalDuration= Nonedeprecated#heartbeatTimeoutoptionalTimeoutheartbeat_timeoutoptionalTimeoutheartbeatTimeoutoptionalTimeoutHeartbeatTimeoutoptionalTimeoutHeartbeatTimeoutoptionalTimeout= None#[disable-awslint:duration-prop-type] is needed because all props interface in aws-stepfunctions-tasks extend this interface
inputPathoptionalstringinput_pathoptionalstrinputPathoptionalStringInputPathoptionalstringInputPathoptional*string= $#May also be the special value JsonPath.DISCARD, which will cause the effective input to be the empty object {}.
integrationPatternoptionalIntegrationPatternintegration_patternoptionalIntegrationPatternintegrationPatternoptionalIntegrationPatternIntegrationPatternoptionalIntegrationPatternIntegrationPatternoptionalIntegrationPattern#Default: IntegrationPattern.REQUEST_RESPONSE for most tasks. IntegrationPattern.RUN_JOB for the following exceptions: BatchSubmitJob, EmrAddStep, EmrCreateCluster, EmrTerminationCluster, and EmrContainersStartJobRun.
You can control these AWS services using service integration patterns.
Depending on the AWS Service, the Service Integration Pattern availability will vary.
example
sfn.TaskInput.fromText('GET')
outputPathoptionalstringoutput_pathoptionalstroutputPathoptionalStringOutputPathoptionalstringOutputPathoptional*string= $#May also be the special value JsonPath.DISCARD, which will cause the effective output to be the empty object {}.
queryLanguageoptionalQueryLanguagequery_languageoptionalQueryLanguagequeryLanguageoptionalQueryLanguageQueryLanguageoptionalQueryLanguageQueryLanguageoptionalQueryLanguage= JSONPath#If the state does not contain a queryLanguage field, then it will use the query language specified in the top-level queryLanguage field.
queryStringParametersoptionalTaskInputquery_string_parametersoptionalTaskInputqueryStringParametersoptionalTaskInputQueryStringParametersoptionalTaskInputQueryStringParametersoptionalTaskInput#Default: No query string parameters are sent in the request.
resultPathoptionalstringresult_pathoptionalstrresultPathoptionalStringResultPathoptionalstringResultPathoptional*string= $#May also be the special value JsonPath.DISCARD, which will cause the state's input to become its output.
resultSelectoroptional{ [key: string]: any }result_selectoroptionaltyping.Mapping[str, Any]resultSelectoroptionalMap<String, Object>ResultSelectoroptionalIDictionary<string, object>ResultSelectoroptional*map[string]interface{}= None#You can use ResultSelector to create a payload with values that are static or selected from the state's raw result.
stateNameoptionalstringstate_nameoptionalstrstateNameoptionalStringStateNameoptionalstringStateNameoptional*string#Default: The construct ID will be used as state name
taskTimeoutoptionalTimeouttask_timeoutoptionalTimeouttaskTimeoutoptionalTimeoutTaskTimeoutoptionalTimeoutTaskTimeoutoptionalTimeout= None#[disable-awslint:duration-prop-type] is needed because all props interface in aws-stepfunctions-tasks extend this interface
timeoutoptionalDurationtimeoutoptionalDurationtimeoutoptionalDurationTimeoutoptionalDurationTimeoutoptionalDuration= Nonedeprecated#urlEncodingFormatoptionalURLEncodingFormaturl_encoding_formatoptionalURLEncodingFormaturlEncodingFormatoptionalURLEncodingFormatUrlEncodingFormatoptionalURLEncodingFormatUrlEncodingFormatoptionalURLEncodingFormat= URLEncodingFormat.NONE#notes
URLEncodingFormat.NONE passes the JSON-serialized RequestBody field as the HTTP request body. Otherwise, the HTTP request body is the URL-encoded form data of the RequestBody field using the specified array encoding format, and the Content-Type header is set to application/x-www-form-urlencoded.