UNPKG

cdk-iam-floyd

Version:

AWS IAM policy statement generator with fluent interface for AWS CDK

1,091 lines 98 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 { /** * 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'); } /** * Statement provider for service [deepracer](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdeepracer.html). * */ constructor(props) { super(props); 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' ] }; } } exports.Deepracer = Deepracer; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcHJhY2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVlcHJhY2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUF5RDtBQUd6RDs7OztHQUlHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsd0JBQWU7SUFHNUM7Ozs7Ozs7Ozs7T0FVRztJQUNJLGdDQUFnQztRQUNyQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLHlCQUF5QjtRQUM5QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksdUJBQXVCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSw4QkFBOEI7UUFDbkMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDBCQUEwQjtRQUMvQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksaUJBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSx1QkFBdUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSx1QkFBdUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNJLGlDQUFpQztRQUN0QyxPQUFP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bkI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsYUFBYTtnQkFDYixlQUFlO2FBQ2hCO1NBQ0YsQ0FBQztJQWtURixDQUFDO0NBQ0Y7QUExbkNELDhCQTBuQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2Nlc3NMZXZlbExpc3QgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWNjZXNzLWxldmVsJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCwgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHsgYXdzX2lhbSBhcyBpYW0gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuLyoqXG4gKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW2RlZXByYWNlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYXdzZGVlcHJhY2VyLmh0bWwpLlxuICpcbiAqIEBwYXJhbSBzaWQgW1NJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19zaWQuaHRtbCkgb2YgdGhlIHN0YXRlbWVudFxuICovXG5leHBvcnQgY2xhc3MgRGVlcHJhY2VyIGV4dGVuZHMgUG9saWN5U3RhdGVtZW50IHtcbiAgcHVibGljIHNlcnZpY2VQcmVmaXggPSAnZGVlcHJhY2VyJztcblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gYWRkIGFjY2VzcyBmb3IgYSBwcml2YXRlIGxlYWRlcmJvYXJkXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZVc2VyVG9rZW4oKVxuICAgKiAtIC5pZk11bHRpVXNlcigpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kZWVwcmFjZXIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2RlZXByYWNlci1tYW5hZ2UtY29tbXVuaXR5LXJhY2VzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0FkZExlYWRlcmJvYXJkQWNjZXNzUGVybWlzc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQWRkTGVhZGVyYm9hcmRBY2Nlc3NQZXJtaXNzaW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0cmlldmUgaW5mb3JtYXRpb24gb2YgdGhlIEtNUyBrZXkgdGhhdCB0aGUgdXNlci