UNPKG

iam-floyd

Version:

AWS IAM policy statement generator with fluent interface

1,000 lines 93.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Robomaker = void 0; const shared_1 = require("../../shared"); /** * Statement provider for service [robomaker](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrobomaker.html). * * @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement */ class Robomaker extends shared_1.PolicyStatement { /** * Statement provider for service [robomaker](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrobomaker.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 = 'robomaker'; this.accessLevelList = { Write: [ 'BatchDeleteWorlds', 'CancelDeploymentJob', 'CancelSimulationJob', 'CancelSimulationJobBatch', 'CancelWorldExportJob', 'CancelWorldGenerationJob', 'CreateDeploymentJob', 'CreateFleet', 'CreateRobot', 'CreateRobotApplication', 'CreateRobotApplicationVersion', 'CreateSimulationApplication', 'CreateSimulationApplicationVersion', 'CreateSimulationJob', 'CreateWorldExportJob', 'CreateWorldGenerationJob', 'CreateWorldTemplate', 'DeleteFleet', 'DeleteRobot', 'DeleteRobotApplication', 'DeleteSimulationApplication', 'DeleteWorldTemplate', 'DeregisterRobot', 'RegisterRobot', 'RestartSimulationJob', 'StartSimulationJobBatch', 'SyncDeploymentJob', 'UpdateRobotApplication', 'UpdateRobotDeployment', 'UpdateSimulationApplication', 'UpdateWorldTemplate' ], Read: [ 'BatchDescribeSimulationJob', 'DescribeDeploymentJob', 'DescribeFleet', 'DescribeRobot', 'DescribeRobotApplication', 'DescribeSimulationApplication', 'DescribeSimulationJob', 'DescribeSimulationJobBatch', 'DescribeWorld', 'DescribeWorldExportJob', 'DescribeWorldGenerationJob', 'DescribeWorldTemplate', 'GetWorldTemplateBody' ], List: [ 'ListDeploymentJobs', 'ListFleets', 'ListRobotApplications', 'ListRobots', 'ListSimulationApplications', 'ListSimulationJobBatches', 'ListSimulationJobs', 'ListSupportedAvailabilityZones', 'ListTagsForResource', 'ListWorldExportJobs', 'ListWorldGenerationJobs', 'ListWorldTemplates', 'ListWorlds' ], Tagging: [ 'TagResource', 'UntagResource' ] }; } /** * Delete one or more worlds in a batch operation * * Access Level: Write * * https://docs.aws.amazon.com/robomaker/latest/dg/API_BatchDeleteWorlds.html */ toBatchDeleteWorlds() { return this.to('BatchDeleteWorlds'); } /** * Describe multiple simulation jobs * * Access Level: Read * * https://docs.aws.amazon.com/robomaker/latest/dg/API_BatchDescribeSimulationJob.html */ toBatchDescribeSimulationJob() { return this.to('BatchDescribeSimulationJob'); } /** * Cancel a deployment job * * Access Level: Write * * https://docs.aws.amazon.com/robomaker/latest/dg/API_CancelDeploymentJob.html */ toCancelDeploymentJob() { return this.to('CancelDeploymentJob'); } /** * Cancel a simulation job * * Access Level: Write * * https://docs.aws.amazon.com/robomaker/latest/dg/API_CancelSimulationJob.html */ toCancelSimulationJob() { return this.to('CancelSimulationJob'); } /** * Cancel a simulation job batch * * Access Level: Write * * https://docs.aws.amazon.com/robomaker/latest/dg/API_CancelSimulationJobBatch.html */ toCancelSimulationJobBatch() { return this.to('CancelSimulationJobBatch'); } /** * Cancel a world export job * * Access Level: Write * * https://docs.aws.amazon.com/robomaker/latest/dg/API_CancelWorldExportJob.html */ toCancelWorldExportJob() { return this.to('CancelWorldExportJob'); } /** * Cancel a world generation job * * Access Level: Write * * https://docs.aws.amazon.com/robomaker/latest/dg/API_CancelWorldGenerationJob.html */ toCancelWorldGenerationJob() { return this.to('CancelWorldGenerationJob'); } /** * Create a deployment job * * Access Level: Write * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsRequestTag() * * Dependent actions: * - iam:CreateServiceLinkedRole * * https://docs.aws.amazon.com/robomaker/latest/dg/API_CreateDeploymentJob.html */ toCreateDeploymentJob() { return this.to('CreateDeploymentJob'); } /** * Create a deployment fleet that represents a logical group of robots running the same robot application * * Access Level: Write * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsRequestTag() * * https://docs.aws.amazon.com/robomaker/latest/dg/API_CreateFleet.html */ toCreateFleet() { return this.to('CreateFleet'); } /** * Create a robot that can be registered to a fleet * * Access Level: Write * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsRequestTag() * * Dependent actions: * - iam:CreateServiceLinkedRole * * https://docs.aws.amazon.com/robomaker/latest/dg/API_CreateRobot.html */ toCreateRobot() { return this.to('CreateRobot'); } /** * Create a robot application * * Access Level: Write * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsRequestTag() * * https://docs.aws.amazon.com/robomaker/latest/dg/API_CreateRobotApplication.html */ toCreateRobotApplication() { return this.to('CreateRobotApplication'); } /** * Create a snapshot of a robot application * * Access Level: Write * * Dependent actions: * - s3:GetObject * * https://docs.aws.amazon.com/robomaker/latest/dg/API_CreateRobotApplicationVersion.html */ toCreateRobotApplicationVersion() { return this.to('CreateRobotApplicationVersion'); } /** * Create a simulation application * * Access Level: Write * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsRequestTag() * * https://docs.aws.amazon.com/robomaker/latest/dg/API_CreateSimulationApplication.html */ toCreateSimulationApplication() { return this.to('CreateSimulationApplication'); } /** * Create a snapshot of a simulation application * * Access Level: Write * * Dependent actions: * - s3:GetObject * * https://docs.aws.amazon.com/robomaker/latest/dg/API_CreateSimulationApplicationVersion.html */ toCreateSimulationApplicationVersion() { return this.to('CreateSimulationApplicationVersion'); } /** * Create a simulation job * * Access Level: Write * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsRequestTag() * * Dependent actions: * - iam:CreateServiceLinkedRole * * https://docs.aws.amazon.com/robomaker/latest/dg/API_CreateSimulationJob.html */ toCreateSimulationJob() { return this.to('CreateSimulationJob'); } /** * Create a world export job * * Access Level: Write * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsRequestTag() * * https://docs.aws.amazon.com/robomaker/latest/dg/API_CreateWorldExportJob.html */ toCreateWorldExportJob() { return this.to('CreateWorldExportJob'); } /** * Create a world generation job * * Access Level: Write * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsRequestTag() * * https://docs.aws.amazon.com/robomaker/latest/dg/API_CreateWorldGenerationJob.html */ toCreateWorldGenerationJob() { return this.to('CreateWorldGenerationJob'); } /** * Create a world template * * Access Level: Write * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsRequestTag() * * https://docs.aws.amazon.com/robomaker/latest/dg/API_CreateWorldTemplate.html */ toCreateWorldTemplate() { return this.to('CreateWorldTemplate'); } /** * Delete a deployment fleet * * Access Level: Write * * https://docs.aws.amazon.com/robomaker/latest/dg/API_DeleteFleet.html */ toDeleteFleet() { return this.to('DeleteFleet'); } /** * Delete a robot * * Access Level: Write * * https://docs.aws.amazon.com/robomaker/latest/dg/API_DeleteRobot.html */ toDeleteRobot() { return this.to('DeleteRobot'); } /** * Delete a robot application * * Access Level: Write * * https://docs.aws.amazon.com/robomaker/latest/dg/API_DeleteRobotApplication.html */ toDeleteRobotApplication() { return this.to('DeleteRobotApplication'); } /** * Delete a simulation application * * Access Level: Write * * https://docs.aws.amazon.com/robomaker/latest/dg/API_DeleteSimulationApplication.html */ toDeleteSimulationApplication() { return this.to('DeleteSimulationApplication'); } /** * Delete a world template * * Access Level: Write * * https://docs.aws.amazon.com/robomaker/latest/dg/API_DeleteWorldTemplate.html */ toDeleteWorldTemplate() { return this.to('DeleteWorldTemplate'); } /** * Deregister a robot from a fleet * * Access Level: Write * * https://docs.aws.amazon.com/robomaker/latest/dg/API_DeregisterRobot.html */ toDeregisterRobot() { return this.to('DeregisterRobot'); } /** * Describe a deployment job * * Access Level: Read * * https://docs.aws.amazon.com/robomaker/latest/dg/API_DescribeDeploymentJob.html */ toDescribeDeploymentJob() { return this.to('DescribeDeploymentJob'); } /** * Describe a deployment fleet * * Access Level: Read * * https://docs.aws.amazon.com/robomaker/latest/dg/API_DescribeFleet.html */ toDescribeFleet() { return this.to('DescribeFleet'); } /** * Describe a robot * * Access Level: Read * * https://docs.aws.amazon.com/robomaker/latest/dg/API_DescribeRobot.html */ toDescribeRobot() { return this.to('DescribeRobot'); } /** * Describe a robot application * * Access Level: Read * * https://docs.aws.amazon.com/robomaker/latest/dg/API_DescribeRobotApplication.html */ toDescribeRobotApplication() { return this.to('DescribeRobotApplication'); } /** * Describe a simulation application * * Access Level: Read * * https://docs.aws.amazon.com/robomaker/latest/dg/API_DescribeSimulationApplication.html */ toDescribeSimulationApplication() { return this.to('DescribeSimulationApplication'); } /** * Describe a simulation job * * Access Level: Read * * https://docs.aws.amazon.com/robomaker/latest/dg/API_DescribeSimulationJob.html */ toDescribeSimulationJob() { return this.to('DescribeSimulationJob'); } /** * Describe a simulation job batch * * Access Level: Read * * https://docs.aws.amazon.com/robomaker/latest/dg/API_DescribeSimulationJobBatch.html */ toDescribeSimulationJobBatch() { return this.to('DescribeSimulationJobBatch'); } /** * Describe a world * * Access Level: Read * * https://docs.aws.amazon.com/robomaker/latest/dg/API_DescribeWorld.html */ toDescribeWorld() { return this.to('DescribeWorld'); } /** * Describe a world export job * * Access Level: Read * * https://docs.aws.amazon.com/robomaker/latest/dg/API_DescribeWorldExportJob.html */ toDescribeWorldExportJob() { return this.to('DescribeWorldExportJob'); } /** * Describe a world generation job * * Access Level: Read * * https://docs.aws.amazon.com/robomaker/latest/dg/API_DescribeWorldGenerationJob.html */ toDescribeWorldGenerationJob() { return this.to('DescribeWorldGenerationJob'); } /** * Describe a world template * * Access Level: Read * * https://docs.aws.amazon.com/robomaker/latest/dg/API_DescribeWorldTemplate.html */ toDescribeWorldTemplate() { return this.to('DescribeWorldTemplate'); } /** * Get the body of a world template * * Access Level: Read * * https://docs.aws.amazon.com/robomaker/latest/dg/API_GetWorldTemplateBody.html */ toGetWorldTemplateBody() { return this.to('GetWorldTemplateBody'); } /** * List deployment jobs * * Access Level: List * * https://docs.aws.amazon.com/robomaker/latest/dg/API_ListDeploymentJobs.html */ toListDeploymentJobs() { return this.to('ListDeploymentJobs'); } /** * List fleets * * Access Level: List * * https://docs.aws.amazon.com/robomaker/latest/dg/API_ListFleets.html */ toListFleets() { return this.to('ListFleets'); } /** * List robot applications * * Access Level: List * * https://docs.aws.amazon.com/robomaker/latest/dg/API_ListRobotApplications.html */ toListRobotApplications() { return this.to('ListRobotApplications'); } /** * List robots * * Access Level: List * * https://docs.aws.amazon.com/robomaker/latest/dg/API_ListRobots.html */ toListRobots() { return this.to('ListRobots'); } /** * List simulation applications * * Access Level: List * * https://docs.aws.amazon.com/robomaker/latest/dg/API_ListSimulationApplications.html */ toListSimulationApplications() { return this.to('ListSimulationApplications'); } /** * List simulation job batches * * Access Level: List * * https://docs.aws.amazon.com/robomaker/latest/dg/API_ListSimulationJobBatches.html */ toListSimulationJobBatches() { return this.to('ListSimulationJobBatches'); } /** * List simulation jobs * * Access Level: List * * https://docs.aws.amazon.com/robomaker/latest/dg/API_ListSimulationJobs.html */ toListSimulationJobs() { return this.to('ListSimulationJobs'); } /** * Lists supported availability zones * * Access Level: List */ toListSupportedAvailabilityZones() { return this.to('ListSupportedAvailabilityZones'); } /** * List tags for a RoboMaker resource * * Access Level: List * * https://docs.aws.amazon.com/robomaker/latest/dg/API_ListTagsForResource.html */ toListTagsForResource() { return this.to('ListTagsForResource'); } /** * List world export jobs * * Access Level: List * * https://docs.aws.amazon.com/robomaker/latest/dg/API_ListWorldExportJobs.html */ toListWorldExportJobs() { return this.to('ListWorldExportJobs'); } /** * List world generation jobs * * Access Level: List * * https://docs.aws.amazon.com/robomaker/latest/dg/API_ListWorldGenerationJobs.html */ toListWorldGenerationJobs() { return this.to('ListWorldGenerationJobs'); } /** * List world templates * * Access Level: List * * https://docs.aws.amazon.com/robomaker/latest/dg/API_ListWorldTemplates.html */ toListWorldTemplates() { return this.to('ListWorldTemplates'); } /** * List worlds * * Access Level: List * * https://docs.aws.amazon.com/robomaker/latest/dg/API_ListWorlds.html */ toListWorlds() { return this.to('ListWorlds'); } /** * Register a robot to a fleet * * Access Level: Write * * https://docs.aws.amazon.com/robomaker/latest/dg/API_RegisterRobot.html */ toRegisterRobot() { return this.to('RegisterRobot'); } /** * Restart a running simulation job * * Access Level: Write * * https://docs.aws.amazon.com/robomaker/latest/dg/API_RestartSimulationJob.html */ toRestartSimulationJob() { return this.to('RestartSimulationJob'); } /** * Create a simulation job batch * * Access Level: Write * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsRequestTag() * * Dependent actions: * - iam:CreateServiceLinkedRole * * https://docs.aws.amazon.com/robomaker/latest/dg/API_StartSimulationJobBatch.html */ toStartSimulationJobBatch() { return this.to('StartSimulationJobBatch'); } /** * Ensures the most recently deployed robot application is deployed to all robots in the fleet * * Access Level: Write * * Dependent actions: * - iam:CreateServiceLinkedRole * * https://docs.aws.amazon.com/robomaker/latest/dg/API_SyncDeploymentJob.html */ toSyncDeploymentJob() { return this.to('SyncDeploymentJob'); } /** * Add tags to a RoboMaker resource * * Access Level: Tagging * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsRequestTag() * * https://docs.aws.amazon.com/robomaker/latest/dg/API_TagResource.html */ toTagResource() { return this.to('TagResource'); } /** * Remove tags from a RoboMaker resource * * Access Level: Tagging * * Possible conditions: * - .ifAwsTagKeys() * * https://docs.aws.amazon.com/robomaker/latest/dg/API_UntagResource.html */ toUntagResource() { return this.to('UntagResource'); } /** * Update a robot application * * Access Level: Write * * https://docs.aws.amazon.com/robomaker/latest/dg/API_UpdateRobotApplication.html */ toUpdateRobotApplication() { return this.to('UpdateRobotApplication'); } /** * Report the deployment status for an individual robot * * Access Level: Write */ toUpdateRobotDeployment() { return this.to('UpdateRobotDeployment'); } /** * Update a simulation application * * Access Level: Write * * https://docs.aws.amazon.com/robomaker/latest/dg/API_UpdateSimulationApplication.html */ toUpdateSimulationApplication() { return this.to('UpdateSimulationApplication'); } /** * Update a world template * * Access Level: Write * * https://docs.aws.amazon.com/robomaker/latest/dg/API_UpdateWorldTemplate.html */ toUpdateWorldTemplate() { return this.to('UpdateWorldTemplate'); } /** * Adds a resource of type robotApplication to the statement * * https://docs.aws.amazon.com/robomaker/latest/dg/managing-robot-applications.html * * @param applicationName - Identifier for the applicationName. * @param createdOnEpoch - Identifier for the createdOnEpoch. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @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() */ onRobotApplication(applicationName, createdOnEpoch, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:robomaker:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:robot-application/${applicationName}/${createdOnEpoch}`); } /** * Adds a resource of type simulationApplication to the statement * * https://docs.aws.amazon.com/robomaker/latest/dg/managing-simulation-applications.html * * @param applicationName - Identifier for the applicationName. * @param createdOnEpoch - Identifier for the createdOnEpoch. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @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() */ onSimulationApplication(applicationName, createdOnEpoch, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:robomaker:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:simulation-application/${applicationName}/${createdOnEpoch}`); } /** * Adds a resource of type simulationJob to the statement * * https://docs.aws.amazon.com/robomaker/latest/dg/simulation.html * * @param simulationJobId - Identifier for the simulationJobId. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @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() */ onSimulationJob(simulationJobId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:robomaker:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:simulation-job/${simulationJobId}`); } /** * Adds a resource of type simulationJobBatch to the statement * * https://docs.aws.amazon.com/robomaker/latest/dg/simulation-job-batch.html * * @param simulationJobBatchId - Identifier for the simulationJobBatchId. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @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() */ onSimulationJobBatch(simulationJobBatchId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:robomaker:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:simulation-job-batch/${simulationJobBatchId}`); } /** * Adds a resource of type deploymentJob to the statement * * https://docs.aws.amazon.com/robomaker/latest/dg/deployment.html * * @param deploymentJobId - Identifier for the deploymentJobId. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @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() */ onDeploymentJob(deploymentJobId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:robomaker:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:deployment-job/${deploymentJobId}`); } /** * Adds a resource of type robot to the statement * * https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html * * @param robotName - Identifier for the robotName. * @param createdOnEpoch - Identifier for the createdOnEpoch. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @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() */ onRobot(robotName, createdOnEpoch, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:robomaker:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:robot/${robotName}/${createdOnEpoch}`); } /** * Adds a resource of type deploymentFleet to the statement * * https://docs.aws.amazon.com/robomaker/latest/dg/managing-simulation-applications.html * * @param fleetName - Identifier for the fleetName. * @param createdOnEpoch - Identifier for the createdOnEpoch. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @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() */ onDeploymentFleet(fleetName, createdOnEpoch, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:robomaker:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:deployment-fleet/${fleetName}/${createdOnEpoch}`); } /** * Adds a resource of type worldGenerationJob to the statement * * https://docs.aws.amazon.com/robomaker/latest/dg/worlds-managing-generation-jobs.html * * @param worldGenerationJobId - Identifier for the worldGenerationJobId. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @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() */ onWorldGenerationJob(worldGenerationJobId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:robomaker:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:world-generation-job/${worldGenerationJobId}`); } /** * Adds a resource of type worldExportJob to the statement * * https://docs.aws.amazon.com/robomaker/latest/dg/worlds-managing-export-jobs.html * * @param worldExportJobId - Identifier for the worldExportJobId. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @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() */ onWorldExportJob(worldExportJobId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:robomaker:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:world-export-job/${worldExportJobId}`); } /** * Adds a resource of type worldTemplate to the statement * * https://docs.aws.amazon.com/robomaker/latest/dg/worlds-managing-simworld-templates.html * * @param worldTemplateJobId - Identifier for the worldTemplateJobId. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @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() */ onWorldTemplate(worldTemplateJobId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:robomaker:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:world-template/${worldTemplateJobId}`); } /** * Adds a resource of type world to the statement * * https://docs.aws.amazon.com/robomaker/latest/dg/worlds-managing-generated-worlds.html * * @param worldId - Identifier for the worldId. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @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() */ onWorld(worldId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:robomaker:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:world/${worldId}`); } /** * Filters access based on the tags that are passed in the request * * https://docs.aws.amazon.com/robomaker/latest/dg/tagging-resources-iam-policies.html * * Applies to actions: * - .toCreateDeploymentJob() * - .toCreateFleet() * - .toCreateRobot() * - .toCreateRobotApplication() * - .toCreateSimulationApplication() * - .toCreateSimulationJob() * - .toCreateWorldExportJob() * - .toCreateWorldGenerationJob() * - .toCreateWorldTemplate() * - .toStartSimulationJobBatch() * - .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 based on the tags associated with the resource * * https://docs.aws.amazon.com/robomaker/latest/dg/tagging-resources-iam-policies.html * * Applies to resource types: * - robotApplication * - simulationApplication * - simulationJob * - simulationJobBatch * - deploymentJob * - robot * - deploymentFleet * - worldGenerationJob * - worldExportJob * - worldTemplate * - world * * @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 based on the tag keys that are passed in the request * * https://docs.aws.amazon.com/robomaker/latest/dg/tagging-resources-iam-policies.html * * Applies to actions: * - .toCreateDeploymentJob() * - .toCreateFleet() * - .toCreateRobot() * - .toCreateRobotApplication() * - .toCreateSimulationApplication() * - .toCreateSimulationJob() * - .toCreateWorldExportJob() * - .toCreateWorldGenerationJob() * - .toCreateWorldTemplate() * - .toStartSimulationJobBatch() * - .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'); } } exports.Robomaker = Robomaker; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9ib21ha2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicm9ib21ha2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUF5RDtBQUV6RDs7OztHQUlHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsd0JBQWU7SUFHNUM7Ozs7T0FJRztJQUNILFlBQVksR0FBWTtRQUN0QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFSTixrQkFBYSxHQUFHLFdBQVcsQ0FBQztRQW90QnpCLG9CQUFlLEdBQW9CO1lBQzNDLEtBQUssRUFBRTtnQkFDTCxtQkFBbUI7Z0JBQ25CLHFCQUFxQjtnQkFDckIscUJBQXFCO2dCQUNyQiwwQkFBMEI7Z0JBQzFCLHNCQUFzQjtnQkFDdEIsMEJBQTBCO2dCQUMxQixxQkFBcUI7Z0JBQ3JCLGFBQWE7Z0JBQ2IsYUFBYTtnQkFDYix3QkFBd0I7Z0JBQ3hCLCtCQUErQjtnQkFDL0IsNkJBQTZCO2dCQUM3QixvQ0FBb0M7Z0JBQ3BDLHFCQUFxQjtnQkFDckIsc0JBQXNCO2dCQUN0QiwwQkFBMEI7Z0JBQzFCLHFCQUFxQjtnQkFDckIsYUFBYTtnQkFDYixhQUFhO2dCQUNiLHdCQUF3QjtnQkFDeEIsNkJBQTZCO2dCQUM3QixxQkFBcUI7Z0JBQ3JCLGlCQUFpQjtnQkFDakIsZUFBZTtnQkFDZixzQkFBc0I7Z0JBQ3RCLHlCQUF5QjtnQkFDekIsbUJBQW1CO2dCQUNuQix3QkFBd0I7Z0JBQ3hCLHVCQUF1QjtnQkFDdkIsNkJBQTZCO2dCQUM3QixxQkFBcUI7YUFDdEI7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osNEJBQTRCO2dCQUM1Qix1QkFBdUI7Z0JBQ3ZCLGVBQWU7Z0JBQ2YsZUFBZTtnQkFDZiwwQkFBMEI7Z0JBQzFCLCtCQUErQjtnQkFDL0IsdUJBQXVCO2dCQUN2Qiw0QkFBNEI7Z0JBQzVCLGVBQWU7Z0JBQ2Ysd0JBQXdCO2dCQUN4Qiw0QkFBNEI7Z0JBQzVCLHVCQUF1QjtnQkFDdkIsc0JBQXNCO2FBQ3ZCO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLG9CQUFvQjtnQkFDcEIsWUFBWTtnQkFDWix1QkFBdUI7Z0JBQ3ZCLFlBQVk7Z0JBQ1osNEJBQTRCO2dCQUM1QiwwQkFBMEI7Z0JBQzFCLG9CQUFvQjtnQkFDcEIsZ0NBQWdDO2dCQUNoQyxxQkFBcUI7Z0JBQ3JCLHFCQUFxQjtnQkFDckIseUJBQXlCO2dCQUN6QixvQkFBb0I7Z0JBQ3BCLFlBQVk7YUFDYjtZQUNELE9BQU8sRUFBRTtnQkFDUCxhQUFhO2dCQUNiLGVBQWU7YUFDaEI7U0FDRixDQUFDO0lBL3dCRixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksbUJBQW1CO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSw0QkFBNEI7UUFDakMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0kscUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSwwQkFBMEI7UUFDL0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHNCQUFzQjtRQUMzQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksMEJBQTBCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0kscUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLHdCQUF3QjtRQUM3QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksK0JBQStCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksNkJBQTZCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxvQ0FBb0M7UUFDekMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLG9DQUFvQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSSxxQkFBcUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxzQkFBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSwwQkFBMEI7UUFDL0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxxQkFBcUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksd0JBQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSw2QkFBNkI7UUFDbEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksaUJBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSx1QkFBdUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksMEJBQTBCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSwrQkFBK0I7UUFDcEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHVCQUF1QjtRQUM1QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksNEJBQTRCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksd0JBQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSw0QkFBNEI7UUFDakMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHVCQUF1QjtRQUM1QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksc0JBQXNCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxvQkFBb0I7UUFDekIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSx1QkFBdUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSw0QkFBNEI7UUFDakMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDBCQUEwQjtRQUMvQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksb0JBQW9CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksZ0NBQWdDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxxQkFBcUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0kseUJBQXlCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxvQkFBb0I7UUFDekIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksc0JBQXNCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0kseUJBQXlCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxtQkFBbUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHdCQUF3QjtRQUM3QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHVCQUF1QjtRQUM1QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksNkJBQTZCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxxQkFBcUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDeEMsQ0FBQztJQXdFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0ksa0JBQWtCLENBQUMsZUFBdUIsRUFBRSxjQUFzQixFQUFFLE9BQWdCLEVBQUUsTUFBZSxFQUFFLFNBQWtCO1FBQzlILE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFRLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWlCLGNBQWUsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFjLElBQUssT0FBTyxJQUFJLElBQUksQ0FBQyxjQUFlLHNCQUF1QixlQUFnQixJQUFLLGNBQWUsRUFBRSxDQUFDLENBQUM7SUFDM00sQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSSx1QkFBdUIsQ0FBQyxlQUF1QixFQUFFLGNBQXNCLEVBQUUsT0FBZ0IsRUFBRSxNQUFlLEVBQUUsU0FBa0I7UUFDbkksT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQVEsU0FBUyxJQUFJLElBQUksQ0FBQyxnQkFBaUIsY0FBZSxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWMsSUFBSyxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWUsMkJBQTRCLGVBQWdCLElBQUssY0FBZSxFQUFFLENBQUMsQ0FBQztJQUNoTixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ksZUFBZSxDQUFDLGVBQXVCLEVBQUUsT0FBZ0IsRUFBRSxNQUFlLEVBQUUsU0FBa0I7UUFDbkcsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQVEsU0FBUyxJQUFJLElBQUksQ0FBQyxnQkFBaUIsY0FBZSxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWMsSUFBSyxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWUsbUJBQW9CLGVBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQ3BMLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxvQkFBb0IsQ0FBQyxvQkFBNEIsRUFBRSxPQUFnQixFQUFFLE1BQWUsRUFBRSxTQUFrQjtRQUM3RyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBUSxTQUFTLElBQUksSUFBSSxDQUFDLGdCQUFpQixjQUFlLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYyxJQUFLLE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBZSx5QkFBMEIsb0JBQXFCLEVBQUUsQ0FBQyxDQUFDO0lBQy9MLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxlQUFlLENBQUMsZUFBdUIsRUFBRSxPQUFnQixFQUFFLE1BQWUsRUFBRSxTQUFrQjtRQUNuRyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBUSxTQUFTLElBQUksSUFBSSxDQUFDLGdCQUFpQixjQUFlLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYyxJQUFLLE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBZSxtQkFBb0IsZUFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDcEwsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSSxPQUFPLENBQUMsU0FBaUIsRUFBRSxjQUFzQixFQUFFLE9BQWdCLEVBQUUsTUFBZSxFQUFFLFNBQWtCO1FBQzdHLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFRLFNBQVMsSUFBSSxJQUFJLENBQUMsZ0JBQWlCLGNBQWUsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFjLElBQUssT0FBTyxJQUFJLElBQUksQ0FBQyxjQUFlLFVBQVcsU0FBVSxJQUFLLGNBQWUsRUFBRSxDQUFDLENBQUM7SUFDekwsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSSxpQkFBaUIsQ0FBQyxTQUFpQixFQUFFLGNBQXNCLEVBQUUsT0FBZ0IsRUFBRSxNQUFlLEVBQUUsU0FBa0I7UUFDdkgsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQVEsU0FBUyxJQUFJLElBQUksQ0FBQyxnQkFBaUIsY0FBZSxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWMsSUFBSyxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWUscUJBQXNCLFNBQVUsSUFBSyxjQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQ3BNLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxvQkFBb0IsQ0FBQyxvQkFBNEIsRUFBRSxPQUFnQixFQUFFLE1BQWUsRUFBRSxTQUFrQjtRQUM3RyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBUSxTQUFTLElBQUksSUFBSSxDQUFDLGdCQUFpQixjQUFlLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYyxJQUFLLE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBZSx5QkFBMEIsb0JBQXFCLEVBQUUsQ0FBQyxDQUFDO0lBQy9MLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxnQkFBZ0IsQ0FBQyxnQkFBd0IsRUFBRSxPQUFnQixFQUFFLE1BQWUsRUFBRSxTQUFrQjtRQUNyRyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBUSxTQUFTLElBQUksSUFBSSxDQUFDLGdCQUFpQixjQUFlLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYyxJQUFLLE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBZSxxQkFBc0IsZ0JBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZMLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxlQUFlLENBQUMsa0JBQTBCLEVBQUUsT0FBZ0IsRUFBRSxNQUFlLEVBQUUsU0FBa0I7UUFDdEcsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQVEsU0FBUyxJQUFJLElBQUksQ0FBQyxnQkFBaUIsY0FBZSxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWMsSUFBSyxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWUsbUJBQW9CLGtCQUFtQixFQUFFLENBQUMsQ0FBQztJQUN2TCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ksT0FBTyxDQUFDLE9BQWUsRUFBRSxPQUFnQixFQUFFLE1BQWUsRUFBRSxTQUFrQjtRQUNuRixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBUSxTQUFTLElBQUksSUFBSSxDQUFDLGdCQUFpQixjQUFlLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYyxJQUFLLE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBZSxVQUFXLE9BQVEsRUFBRSxDQUFDLENBQUM7SUFDbkssQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FxQkc7SUFDSSxlQUFlLENBQUMsTUFBYyxFQUFFLEtBQXdCLEVBQUUsUUFBNEI7UUFDM0YsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFtQixNQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxJQUFJLFlBQVksQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BcUJHO0lBQ0ksZ0JBQWdCLENBQUMsTUFBYyxFQUFFLEtBQXdCLEVBQUUsUUFBNEI7UUFDNUYsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFvQixNQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxJQUFJLFlBQVksQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BcUJHO0lBQ0ksWUFBWSxDQUFDLEtBQXdCLEVBQUUsUUFBNEI7UUFDeEUsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsUUFBUSxJQUFJLFlBQVksQ0FBQyxDQUFDO0lBQ2pFLENBQUM7Q0FDRjtBQXZpQ0QsOEJBdWlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY2Vzc0xldmVsTGlzdCB9IGZyb20gJy4uLy4uL3NoYXJlZC9hY2Nlc3MtbGV2ZWwnO1xuaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50LCBPcGVyYXRvciB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5cbi8qKlxuICogU3RhdGVtZW50IHByb3ZpZGVyIGZvciBzZXJ2aWNlIFtyb2JvbWFrZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2F3c3JvYm9tYWtlci5odG1sKS5cbiAqXG4gKiBAcGFyYW0gc2lkIFtTSURdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfc2lkLmh0bWwpIG9mIHRoZSBzdGF0ZW1lbnRcbiAqL1xuZXhwb3J0IGNsYXNzIFJvYm9tYWtlciBleHRlbmRzIFBvbGljeVN0YXRlbWVudCB7XG4gIHB1YmxpYyBzZXJ2aWNlUHJlZml4ID0gJ3JvYm9tYWtlcic7XG5cbiAgLyoqXG4gICAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbcm9ib21ha2VyXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hd3Nyb2JvbWFrZXIuaHRtbCkuXG4gICAqXG4gICAqIEBwYXJhbSBzaWQgW1NJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19zaWQuaHRtbCkgb2YgdGhlIHN0YXRlbWVudFxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2lkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2lkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgb25lIG9yIG1vcmUgd29ybGRzIGluIGEgYmF0Y2ggb3BlcmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3JvYm9tYWtlci9sYXRlc3QvZGcvQVBJX0JhdGNoRGVsZXRlV29ybGRzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0JhdGNoRGVsZXRlV29ybGRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdCYXRjaERlbGV0ZVdvcmxkcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc2NyaWJlIG11bHRpcGxlIHNpbXVsYXRpb24gam9ic1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3JvYm9tYWtlci9sYXRlc3QvZGcvQVBJX0JhdGNoRGVzY3JpYmVTaW11bGF0aW9uSm9iLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0JhdGNoRGVzY3JpYmVTaW11bGF0aW9uSm9iKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdCYXRjaERlc2NyaWJlU2ltdWxhdGlvbkpvYicpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbmNlbCBhIGRlcGxveW1lbnQgam9iXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3JvYm9tYWtlci9sYXRlc3QvZGcvQVBJX0NhbmNlbERlcGxveW1lbnRKb2IuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ2FuY2VsRGVwbG95bWVudEpvYigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ2FuY2VsRGVwbG95bWVudEpvYicpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbmNlbCBhIHNpbXVsYXRpb24gam9iXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3JvYm9tYWtlci9sYXRlc3QvZGcvQVBJX0NhbmNlbFNpbXVsYXRpb25Kb2IuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ2FuY2VsU2ltdWxhdGlvbkpvYigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ2FuY2VsU2ltdWxhdGlvbkpvYicpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbmNlbCBhIHNpbXVsYXRpb24gam9iIGJhdGNoXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGV