102 lines
3.5 KiB
TypeScript
102 lines
3.5 KiB
TypeScript
import type { 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 {};
|