aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
102 lines (101 loc) • 3.56 kB
TypeScript
import { Construct } from 'constructs';
import * as iam from '../../../aws-iam';
import * as sfn from '../../../aws-stepfunctions';
interface CallAwsServiceOptions {
/**
* The AWS service to call.
*
* @see https://docs.aws.amazon.com/step-functions/latest/dg/supported-services-awssdk.html
*/
readonly service: string;
/**
* The API action to call.
*
* Use camelCase.
*/
readonly action: string;
/**
* Parameters for the API action call.
*
* Use PascalCase for the parameter names.
*
* @default - no parameters
*/
readonly parameters?: {
[key: string]: any;
};
/**
* The resources for the IAM statement that will be added to the state
* machine role's policy to allow the state machine to make the API call.
*
* By default the action for this IAM statement will be `service:action`.
*/
readonly iamResources: string[];
/**
* The action for the IAM statement that will be added to the state
* machine role's policy to allow the state machine to make the API call.
*
* Use in the case where the IAM action name does not match with the
* API service/action name, e.g. `s3:ListBuckets` requires `s3:ListAllMyBuckets`.
*
* @default - service:action
*/
readonly iamAction?: string;
/**
* Additional IAM statements that will be added to the state machine
* role's policy.
*
* Use in the case where the call requires more than a single statement to
* be executed, e.g. `rekognition:detectLabels` requires also S3 permissions
* to read the object on which it must act.
*
* @default - no additional statements are added
*/
readonly additionalIamStatements?: iam.PolicyStatement[];
}
/**
* Properties for calling an AWS service's API action using JSONPath from your
* state machine.
*
* @see https://docs.aws.amazon.com/step-functions/latest/dg/supported-services-awssdk.html
*/
export interface CallAwsServiceJsonPathProps extends sfn.TaskStateJsonPathBaseProps, CallAwsServiceOptions {
}
/**
* Properties for calling an AWS service's API action using JSONata from your
* state machine.
*
* @see https://docs.aws.amazon.com/step-functions/latest/dg/supported-services-awssdk.html
*/
export interface CallAwsServiceJsonataProps extends sfn.TaskStateJsonataBaseProps, CallAwsServiceOptions {
}
/**
* Properties for calling an AWS service's API action from your
* state machine.
*
* @see https://docs.aws.amazon.com/step-functions/latest/dg/supported-services-awssdk.html
*/
export interface CallAwsServiceProps extends sfn.TaskStateBaseProps, CallAwsServiceOptions {
}
/**
* A StepFunctions task to call an AWS service API
*/
export declare class CallAwsService extends sfn.TaskStateBase {
private readonly props;
/**
* A StepFunctions task using JSONPath to call an AWS service API
*/
static jsonPath(scope: Construct, id: string, props: CallAwsServiceJsonPathProps): CallAwsService;
/**
* A StepFunctions task using JSONata to call an AWS service API
*/
static jsonata(scope: Construct, id: string, props: CallAwsServiceJsonataProps): CallAwsService;
protected readonly taskMetrics?: sfn.TaskMetricsConfig;
protected readonly taskPolicies?: iam.PolicyStatement[];
constructor(scope: Construct, id: string, props: CallAwsServiceProps);
/**
* @internal
*/
protected _renderTask(topLevelQueryLanguage?: sfn.QueryLanguage): any;
}
export {};