iam-floyd
Version:
AWS IAM policy statement generator with fluent interface
1,002 lines • 96.5 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Swf = void 0;
const shared_1 = require("../../shared");
/**
* Statement provider for service [swf](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsimpleworkflowservice.html).
*
* @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement
*/
class Swf extends shared_1.PolicyStatement {
/**
* Statement provider for service [swf](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsimpleworkflowservice.html).
*
* @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement
*/
constructor(sid) {
super(sid);
this.servicePrefix = 'swf';
this.accessLevelList = {
Write: [
'CancelTimer',
'CancelWorkflowExecution',
'CompleteWorkflowExecution',
'ContinueAsNewWorkflowExecution',
'DeleteActivityType',
'DeleteWorkflowType',
'DeprecateActivityType',
'DeprecateDomain',
'DeprecateWorkflowType',
'FailWorkflowExecution',
'PollForActivityTask',
'PollForDecisionTask',
'RecordActivityTaskHeartbeat',
'RecordMarker',
'RegisterActivityType',
'RegisterDomain',
'RegisterWorkflowType',
'RequestCancelActivityTask',
'RequestCancelExternalWorkflowExecution',
'RequestCancelWorkflowExecution',
'RespondActivityTaskCanceled',
'RespondActivityTaskCompleted',
'RespondActivityTaskFailed',
'RespondDecisionTaskCompleted',
'ScheduleActivityTask',
'SignalExternalWorkflowExecution',
'SignalWorkflowExecution',
'StartChildWorkflowExecution',
'StartTimer',
'StartWorkflowExecution',
'TerminateWorkflowExecution',
'UndeprecateActivityType',
'UndeprecateDomain',
'UndeprecateWorkflowType'
],
Read: [
'CountClosedWorkflowExecutions',
'CountOpenWorkflowExecutions',
'CountPendingActivityTasks',
'CountPendingDecisionTasks',
'DescribeActivityType',
'DescribeDomain',
'DescribeWorkflowExecution',
'DescribeWorkflowType',
'GetWorkflowExecutionHistory'
],
List: [
'ListActivityTypes',
'ListClosedWorkflowExecutions',
'ListDomains',
'ListOpenWorkflowExecutions',
'ListTagsForResource',
'ListWorkflowTypes'
],
Tagging: [
'TagResource',
'UntagResource'
]
};
}
/**
* Grants permission to cancel a previously started timer and record a TimerCanceled event in the history
*
* Access Level: Write
*/
toCancelTimer() {
return this.to('CancelTimer');
}
/**
* Grants permission to close the workflow execution and record a WorkflowExecutionCanceled event in the history
*
* Access Level: Write
*/
toCancelWorkflowExecution() {
return this.to('CancelWorkflowExecution');
}
/**
* Grants permission to close the workflow execution and record a WorkflowExecutionCompleted event in the history
*
* Access Level: Write
*/
toCompleteWorkflowExecution() {
return this.to('CompleteWorkflowExecution');
}
/**
* Grants permission to close the workflow execution and start a new workflow execution of the same type using the same workflow ID and a unique run Id
*
* Access Level: Write
*/
toContinueAsNewWorkflowExecution() {
return this.to('ContinueAsNewWorkflowExecution');
}
/**
* Grants permission to return the number of closed workflow executions within the given domain that meet the specified filtering criteria
*
* Access Level: Read
*
* Possible conditions:
* - .ifTagFilterTag()
* - .ifTypeFilterName()
* - .ifTypeFilterVersion()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_CountClosedWorkflowExecutions.html
*/
toCountClosedWorkflowExecutions() {
return this.to('CountClosedWorkflowExecutions');
}
/**
* Grants permission to return the number of open workflow executions within the given domain that meet the specified filtering criteria
*
* Access Level: Read
*
* Possible conditions:
* - .ifTagFilterTag()
* - .ifTypeFilterName()
* - .ifTypeFilterVersion()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_CountOpenWorkflowExecutions.html
*/
toCountOpenWorkflowExecutions() {
return this.to('CountOpenWorkflowExecutions');
}
/**
* Grants permission to return the estimated number of activity tasks in the specified task list
*
* Access Level: Read
*
* Possible conditions:
* - .ifTaskListName()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_CountPendingActivityTasks.html
*/
toCountPendingActivityTasks() {
return this.to('CountPendingActivityTasks');
}
/**
* Grants permission to return the estimated number of decision tasks in the specified task list
*
* Access Level: Read
*
* Possible conditions:
* - .ifTaskListName()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_CountPendingDecisionTasks.html
*/
toCountPendingDecisionTasks() {
return this.to('CountPendingDecisionTasks');
}
/**
* Grants permission to delete the specified activity type
*
* Access Level: Write
*
* Possible conditions:
* - .ifActivityTypeName()
* - .ifActivityTypeVersion()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DeleteActivityType.html
*/
toDeleteActivityType() {
return this.to('DeleteActivityType');
}
/**
* Grants permission to delete the specified workflow type
*
* Access Level: Write
*
* Possible conditions:
* - .ifWorkflowTypeName()
* - .ifWorkflowTypeVersion()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DeleteWorkflowType.html
*/
toDeleteWorkflowType() {
return this.to('DeleteWorkflowType');
}
/**
* Grants permission to deprecate the specified activity type
*
* Access Level: Write
*
* Possible conditions:
* - .ifActivityTypeName()
* - .ifActivityTypeVersion()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DeprecateActivityType.html
*/
toDeprecateActivityType() {
return this.to('DeprecateActivityType');
}
/**
* Grants permission to deprecate the specified domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DeprecateDomain.html
*/
toDeprecateDomain() {
return this.to('DeprecateDomain');
}
/**
* Grants permission to deprecate the specified workflow type
*
* Access Level: Write
*
* Possible conditions:
* - .ifWorkflowTypeName()
* - .ifWorkflowTypeVersion()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DeprecateWorkflowType.html
*/
toDeprecateWorkflowType() {
return this.to('DeprecateWorkflowType');
}
/**
* Grants permission to return information about the specified activity type
*
* Access Level: Read
*
* Possible conditions:
* - .ifActivityTypeName()
* - .ifActivityTypeVersion()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DescribeActivityType.html
*/
toDescribeActivityType() {
return this.to('DescribeActivityType');
}
/**
* Grants permission to return information about the specified domain, including its description and status
*
* Access Level: Read
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DescribeDomain.html
*/
toDescribeDomain() {
return this.to('DescribeDomain');
}
/**
* Grants permission to return information about the specified workflow execution including its type and some statistics
*
* Access Level: Read
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DescribeWorkflowExecution.html
*/
toDescribeWorkflowExecution() {
return this.to('DescribeWorkflowExecution');
}
/**
* Grants permission to return information about the specified workflow type
*
* Access Level: Read
*
* Possible conditions:
* - .ifWorkflowTypeName()
* - .ifWorkflowTypeVersion()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DescribeWorkflowType.html
*/
toDescribeWorkflowType() {
return this.to('DescribeWorkflowType');
}
/**
* Grants permission to close the workflow execution and record a WorkflowExecutionFailed event in the history
*
* Access Level: Write
*/
toFailWorkflowExecution() {
return this.to('FailWorkflowExecution');
}
/**
* Grants permission to return the history of the specified workflow execution
*
* Access Level: Read
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_GetWorkflowExecutionHistory.html
*/
toGetWorkflowExecutionHistory() {
return this.to('GetWorkflowExecutionHistory');
}
/**
* Grants permission to return information about all activities registered in the specified domain that match the specified name and registration status
*
* Access Level: List
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ListActivityTypes.html
*/
toListActivityTypes() {
return this.to('ListActivityTypes');
}
/**
* Grants permission to return a list of closed workflow executions in the specified domain that meet the filtering criteria
*
* Access Level: List
*
* Possible conditions:
* - .ifTagFilterTag()
* - .ifTypeFilterName()
* - .ifTypeFilterVersion()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ListClosedWorkflowExecutions.html
*/
toListClosedWorkflowExecutions() {
return this.to('ListClosedWorkflowExecutions');
}
/**
* Grants permission to return the list of domains registered in the account
*
* Access Level: List
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ListDomains.html
*/
toListDomains() {
return this.to('ListDomains');
}
/**
* Grants permission to return a list of open workflow executions in the specified domain that meet the filtering criteria
*
* Access Level: List
*
* Possible conditions:
* - .ifTagFilterTag()
* - .ifTypeFilterName()
* - .ifTypeFilterVersion()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ListOpenWorkflowExecutions.html
*/
toListOpenWorkflowExecutions() {
return this.to('ListOpenWorkflowExecutions');
}
/**
* Grants permission to list tags for an AWS SWF resource
*
* Access Level: List
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ListTagsForResource.html
*/
toListTagsForResource() {
return this.to('ListTagsForResource');
}
/**
* Grants permission to return information about workflow types in the specified domain
*
* Access Level: List
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ListWorkflowTypes.html
*/
toListWorkflowTypes() {
return this.to('ListWorkflowTypes');
}
/**
* Grants permission to workers to get an ActivityTask from the specified activity taskList
*
* Access Level: Write
*
* Possible conditions:
* - .ifTaskListName()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_PollForActivityTask.html
*/
toPollForActivityTask() {
return this.to('PollForActivityTask');
}
/**
* Grants permission to deciders to get a DecisionTask from the specified decision taskList
*
* Access Level: Write
*
* Possible conditions:
* - .ifTaskListName()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_PollForDecisionTask.html
*/
toPollForDecisionTask() {
return this.to('PollForDecisionTask');
}
/**
* Grants permission to workers to report to the service that the ActivityTask represented by the specified taskToken is still making progress
*
* Access Level: Write
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RecordActivityTaskHeartbeat.html
*/
toRecordActivityTaskHeartbeat() {
return this.to('RecordActivityTaskHeartbeat');
}
/**
* Grants permission to record a MarkerRecorded event in the history
*
* Access Level: Write
*/
toRecordMarker() {
return this.to('RecordMarker');
}
/**
* Grants permission to register a new activity type along with its configuration settings in the specified domain
*
* Access Level: Write
*
* Possible conditions:
* - .ifDefaultTaskListName()
* - .ifName()
* - .ifVersion()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RegisterActivityType.html
*/
toRegisterActivityType() {
return this.to('RegisterActivityType');
}
/**
* Grants permission to register a new domain
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsTagKeys()
* - .ifAwsRequestTag()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RegisterDomain.html
*/
toRegisterDomain() {
return this.to('RegisterDomain');
}
/**
* Grants permission to register a new workflow type and its configuration settings in the specified domain
*
* Access Level: Write
*
* Possible conditions:
* - .ifDefaultTaskListName()
* - .ifName()
* - .ifVersion()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RegisterWorkflowType.html
*/
toRegisterWorkflowType() {
return this.to('RegisterWorkflowType');
}
/**
* Grants permission to attempt to cancel a previously scheduled activity task
*
* Access Level: Write
*/
toRequestCancelActivityTask() {
return this.to('RequestCancelActivityTask');
}
/**
* Grants permission to request that a request be made to cancel the specified external workflow execution
*
* Access Level: Write
*/
toRequestCancelExternalWorkflowExecution() {
return this.to('RequestCancelExternalWorkflowExecution');
}
/**
* Grants permission to record a WorkflowExecutionCancelRequested event in the currently running workflow execution identified by the given domain, workflowId, and runId
*
* Access Level: Write
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RequestCancelWorkflowExecution.html
*/
toRequestCancelWorkflowExecution() {
return this.to('RequestCancelWorkflowExecution');
}
/**
* Grants permission to workers to tell the service that the ActivityTask identified by the taskToken was successfully canceled
*
* Access Level: Write
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskCanceled.html
*/
toRespondActivityTaskCanceled() {
return this.to('RespondActivityTaskCanceled');
}
/**
* Grants permission to workers to tell the service that the ActivityTask identified by the taskToken completed successfully with a result (if provided)
*
* Access Level: Write
*
* Possible conditions:
* - .ifActivityTypeName()
* - .ifActivityTypeVersion()
* - .ifTagListMember0()
* - .ifTagListMember1()
* - .ifTagListMember2()
* - .ifTagListMember3()
* - .ifTagListMember4()
* - .ifTaskListName()
* - .ifWorkflowTypeName()
* - .ifWorkflowTypeVersion()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskCompleted.html
*/
toRespondActivityTaskCompleted() {
return this.to('RespondActivityTaskCompleted');
}
/**
* Grants permission to workers to tell the service that the ActivityTask identified by the taskToken has failed with reason (if specified)
*
* Access Level: Write
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskFailed.html
*/
toRespondActivityTaskFailed() {
return this.to('RespondActivityTaskFailed');
}
/**
* Grants permission to deciders to tell the service that the DecisionTask identified by the taskToken has successfully completed
*
* Access Level: Write
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondDecisionTaskCompleted.html
*/
toRespondDecisionTaskCompleted() {
return this.to('RespondDecisionTaskCompleted');
}
/**
* Grants permission to schedule an activity task
*
* Access Level: Write
*/
toScheduleActivityTask() {
return this.to('ScheduleActivityTask');
}
/**
* Grants permission to request a signal to be delivered to the specified external workflow execution and records
*
* Access Level: Write
*/
toSignalExternalWorkflowExecution() {
return this.to('SignalExternalWorkflowExecution');
}
/**
* Grants permission to record a WorkflowExecutionSignaled event in the workflow execution history and create a decision task for the workflow execution identified by the given domain, workflowId and runId
*
* Access Level: Write
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_SignalWorkflowExecution.html
*/
toSignalWorkflowExecution() {
return this.to('SignalWorkflowExecution');
}
/**
* Grants permission to request that a child workflow execution be started
*
* Access Level: Write
*/
toStartChildWorkflowExecution() {
return this.to('StartChildWorkflowExecution');
}
/**
* Grants permission to start a timer for a workflow execution
*
* Access Level: Write
*/
toStartTimer() {
return this.to('StartTimer');
}
/**
* Grants permission to start an execution of the workflow type in the specified domain using the provided workflowId and input data
*
* Access Level: Write
*
* Possible conditions:
* - .ifTagListMember0()
* - .ifTagListMember1()
* - .ifTagListMember2()
* - .ifTagListMember3()
* - .ifTagListMember4()
* - .ifTaskListName()
* - .ifWorkflowTypeName()
* - .ifWorkflowTypeVersion()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_StartWorkflowExecution.html
*/
toStartWorkflowExecution() {
return this.to('StartWorkflowExecution');
}
/**
* Grants permission to tag an AWS SWF resource
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsTagKeys()
* - .ifAwsRequestTag()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_TagResource.html
*/
toTagResource() {
return this.to('TagResource');
}
/**
* Grants permission to record a WorkflowExecutionTerminated event and force closure of the workflow execution identified by the given domain, runId, and workflowId
*
* Access Level: Write
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_TerminateWorkflowExecution.html
*/
toTerminateWorkflowExecution() {
return this.to('TerminateWorkflowExecution');
}
/**
* Grants permission to undeprecate a previously deprecated activity type
*
* Access Level: Write
*
* Possible conditions:
* - .ifActivityTypeName()
* - .ifActivityTypeVersion()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_UndeprecateActivityType.html
*/
toUndeprecateActivityType() {
return this.to('UndeprecateActivityType');
}
/**
* Grants permission to undeprecate a previously deprecated domain
*
* Access Level: Write
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_UndeprecateDomain.html
*/
toUndeprecateDomain() {
return this.to('UndeprecateDomain');
}
/**
* Grants permission to undeprecate a previously deprecated workflow type
*
* Access Level: Write
*
* Possible conditions:
* - .ifWorkflowTypeName()
* - .ifWorkflowTypeVersion()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_UndeprecateWorkflowType.html
*/
toUndeprecateWorkflowType() {
return this.to('UndeprecateWorkflowType');
}
/**
* Grants permission to remove a tag from an AWS SWF resource
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/amazonswf/latest/apireference/API_UntagResource.html
*/
toUntagResource() {
return this.to('UntagResource');
}
/**
* Adds a resource of type domain to the statement
*
* https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-domains.html
*
* @param domainName - Identifier for the domainName.
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
*
* Possible conditions:
* - .ifAwsResourceTag()
*/
onDomain(domainName, account, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:swf::${account ?? this.defaultAccount}:/domain/${domainName}`);
}
/**
* Filters access by tag of the request
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag
*
* Applies to actions:
* - .toRegisterDomain()
* - .toTagResource()
*
* @param tagKey The tag key to check
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifAwsRequestTag(tagKey, value, operator) {
return this.if(`aws:RequestTag/${tagKey}`, value, operator ?? 'StringLike');
}
/**
* Filters access by tag of the resource
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag
*
* Applies to resource types:
* - domain
*
* @param tagKey The tag key to check
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifAwsResourceTag(tagKey, value, operator) {
return this.if(`aws:ResourceTag/${tagKey}`, value, operator ?? 'StringLike');
}
/**
* Filters access by tag of the key
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag
*
* Applies to actions:
* - .toRegisterDomain()
* - .toTagResource()
* - .toUntagResource()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifAwsTagKeys(value, operator) {
return this.if(`aws:TagKeys`, value, operator ?? 'StringLike');
}
/**
* Filters access by the name of the activity type
*
* https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html##swf-dev-iam.api
*
* Applies to actions:
* - .toDeleteActivityType()
* - .toDeprecateActivityType()
* - .toDescribeActivityType()
* - .toRespondActivityTaskCompleted()
* - .toUndeprecateActivityType()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifActivityTypeName(value, operator) {
return this.if(`activityType.name`, value, operator ?? 'StringLike');
}
/**
* Filters access by the version of the activity type
*
* https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html##swf-dev-iam.api
*
* Applies to actions:
* - .toDeleteActivityType()
* - .toDeprecateActivityType()
* - .toDescribeActivityType()
* - .toRespondActivityTaskCompleted()
* - .toUndeprecateActivityType()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifActivityTypeVersion(value, operator) {
return this.if(`activityType.version`, value, operator ?? 'StringLike');
}
/**
* Filters access by the name of the default task list
*
* https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html##swf-dev-iam.api
*
* Applies to actions:
* - .toRegisterActivityType()
* - .toRegisterWorkflowType()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifDefaultTaskListName(value, operator) {
return this.if(`defaultTaskList.name`, value, operator ?? 'StringLike');
}
/**
* Filters access by the name of activities or workflows
*
* https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html##swf-dev-iam.api
*
* Applies to actions:
* - .toRegisterActivityType()
* - .toRegisterWorkflowType()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifName(value, operator) {
return this.if(`name`, value, operator ?? 'StringLike');
}
/**
* Filters access by the value of tagFilter.tag
*
* https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html##swf-dev-iam.api
*
* Applies to actions:
* - .toCountClosedWorkflowExecutions()
* - .toCountOpenWorkflowExecutions()
* - .toListClosedWorkflowExecutions()
* - .toListOpenWorkflowExecutions()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifTagFilterTag(value, operator) {
return this.if(`tagFilter.tag`, value, operator ?? 'StringLike');
}
/**
* Filters access by the specified tag
*
* https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html##swf-dev-iam.api
*
* Applies to actions:
* - .toRespondActivityTaskCompleted()
* - .toStartWorkflowExecution()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifTagListMember0(value, operator) {
return this.if(`tagList.member.0`, value, operator ?? 'StringLike');
}
/**
* Filters access by the specified tag
*
* https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html##swf-dev-iam.api
*
* Applies to actions:
* - .toRespondActivityTaskCompleted()
* - .toStartWorkflowExecution()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifTagListMember1(value, operator) {
return this.if(`tagList.member.1`, value, operator ?? 'StringLike');
}
/**
* Filters access by the specified tag
*
* https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html##swf-dev-iam.api
*
* Applies to actions:
* - .toRespondActivityTaskCompleted()
* - .toStartWorkflowExecution()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifTagListMember2(value, operator) {
return this.if(`tagList.member.2`, value, operator ?? 'StringLike');
}
/**
* Filters access by the specified tag
*
* https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html##swf-dev-iam.api
*
* Applies to actions:
* - .toRespondActivityTaskCompleted()
* - .toStartWorkflowExecution()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifTagListMember3(value, operator) {
return this.if(`tagList.member.3`, value, operator ?? 'StringLike');
}
/**
* Filters access by the specified tag
*
* https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html##swf-dev-iam.api
*
* Applies to actions:
* - .toRespondActivityTaskCompleted()
* - .toStartWorkflowExecution()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifTagListMember4(value, operator) {
return this.if(`tagList.member.4`, value, operator ?? 'StringLike');
}
/**
* Filters access by the name of the tasklist
*
* https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html##swf-dev-iam.api
*
* Applies to actions:
* - .toCountPendingActivityTasks()
* - .toCountPendingDecisionTasks()
* - .toPollForActivityTask()
* - .toPollForDecisionTask()
* - .toRespondActivityTaskCompleted()
* - .toStartWorkflowExecution()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifTaskListName(value, operator) {
return this.if(`taskList.name`, value, operator ?? 'StringLike');
}
/**
* Filters access by the name of the type filter
*
* https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html##swf-dev-iam.api
*
* Applies to actions:
* - .toCountClosedWorkflowExecutions()
* - .toCountOpenWorkflowExecutions()
* - .toListClosedWorkflowExecutions()
* - .toListOpenWorkflowExecutions()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifTypeFilterName(value, operator) {
return this.if(`typeFilter.name`, value, operator ?? 'StringLike');
}
/**
* Filters access by the version of the type filter
*
* https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html##swf-dev-iam.api
*
* Applies to actions:
* - .toCountClosedWorkflowExecutions()
* - .toCountOpenWorkflowExecutions()
* - .toListClosedWorkflowExecutions()
* - .toListOpenWorkflowExecutions()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifTypeFilterVersion(value, operator) {
return this.if(`typeFilter.version`, value, operator ?? 'StringLike');
}
/**
* Filters access by the version of activities or workflows
*
* https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html##swf-dev-iam.api
*
* Applies to actions:
* - .toRegisterActivityType()
* - .toRegisterWorkflowType()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifVersion(value, operator) {
return this.if(`version`, value, operator ?? 'StringLike');
}
/**
* Filters access by the name of the workflow type
*
* https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html##swf-dev-iam.api
*
* Applies to actions:
* - .toDeleteWorkflowType()
* - .toDeprecateWorkflowType()
* - .toDescribeWorkflowType()
* - .toRespondActivityTaskCompleted()
* - .toStartWorkflowExecution()
* - .toUndeprecateWorkflowType()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifWorkflowTypeName(value, operator) {
return this.if(`workflowType.name`, value, operator ?? 'StringLike');
}
/**
* Filters access by the version of the workflow type
*
* https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html##swf-dev-iam.api
*
* Applies to actions:
* - .toDeleteWorkflowType()
* - .toDeprecateWorkflowType()
* - .toDescribeWorkflowType()
* - .toRespondActivityTaskCompleted()
* - .toStartWorkflowExecution()
* - .toUndeprecateWorkflowType()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifWorkflowTypeVersion(value, operator) {
return this.if(`workflowType.version`, value, operator ?? 'StringLike');
}
}
exports.Swf = Swf;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxld29ya2Zsb3dzZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2ltcGxld29ya2Zsb3dzZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUF5RDtBQUV6RDs7OztHQUlHO0FBQ0gsTUFBYSxHQUFJLFNBQVEsd0JBQWU7SUFHdEM7Ozs7T0FJRztJQUNILFlBQVksR0FBWTtRQUN0QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFSTixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQStvQm5CLG9CQUFlLEdBQW9CO1lBQzNDLEtBQUssRUFBRTtnQkFDTCxhQUFhO2dCQUNiLHlCQUF5QjtnQkFDekIsMkJBQTJCO2dCQUMzQixnQ0FBZ0M7Z0JBQ2hDLG9CQUFvQjtnQkFDcEIsb0JBQW9CO2dCQUNwQix1QkFBdUI7Z0JBQ3ZCLGlCQUFpQjtnQkFDakIsdUJBQXVCO2dCQUN2Qix1QkFBdUI7Z0JBQ3ZCLHFCQUFxQjtnQkFDckIscUJBQXFCO2dCQUNyQiw2QkFBNkI7Z0JBQzdCLGNBQWM7Z0JBQ2Qsc0JBQXNCO2dCQUN0QixnQkFBZ0I7Z0JBQ2hCLHNCQUFzQjtnQkFDdEIsMkJBQTJCO2dCQUMzQix3Q0FBd0M7Z0JBQ3hDLGdDQUFnQztnQkFDaEMsNkJBQTZCO2dCQUM3Qiw4QkFBOEI7Z0JBQzlCLDJCQUEyQjtnQkFDM0IsOEJBQThCO2dCQUM5QixzQkFBc0I7Z0JBQ3RCLGlDQUFpQztnQkFDakMseUJBQXlCO2dCQUN6Qiw2QkFBNkI7Z0JBQzdCLFlBQVk7Z0JBQ1osd0JBQXdCO2dCQUN4Qiw0QkFBNEI7Z0JBQzVCLHlCQUF5QjtnQkFDekIsbUJBQW1CO2dCQUNuQix5QkFBeUI7YUFDMUI7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osK0JBQStCO2dCQUMvQiw2QkFBNkI7Z0JBQzdCLDJCQUEyQjtnQkFDM0IsMkJBQTJCO2dCQUMzQixzQkFBc0I7Z0JBQ3RCLGdCQUFnQjtnQkFDaEIsMkJBQTJCO2dCQUMzQixzQkFBc0I7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UUFBNEI7UUFDckUsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxJQUFJLFlBQVksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7O09BZUc7SUFDSSxrQkFBa0IsQ0FBQyxLQUF3QixFQUFFLFFBQTRCO1FBQzlFLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxJQUFJLFlBQVksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7O09BZUc7SUFDSSxxQkFBcUIsQ0FBQyxLQUF3QixFQUFFLFFBQTRCO1FBQ2pGLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsUUFBUSxJQUFJLFlBQVksQ0FBQyxDQUFDO0lBQzFFLENBQUM7Q0FDRjtBQXZpQ0Qsa0JBdWlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY2Vzc0xldmVsTGlzdCB9IGZyb20gJy4uLy4uL3NoYXJlZC9hY2Nlc3MtbGV2ZWwnO1xuaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50LCBPcGVyYXRvciB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5cbi8qKlxuICogU3RhdGVtZW50IHByb3ZpZGVyIGZvciBzZXJ2aWNlIFtzd2ZdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2FtYXpvbnNpbXBsZXdvcmtmbG93c2VydmljZS5odG1sKS5cbiAqXG4gKiBAcGFyYW0gc2lkIFtTSURdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfc2lkLmh0bWwpIG9mIHRoZSBzdGF0ZW1lbnRcbiAqL1xuZXhwb3J0IGNsYXNzIFN3ZiBleHRlbmRzIFBvbGljeVN0YXRlbWVudCB7XG4gIHB1YmxpYyBzZXJ2aWNlUHJlZml4ID0gJ3N3Zic7XG5cbiAgLyoqXG4gICAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbc3dmXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hbWF6b25zaW1wbGV3b3JrZmxvd3NlcnZpY2UuaHRtbCkuXG4gICAqXG4gICAqIEBwYXJhbSBzaWQgW1NJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19zaWQuaHRtbCkgb2YgdGhlIHN0YXRlbWVudFxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2lkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2lkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjYW5jZWwgYSBwcmV2aW91c2x5IHN0YXJ0ZWQgdGltZXIgYW5kIHJlY29yZCBhIFRpbWVyQ2FuY2VsZWQgZXZlbnQgaW4gdGhlIGhpc3RvcnlcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKi9cbiAgcHVibGljIHRvQ2FuY2VsVGltZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NhbmNlbFRpbWVyJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY2xvc2UgdGhlIHdvcmtmbG93IGV4ZWN1dGlvbiBhbmQgcmVjb3JkIGEgV29ya2Zsb3dFeGVjdXRpb25DYW5jZWxlZCBldmVudCBpbiB0aGUgaGlzdG9yeVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqL1xuICBwdWJsaWMgdG9DYW5jZWxXb3JrZmxvd0V4ZWN1dGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ2FuY2VsV29ya2Zsb3dFeGVjdXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjbG9zZSB0aGUgd29ya2Zsb3cgZXhlY3V0aW9uIGFuZCByZWNvcmQgYSBXb3JrZmxvd0V4ZWN1dGlvbkNvbXBsZXRlZCBldmVudCBpbiB0aGUgaGlzdG9yeVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqL1xuICBwdWJsaWMgdG9Db21wbGV0ZVdvc