iam-floyd
Version:
AWS IAM policy statement generator with fluent interface
1,092 lines • 98.2 kB
JavaScript
"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