UNPKG

iam-floyd

Version:

AWS IAM policy statement generator with fluent interface

1,092 lines 98.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Deepracer = void 0; const shared_1 = require("../../shared"); /** * Statement provider for service [deepracer](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdeepracer.html). * * @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement */ class Deepracer extends shared_1.PolicyStatement { /** * Statement provider for service [deepracer](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdeepracer.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 = 'deepracer'; this.accessLevelList = { Write: [ 'AddLeaderboardAccessPermission', 'AdminManageUser', 'AdminSetAccountConfig', 'AdminUpdateAccountKey', 'CloneReinforcementLearningModel', 'CreateCar', 'CreateLeaderboard', 'CreateLeaderboardAccessToken', 'CreateLeaderboardSubmission', 'CreateReinforcementLearningModel', 'DeleteLeaderboard', 'DeleteModel', 'EditLeaderboard', 'ImportModel', 'MigrateModels', 'PerformLeaderboardOperation', 'RemoveLeaderboardAccessPermission', 'SetAlias', 'StartEvaluation', 'StopEvaluation', 'StopTrainingReinforcementLearningModel', 'TestRewardFunction', 'UpdateCar' ], Read: [ 'AdminDescribeAccountKey', 'AdminGetAccountConfig', 'AdminListAssociatedResources', 'AdminListAssociatedUsers', 'GetAccountConfig', 'GetAlias', 'GetAssetUrl', 'GetCar', 'GetCars', 'GetEvaluation', 'GetLatestUserSubmission', 'GetLeaderboard', 'GetModel', 'GetPrivateLeaderboard', 'GetRankedUserSubmission', 'GetTrack', 'GetTrainingJob', 'ListEvaluations', 'ListLeaderboardEvaluations', 'ListLeaderboardSubmissions', 'ListLeaderboards', 'ListModels', 'ListPrivateLeaderboardParticipants', 'ListPrivateLeaderboards', 'ListSubscribedPrivateLeaderboards', 'ListTagsForResource', 'ListTracks', 'ListTrainingJobs' ], Tagging: [ 'TagResource', 'UntagResource' ] }; } /** * Grants permission to add access for a private leaderboard * * Access Level: Write * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-manage-community-races.html */ toAddLeaderboardAccessPermission() { return this.to('AddLeaderboardAccessPermission'); } /** * Grants permission to retrieve information of the KMS key that the user currently has assigned to their account * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-admin-describe-account-key.html */ toAdminDescribeAccountKey() { return this.to('AdminDescribeAccountKey'); } /** * Grants permission to get current admin multiuser configuration for this account * * Access Level: Read * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-admin-set-account-config.html */ toAdminGetAccountConfig() { return this.to('AdminGetAccountConfig'); } /** * Grants permission to list all deepracer users with their associated resources created under this account * * Access Level: Read * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-admin-list-associated-resources.html */ toAdminListAssociatedResources() { return this.to('AdminListAssociatedResources'); } /** * Grants permission to list user data for all users associated with this account * * Access Level: Read * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-admin-list-associated-users.html */ toAdminListAssociatedUsers() { return this.to('AdminListAssociatedUsers'); } /** * Grants permission to manage a user associated with this account * * Access Level: Write * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-admin-manage-user.html */ toAdminManageUser() { return this.to('AdminManageUser'); } /** * Grants permission to set configuration options for this account * * Access Level: Write * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-admin-set-account-config.html */ toAdminSetAccountConfig() { return this.to('AdminSetAccountConfig'); } /** * Grants permission to update the KMS key that is assigned to the user's account * * Access Level: Write * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-admin-update-account-key.html */ toAdminUpdateAccountKey() { return this.to('AdminUpdateAccountKey'); } /** * Grants permission to clone an existing DeepRacer model * * Access Level: Write * * Possible conditions: * - .ifAwsRequestTag() * - .ifAwsTagKeys() * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-console-train-evaluate-models.html#deepracer-clone-trained-model */ toCloneReinforcementLearningModel() { return this.to('CloneReinforcementLearningModel'); } /** * Grants permission to create a DeepRacer car in your garage * * Access Level: Write * * Possible conditions: * - .ifAwsRequestTag() * - .ifAwsTagKeys() * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-choose-race-type.html */ toCreateCar() { return this.to('CreateCar'); } /** * Grants permission to create a leaderboard * * Access Level: Write * * Possible conditions: * - .ifAwsRequestTag() * - .ifAwsTagKeys() * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-create-community-race.html */ toCreateLeaderboard() { return this.to('CreateLeaderboard'); } /** * Grants permission to create an access token for a private leaderboard * * Access Level: Write * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-manage-community-races.html */ toCreateLeaderboardAccessToken() { return this.to('CreateLeaderboardAccessToken'); } /** * Grants permission to submit a DeepRacer model to be evaluated for leaderboards * * Access Level: Write * * Possible conditions: * - .ifAwsRequestTag() * - .ifAwsTagKeys() * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-submit-model-to-leaderboard.html */ toCreateLeaderboardSubmission() { return this.to('CreateLeaderboardSubmission'); } /** * Grants permission to create ra einforcement learning model for DeepRacer * * Access Level: Write * * Possible conditions: * - .ifAwsRequestTag() * - .ifAwsTagKeys() * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-get-started-training-model.html */ toCreateReinforcementLearningModel() { return this.to('CreateReinforcementLearningModel'); } /** * Grants permission to delete a leaderboard * * Access Level: Write * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-manage-community-races.html */ toDeleteLeaderboard() { return this.to('DeleteLeaderboard'); } /** * Grants permission to delete a DeepRacer model * * Access Level: Write * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-get-started-training-model.html */ toDeleteModel() { return this.to('DeleteModel'); } /** * Grants permission to edit a leaderboard * * Access Level: Write * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-manage-community-races.html */ toEditLeaderboard() { return this.to('EditLeaderboard'); } /** * Grants permission to get current multiuser configuration for this account * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-admin-set-account-config.html */ toGetAccountConfig() { return this.to('GetAccountConfig'); } /** * Grants permission to retrieve the user's alias for submitting a DeepRacer model to leaderboards * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-submit-model-to-leaderboard.html */ toGetAlias() { return this.to('GetAlias'); } /** * Grants permission to download artifacts for an existing DeepRacer model * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-console-train-evaluate-models.html */ toGetAssetUrl() { return this.to('GetAssetUrl'); } /** * Grants permission to retrieve a specific DeepRacer car from your garage * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-choose-race-type.html */ toGetCar() { return this.to('GetCar'); } /** * Grants permission to view all the DeepRacer cars in your garage * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-choose-race-type.html */ toGetCars() { return this.to('GetCars'); } /** * Grants permission to retrieve information about an existing DeepRacer model's evaluation jobs * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-get-started-test-in-simulator.html */ toGetEvaluation() { return this.to('GetEvaluation'); } /** * Grants permission to retrieve information about how the latest submitted DeepRacer model for a user performed on a leaderboard * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-submit-model-to-leaderboard.html */ toGetLatestUserSubmission() { return this.to('GetLatestUserSubmission'); } /** * Grants permission to retrieve information about leaderboards * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-submit-model-to-leaderboard.html */ toGetLeaderboard() { return this.to('GetLeaderboard'); } /** * Grants permission to retrieve information about an existing DeepRacer model * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-get-started-training-model.html */ toGetModel() { return this.to('GetModel'); } /** * Grants permission to retrieve information about private leaderboards * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-join-community-race.html */ toGetPrivateLeaderboard() { return this.to('GetPrivateLeaderboard'); } /** * Grants permission to retrieve information about the performance of a user's DeepRacer model that got placed on a leaderboard * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-submit-model-to-leaderboard.html */ toGetRankedUserSubmission() { return this.to('GetRankedUserSubmission'); } /** * Grants permission to retrieve information about DeepRacer tracks * * Access Level: Read * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-console-train-evaluate-models.html */ toGetTrack() { return this.to('GetTrack'); } /** * Grants permission to retrieve information about an existing DeepRacer model's training job * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-get-started-training-model.html */ toGetTrainingJob() { return this.to('GetTrainingJob'); } /** * Grants permission to import a reinforcement learning model for DeepRacer * * Access Level: Write * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-troubleshooting-service-migration-errors.html */ toImportModel() { return this.to('ImportModel'); } /** * Grants permission to list a DeepRacer model's evaluation jobs * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-get-started-test-in-simulator.html */ toListEvaluations() { return this.to('ListEvaluations'); } /** * Grants permission to list all the user's leaderboard evaluation jobs for a leaderboard * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-submit-model-to-leaderboard.html */ toListLeaderboardEvaluations() { return this.to('ListLeaderboardEvaluations'); } /** * Grants permission to list all the DeepRacer model submissions of a user on a leaderboard * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-submit-model-to-leaderboard.html */ toListLeaderboardSubmissions() { return this.to('ListLeaderboardSubmissions'); } /** * Grants permission to list all the available leaderboards * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-submit-model-to-leaderboard.html */ toListLeaderboards() { return this.to('ListLeaderboards'); } /** * Grants permission to list all existing DeepRacer models * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-get-started-training-model.html */ toListModels() { return this.to('ListModels'); } /** * Grants permission to retrieve participant information about private leaderboards * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-join-community-race.html */ toListPrivateLeaderboardParticipants() { return this.to('ListPrivateLeaderboardParticipants'); } /** * Grants permission to list all the available private leaderboards * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-join-community-race.html */ toListPrivateLeaderboards() { return this.to('ListPrivateLeaderboards'); } /** * Grants permission to list all the subscribed private leaderboards * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-join-community-race.html */ toListSubscribedPrivateLeaderboards() { return this.to('ListSubscribedPrivateLeaderboards'); } /** * Grants permission to lists tag for a resource * * Access Level: Read * * Possible conditions: * - .ifAwsResourceTag() * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-tagging.html */ toListTagsForResource() { return this.to('ListTagsForResource'); } /** * Grants permission to list all DeepRacer tracks * * Access Level: Read * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-console-train-evaluate-models.html */ toListTracks() { return this.to('ListTracks'); } /** * Grants permission to list a DeepRacer model's training jobs * * Access Level: Read * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-get-started-training-model.html */ toListTrainingJobs() { return this.to('ListTrainingJobs'); } /** * Grants permission to migrate previous reinforcement learning models for DeepRacer * * Access Level: Write * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-troubleshooting-service-migration-errors.html */ toMigrateModels() { return this.to('MigrateModels'); } /** * Grants permission to performs the leaderboard operation mentioned in the operation attribute * * Access Level: Write * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-perform-leaderboard-operation.html */ toPerformLeaderboardOperation() { return this.to('PerformLeaderboardOperation'); } /** * Grants permission to remove access for a private leaderboard * * Access Level: Write * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-manage-community-races.html */ toRemoveLeaderboardAccessPermission() { return this.to('RemoveLeaderboardAccessPermission'); } /** * Grants permission to set the user's alias for submitting a DeepRacer model to leaderboards * * Access Level: Write * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-submit-model-to-leaderboard.html */ toSetAlias() { return this.to('SetAlias'); } /** * Grants permission to evaluate a DeepRacer model in a simulated environment * * Access Level: Write * * Possible conditions: * - .ifAwsRequestTag() * - .ifAwsTagKeys() * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-get-started-test-in-simulator.html */ toStartEvaluation() { return this.to('StartEvaluation'); } /** * Grants permission to stop DeepRacer model evaluations * * Access Level: Write * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-get-started-test-in-simulator.html */ toStopEvaluation() { return this.to('StopEvaluation'); } /** * Grants permission to stop training a DeepRacer model * * Access Level: Write * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-get-started-training-model.html */ toStopTrainingReinforcementLearningModel() { return this.to('StopTrainingReinforcementLearningModel'); } /** * Grants permission to tag a resource * * Access Level: Tagging * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsRequestTag() * - .ifAwsResourceTag() * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-tagging.html */ toTagResource() { return this.to('TagResource'); } /** * Grants permission to test reward functions for correctness * * Access Level: Write * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-console-train-evaluate-models.html#deepracer-train-models-define-reward-function */ toTestRewardFunction() { return this.to('TestRewardFunction'); } /** * Grants permission to untag a resource * * Access Level: Tagging * * Possible conditions: * - .ifAwsTagKeys() * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-tagging.html */ toUntagResource() { return this.to('UntagResource'); } /** * Grants permission to update a DeepRacer car in your garage * * Access Level: Write * * Possible conditions: * - .ifUserToken() * - .ifMultiUser() * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-choose-race-type.html */ toUpdateCar() { return this.to('UpdateCar'); } /** * Adds a resource of type car to the statement * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-choose-race-type.html * * @param resourceId - Identifier for the resourceId. * @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() */ onCar(resourceId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:deepracer:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:car/${resourceId}`); } /** * Adds a resource of type evaluation_job to the statement * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-get-started-test-in-simulator.html * * @param resourceId - Identifier for the resourceId. * @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() */ onEvaluationJob(resourceId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:deepracer:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:evaluation_job/${resourceId}`); } /** * Adds a resource of type leaderboard to the statement * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-submit-model-to-leaderboard.html * * @param resourceId - Identifier for the resourceId. * @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() */ onLeaderboard(resourceId, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:deepracer:${region ?? this.defaultRegion}::leaderboard/${resourceId}`); } /** * Adds a resource of type leaderboard_evaluation_job to the statement * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-submit-model-to-leaderboard.html * * @param resourceId - Identifier for the resourceId. * @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() */ onLeaderboardEvaluationJob(resourceId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:deepracer:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:leaderboard_evaluation_job/${resourceId}`); } /** * Adds a resource of type reinforcement_learning_model to the statement * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-get-started-training-model.html * * @param resourceId - Identifier for the resourceId. * @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() */ onReinforcementLearningModel(resourceId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:deepracer:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:model/reinforcement_learning/${resourceId}`); } /** * Adds a resource of type track to the statement * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-console-train-evaluate-models.html * * @param resourceId - Identifier for the resourceId. * @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. */ onTrack(resourceId, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:deepracer:${region ?? this.defaultRegion}::track/${resourceId}`); } /** * Adds a resource of type training_job to the statement * * https://docs.aws.amazon.com/deepracer/latest/developerguide/deepracer-get-started-training-model.html * * @param resourceId - Identifier for the resourceId. * @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() */ onTrainingJob(resourceId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:deepracer:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:training_job/${resourceId}`); } /** * Filters access by tag key-value pairs in the request * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag * * Applies to actions: * - .toCloneReinforcementLearningModel() * - .toCreateCar() * - .toCreateLeaderboard() * - .toCreateLeaderboardSubmission() * - .toCreateReinforcementLearningModel() * - .toStartEvaluation() * - .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 key-value pairs attached to the resource * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag * * Applies to actions: * - .toListTagsForResource() * - .toTagResource() * * Applies to resource types: * - car * - evaluation_job * - leaderboard * - leaderboard_evaluation_job * - reinforcement_learning_model * - training_job * * @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 keys in the request * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys * * Applies to actions: * - .toCloneReinforcementLearningModel() * - .toCreateCar() * - .toCreateLeaderboard() * - .toCreateLeaderboardSubmission() * - .toCreateReinforcementLearningModel() * - .toStartEvaluation() * - .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 multiuser flag * * https://docs.aws.amazon.com/deepracer/latest/developerguide/reference_policies_iam-condition-keys.html#condition-keys-multiuser * * Applies to actions: * - .toAddLeaderboardAccessPermission() * - .toAdminDescribeAccountKey() * - .toAdminUpdateAccountKey() * - .toCloneReinforcementLearningModel() * - .toCreateCar() * - .toCreateLeaderboard() * - .toCreateLeaderboardAccessToken() * - .toCreateLeaderboardSubmission() * - .toCreateReinforcementLearningModel() * - .toDeleteLeaderboard() * - .toDeleteModel() * - .toEditLeaderboard() * - .toGetAccountConfig() * - .toGetAlias() * - .toGetAssetUrl() * - .toGetCar() * - .toGetCars() * - .toGetEvaluation() * - .toGetLatestUserSubmission() * - .toGetLeaderboard() * - .toGetModel() * - .toGetPrivateLeaderboard() * - .toGetRankedUserSubmission() * - .toGetTrainingJob() * - .toImportModel() * - .toListEvaluations() * - .toListLeaderboardEvaluations() * - .toListLeaderboardSubmissions() * - .toListLeaderboards() * - .toListModels() * - .toListPrivateLeaderboardParticipants() * - .toListPrivateLeaderboards() * - .toListSubscribedPrivateLeaderboards() * - .toListTagsForResource() * - .toListTrainingJobs() * - .toPerformLeaderboardOperation() * - .toRemoveLeaderboardAccessPermission() * - .toSetAlias() * - .toStartEvaluation() * - .toStopEvaluation() * - .toStopTrainingReinforcementLearningModel() * - .toTagResource() * - .toUntagResource() * - .toUpdateCar() * * @param value `true` or `false`. **Default:** `true` */ ifMultiUser(value) { return this.if(`MultiUser`, (typeof value !== 'undefined' ? value : true), 'Bool'); } /** * Filters access by user token in the request * * https://docs.aws.amazon.com/deepracer/latest/developerguide/reference_policies_iam-condition-keys.html#condition-keys-usertoken * * Applies to actions: * - .toAddLeaderboardAccessPermission() * - .toAdminDescribeAccountKey() * - .toAdminUpdateAccountKey() * - .toCloneReinforcementLearningModel() * - .toCreateCar() * - .toCreateLeaderboard() * - .toCreateLeaderboardAccessToken() * - .toCreateLeaderboardSubmission() * - .toCreateReinforcementLearningModel() * - .toDeleteLeaderboard() * - .toDeleteModel() * - .toEditLeaderboard() * - .toGetAccountConfig() * - .toGetAlias() * - .toGetAssetUrl() * - .toGetCar() * - .toGetCars() * - .toGetEvaluation() * - .toGetLatestUserSubmission() * - .toGetLeaderboard() * - .toGetModel() * - .toGetPrivateLeaderboard() * - .toGetRankedUserSubmission() * - .toGetTrainingJob() * - .toImportModel() * - .toListEvaluations() * - .toListLeaderboardEvaluations() * - .toListLeaderboardSubmissions() * - .toListLeaderboards() * - .toListModels() * - .toListPrivateLeaderboardParticipants() * - .toListPrivateLeaderboards() * - .toListSubscribedPrivateLeaderboards() * - .toListTagsForResource() * - .toListTrainingJobs() * - .toPerformLeaderboardOperation() * - .toRemoveLeaderboardAccessPermission() * - .toSetAlias() * - .toStartEvaluation() * - .toStopEvaluation() * - .toStopTrainingReinforcementLearningModel() * - .toTagResource() * - .toUntagResource() * - .toUpdateCar() * * @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` */ ifUserToken(value, operator) { return this.if(`UserToken`, value, operator ?? 'StringLike'); } } exports.Deepracer = Deepracer; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcHJhY2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVlcHJhY2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUF5RDtBQUV6RDs7OztHQUlHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsd0JBQWU7SUFHNUM7Ozs7T0FJRztJQUNILFlBQVksR0FBWTtRQUN0QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFSTixrQkFBYSxHQUFHLFdBQVcsQ0FBQztRQW14QnpCLG9CQUFlLEdBQW9CO1lBQzNDLEtBQUssRUFBRTtnQkFDTCxnQ0FBZ0M7Z0JBQ2hDLGlCQUFpQjtnQkFDakIsdUJBQXVCO2dCQUN2Qix1QkFBdUI7Z0JBQ3ZCLGlDQUFpQztnQkFDakMsV0FBVztnQkFDWCxtQkFBbUI7Z0JBQ25CLDhCQUE4QjtnQkFDOUIsNkJBQTZCO2dCQUM3QixrQ0FBa0M7Z0JBQ2xDLG1CQUFtQjtnQkFDbkIsYUFBYTtnQkFDYixpQkFBaUI7Z0JBQ2pCLGFBQWE7Z0JBQ2IsZUFBZTtnQkFDZiw2QkFBNkI7Z0JBQzdCLG1DQUFtQztnQkFDbkMsVUFBVTtnQkFDVixpQkFBaUI7Z0JBQ2pCLGdCQUFnQjtnQkFDaEIsd0NBQXdDO2dCQUN4QyxvQkFBb0I7Z0JBQ3BCLFdBQVc7YUFDWjtZQUNELElBQUksRUFBRTtnQkFDSix5QkFBeUI7Z0JBQ3pCLHVCQUF1QjtnQkFDdkIsOEJBQThCO2dCQUM5QiwwQkFBMEI7Z0JBQzFCLGtCQUFrQjtnQkFDbEIsVUFBVTtnQkFDVixhQUFhO2dCQUNiLFFBQVE7Z0JBQ1IsU0FBUztnQkFDVCxlQUFlO2dCQUNmLHlCQUF5QjtnQkFDekIsZ0JBQWdCO2dCQUNoQixVQUFVO2dCQUNWLHVCQUF1QjtnQkFDdkIseUJBQXlCO2dCQUN6QixVQUFVO2dCQUNWLGdCQUFnQjtnQkFDaEIsaUJBQWlCO2dCQUNqQiw0QkFBNEI7Z0JBQzVCLDRCQUE0QjtnQkFDNUIsa0JBQWtCO2dCQUNsQixZQUFZO2dCQUNaLG9DQUFvQztn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RUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxJQUFJLFlBQVksQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FDRjtBQTNuQ0QsOEJBMm5DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY2Vzc0xldmVsTGlzdCB9IGZyb20gJy4uLy4uL3NoYXJlZC9hY2Nlc3MtbGV2ZWwnO1xuaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50LCBPcGVyYXRvciB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5cbi8qKlxuICogU3RhdGVtZW50IHByb3ZpZGVyIGZvciBzZXJ2aWNlIFtkZWVwcmFjZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2F3c2RlZXByYWNlci5odG1sKS5cbiAqXG4gKiBAcGFyYW0gc2lkIFtTSURdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfc2lkLmh0bWwpIG9mIHRoZSBzdGF0ZW1lbnRcbiAqL1xuZXhwb3J0IGNsYXNzIERlZXByYWNlciBleHRlbmRzIFBvbGljeVN0YXRlbWVudCB7XG4gIHB1YmxpYyBzZXJ2aWNlUHJlZml4ID0gJ2RlZXByYWNlcic7XG5cbiAgLyoqXG4gICAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbZGVlcHJhY2VyXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hd3NkZWVwcmFjZXIuaHRtbCkuXG4gICAqXG4gICAqIEBwYXJhbSBzaWQgW1NJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19zaWQuaHRtbCkgb2YgdGhlIHN0YXRlbWVudFxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2lkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2lkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBhZGQgYWNjZXNzIGZvciBhIHByaXZhdGUgbGVhZGVyYm9hcmRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuIC