UNPKG

cdk-iam-floyd

Version:

AWS IAM policy statement generator with fluent interface for AWS CDK

1,052 lines 98.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Nimble = void 0; const shared_1 = require("../../shared"); /** * Statement provider for service [nimble](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonnimblestudio.html). * * @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement */ class Nimble extends shared_1.PolicyStatement { /** * Grants permission to accept EULAs * * Access Level: Write * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_AcceptEulas.html */ toAcceptEulas() { return this.to('AcceptEulas'); } /** * Grants permission to create a launch profile * * Access Level: Write * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsRequestTag() * * Dependent actions: * - ec2:CreateNetworkInterface * - ec2:DescribeNatGateways * - ec2:DescribeNetworkAcls * - ec2:DescribeRouteTables * - ec2:DescribeSubnets * - ec2:DescribeVpcEndpoints * - ec2:RunInstances * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_CreateLaunchProfile.html */ toCreateLaunchProfile() { return this.to('CreateLaunchProfile'); } /** * Grants permission to create a streaming image * * Access Level: Write * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsRequestTag() * * Dependent actions: * - ec2:DescribeImages * - ec2:DescribeSnapshots * - ec2:ModifyInstanceAttribute * - ec2:ModifySnapshotAttribute * - ec2:RegisterImage * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_CreateStreamingImage.html */ toCreateStreamingImage() { return this.to('CreateStreamingImage'); } /** * Grants permission to create a streaming session * * Access Level: Write * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsRequestTag() * * Dependent actions: * - ec2:CreateNetworkInterface * - ec2:CreateNetworkInterfacePermission * - nimble:GetLaunchProfile * - nimble:GetLaunchProfileInitialization * - nimble:ListEulaAcceptances * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_CreateStreamingSession.html */ toCreateStreamingSession() { return this.to('CreateStreamingSession'); } /** * Grants permission to create a StreamingSessionStream * * Access Level: Write * * Possible conditions: * - .ifRequesterPrincipalId() * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_CreateStreamingSessionStream.html */ toCreateStreamingSessionStream() { return this.to('CreateStreamingSessionStream'); } /** * Grants permission to create a studio * * Access Level: Write * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsRequestTag() * * Dependent actions: * - iam:PassRole * - sso:CreateManagedApplicationInstance * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_CreateStudio.html */ toCreateStudio() { return this.to('CreateStudio'); } /** * Grants permission to create a studio component. A studio component designates a network resource to which a launch profile will provide access * * Access Level: Write * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsRequestTag() * * Dependent actions: * - ds:AuthorizeApplication * - ds:DescribeDirectories * - ec2:DescribeSecurityGroups * - fsx:DescribeFileSystems * - iam:PassRole * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_CreateStudioComponent.html */ toCreateStudioComponent() { return this.to('CreateStudioComponent'); } /** * Grants permission to delete a launch profile * * Access Level: Write * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_DeleteLaunchProfile.html */ toDeleteLaunchProfile() { return this.to('DeleteLaunchProfile'); } /** * Grants permission to delete a launch profile member * * Access Level: Write * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_DeleteLaunchProfileMember.html */ toDeleteLaunchProfileMember() { return this.to('DeleteLaunchProfileMember'); } /** * Grants permission to delete a streaming image * * Access Level: Write * * Dependent actions: * - ec2:DeleteSnapshot * - ec2:DeregisterImage * - ec2:ModifyInstanceAttribute * - ec2:ModifySnapshotAttribute * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_DeleteStreamingImage.html */ toDeleteStreamingImage() { return this.to('DeleteStreamingImage'); } /** * Grants permission to delete a streaming session * * Access Level: Write * * Possible conditions: * - .ifRequesterPrincipalId() * * Dependent actions: * - ec2:DeleteNetworkInterface * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_DeleteStreamingSession.html */ toDeleteStreamingSession() { return this.to('DeleteStreamingSession'); } /** * Grants permission to delete a studio * * Access Level: Write * * Dependent actions: * - sso:DeleteManagedApplicationInstance * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_DeleteStudio.html */ toDeleteStudio() { return this.to('DeleteStudio'); } /** * Grants permission to delete a studio component * * Access Level: Write * * Dependent actions: * - ds:UnauthorizeApplication * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_DeleteStudioComponent.html */ toDeleteStudioComponent() { return this.to('DeleteStudioComponent'); } /** * Grants permission to delete a studio member * * Access Level: Write * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_DeleteStudioMember.html */ toDeleteStudioMember() { return this.to('DeleteStudioMember'); } /** * Grants permission to get a EULA * * Access Level: Read * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_GetEula.html */ toGetEula() { return this.to('GetEula'); } /** * Grants permission to allow Nimble Studio portal to show the appropriate features for this account * * Access Level: Read * * https://docs.aws.amazon.com/nimble-studio/latest/userguide/security-iam-service-with-iam.html */ toGetFeatureMap() { return this.to('GetFeatureMap'); } /** * Grants permission to get a launch profile * * Access Level: Read * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_GetLaunchProfile.html */ toGetLaunchProfile() { return this.to('GetLaunchProfile'); } /** * Grants permission to get a launch profile's details, which includes the summary of studio components and streaming images used by the launch profile * * Access Level: Read * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_GetLaunchProfileDetails.html */ toGetLaunchProfileDetails() { return this.to('GetLaunchProfileDetails'); } /** * Grants permission to get a launch profile initialization. A launch profile initialization is a dereferenced version of a launch profile, including attached studio component connection information * * Access Level: Read * * Dependent actions: * - ds:DescribeDirectories * - ec2:DescribeSecurityGroups * - fsx:DescribeFileSystems * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_GetLaunchProfileInitialization.html */ toGetLaunchProfileInitialization() { return this.to('GetLaunchProfileInitialization'); } /** * Grants permission to get a launch profile member * * Access Level: Read * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_GetLaunchProfileMember.html */ toGetLaunchProfileMember() { return this.to('GetLaunchProfileMember'); } /** * Grants permission to get a streaming image * * Access Level: Read * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_GetStreamingImage.html */ toGetStreamingImage() { return this.to('GetStreamingImage'); } /** * Grants permission to get a streaming session * * Access Level: Read * * Possible conditions: * - .ifRequesterPrincipalId() * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_GetStreamingSession.html */ toGetStreamingSession() { return this.to('GetStreamingSession'); } /** * Grants permission to get a streaming session backup * * Access Level: Read * * Possible conditions: * - .ifRequesterPrincipalId() * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_GetStreamingSessionBackup.html */ toGetStreamingSessionBackup() { return this.to('GetStreamingSessionBackup'); } /** * Grants permission to get a streaming session stream * * Access Level: Read * * Possible conditions: * - .ifRequesterPrincipalId() * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_GetStreamingSessionStream.html */ toGetStreamingSessionStream() { return this.to('GetStreamingSessionStream'); } /** * Grants permission to get a studio * * Access Level: Read * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_GetStudio.html */ toGetStudio() { return this.to('GetStudio'); } /** * Grants permission to get a studio component * * Access Level: Read * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_GetStudioComponent.html */ toGetStudioComponent() { return this.to('GetStudioComponent'); } /** * Grants permission to get a studio member * * Access Level: Read * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_GetStudioMember.html */ toGetStudioMember() { return this.to('GetStudioMember'); } /** * Grants permission to list EULA acceptances * * Access Level: Read * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_ListEulaAcceptances.html */ toListEulaAcceptances() { return this.to('ListEulaAcceptances'); } /** * Grants permission to list EULAs * * Access Level: Read * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_ListEulas.html */ toListEulas() { return this.to('ListEulas'); } /** * Grants permission to list launch profile members * * Access Level: Read * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_ListLaunchProfileMembers.html */ toListLaunchProfileMembers() { return this.to('ListLaunchProfileMembers'); } /** * Grants permission to list launch profiles * * Access Level: Read * * Possible conditions: * - .ifPrincipalId() * - .ifRequesterPrincipalId() * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_ListLaunchProfiles.html */ toListLaunchProfiles() { return this.to('ListLaunchProfiles'); } /** * Grants permission to list streaming images * * Access Level: Read * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_ListStreamingImages.html */ toListStreamingImages() { return this.to('ListStreamingImages'); } /** * Grants permission to list streaming session backups * * Access Level: Read * * Possible conditions: * - .ifRequesterPrincipalId() * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_ListStreamingSessionBackups.html */ toListStreamingSessionBackups() { return this.to('ListStreamingSessionBackups'); } /** * Grants permission to list streaming sessions * * Access Level: Read * * Possible conditions: * - .ifCreatedBy() * - .ifOwnedBy() * - .ifRequesterPrincipalId() * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_ListStreamingSessions.html */ toListStreamingSessions() { return this.to('ListStreamingSessions'); } /** * Grants permission to list studio components * * Access Level: Read * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_ListStudioComponents.html */ toListStudioComponents() { return this.to('ListStudioComponents'); } /** * Grants permission to list studio members * * Access Level: Read * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_ListStudioMembers.html */ toListStudioMembers() { return this.to('ListStudioMembers'); } /** * Grants permission to list all studios * * Access Level: Read * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_ListStudios.html */ toListStudios() { return this.to('ListStudios'); } /** * Grants permission to list all tags on a Nimble Studio resource * * Access Level: Read * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_ListTagsForResource.html */ toListTagsForResource() { return this.to('ListTagsForResource'); } /** * Grants permission to add/update launch profile members * * Access Level: Write * * Dependent actions: * - sso-directory:DescribeUsers * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_PutLaunchProfileMembers.html */ toPutLaunchProfileMembers() { return this.to('PutLaunchProfileMembers'); } /** * Grants permission to report metrics and logs for the Nimble Studio portal to monitor application health * * Access Level: Write * * https://docs.aws.amazon.com/nimble-studio/latest/userguide/security-iam-service-with-iam.html */ toPutStudioLogEvents() { return this.to('PutStudioLogEvents'); } /** * Grants permission to add/update studio members * * Access Level: Write * * Dependent actions: * - sso-directory:DescribeUsers * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_PutStudioMembers.html */ toPutStudioMembers() { return this.to('PutStudioMembers'); } /** * Grants permission to start a streaming session * * Access Level: Write * * Possible conditions: * - .ifRequesterPrincipalId() * * Dependent actions: * - nimble:GetLaunchProfile * - nimble:GetLaunchProfileMember * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_StartStreamingSession.html */ toStartStreamingSession() { return this.to('StartStreamingSession'); } /** * Grants permission to repair the studio's AWS IAM Identity Center configuration * * Access Level: Write * * Dependent actions: * - sso:CreateManagedApplicationInstance * - sso:GetManagedApplicationInstance * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_StartStudioSSOConfigurationRepair.html */ toStartStudioSSOConfigurationRepair() { return this.to('StartStudioSSOConfigurationRepair'); } /** * Grants permission to stop a streaming session * * Access Level: Write * * Possible conditions: * - .ifRequesterPrincipalId() * * Dependent actions: * - nimble:GetLaunchProfile * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_StopStreamingSession.html */ toStopStreamingSession() { return this.to('StopStreamingSession'); } /** * Grants permission to add or overwrite one or more tags for the specified Nimble Studio resource * * Access Level: Tagging * * Possible conditions: * - .ifAwsRequestTag() * - .ifAwsTagKeys() * - .ifAwsResourceTag() * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_TagResource.html */ toTagResource() { return this.to('TagResource'); } /** * Grants permission to disassociate one or more tags from the specified Nimble Studio resource * * Access Level: Tagging * * Possible conditions: * - .ifAwsTagKeys() * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_UntagResource.html */ toUntagResource() { return this.to('UntagResource'); } /** * Grants permission to update a launch profile * * Access Level: Write * * Dependent actions: * - ec2:DescribeNatGateways * - ec2:DescribeNetworkAcls * - ec2:DescribeRouteTables * - ec2:DescribeSubnets * - ec2:DescribeVpcEndpoints * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_UpdateLaunchProfile.html */ toUpdateLaunchProfile() { return this.to('UpdateLaunchProfile'); } /** * Grants permission to update a launch profile member * * Access Level: Write * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_UpdateLaunchProfileMember.html */ toUpdateLaunchProfileMember() { return this.to('UpdateLaunchProfileMember'); } /** * Grants permission to update a streaming image * * Access Level: Write * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_UpdateStreamingImage.html */ toUpdateStreamingImage() { return this.to('UpdateStreamingImage'); } /** * Grants permission to update a studio * * Access Level: Write * * Dependent actions: * - iam:PassRole * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_UpdateStudio.html */ toUpdateStudio() { return this.to('UpdateStudio'); } /** * Grants permission to update a studio component * * Access Level: Write * * Dependent actions: * - ds:AuthorizeApplication * - ds:DescribeDirectories * - ec2:DescribeSecurityGroups * - fsx:DescribeFileSystems * - iam:PassRole * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_UpdateStudioComponent.html */ toUpdateStudioComponent() { return this.to('UpdateStudioComponent'); } /** * Adds a resource of type studio to the statement * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_Studio.html * * @param studioId - Identifier for the studioId. * @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: * - .ifAwsRequestTag() * - .ifAwsResourceTag() * - .ifAwsTagKeys() * - .ifStudioId() */ onStudio(studioId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:nimble:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:studio/${studioId}`); } /** * Adds a resource of type streaming-image to the statement * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_StreamingImage.html * * @param streamingImageId - Identifier for the streamingImageId. * @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: * - .ifAwsRequestTag() * - .ifAwsResourceTag() * - .ifAwsTagKeys() * - .ifStudioId() */ onStreamingImage(streamingImageId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:nimble:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:streaming-image/${streamingImageId}`); } /** * Adds a resource of type studio-component to the statement * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_StudioComponent.html * * @param studioComponentId - Identifier for the studioComponentId. * @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: * - .ifAwsRequestTag() * - .ifAwsResourceTag() * - .ifAwsTagKeys() * - .ifStudioId() */ onStudioComponent(studioComponentId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:nimble:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:studio-component/${studioComponentId}`); } /** * Adds a resource of type launch-profile to the statement * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_LaunchProfile.html * * @param launchProfileId - Identifier for the launchProfileId. * @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: * - .ifAwsRequestTag() * - .ifAwsResourceTag() * - .ifAwsTagKeys() * - .ifStudioId() */ onLaunchProfile(launchProfileId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:nimble:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:launch-profile/${launchProfileId}`); } /** * Adds a resource of type streaming-session to the statement * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_StreamingSession.html * * @param streamingSessionId - Identifier for the streamingSessionId. * @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: * - .ifAwsRequestTag() * - .ifAwsResourceTag() * - .ifAwsTagKeys() * - .ifCreatedBy() * - .ifOwnedBy() */ onStreamingSession(streamingSessionId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:nimble:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:streaming-session/${streamingSessionId}`); } /** * Adds a resource of type streaming-session-backup to the statement * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_StreamingSessionBackup.html * * @param streamingSessionBackupId - Identifier for the streamingSessionBackupId. * @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: * - .ifAwsRequestTag() * - .ifAwsResourceTag() * - .ifAwsTagKeys() * - .ifOwnedBy() */ onStreamingSessionBackup(streamingSessionBackupId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:nimble:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:streaming-session-backup/${streamingSessionBackupId}`); } /** * Adds a resource of type eula to the statement * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_Eula.html * * @param eulaId - Identifier for the eulaId. * @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. */ onEula(eulaId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:nimble:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:eula/${eulaId}`); } /** * Adds a resource of type eula-acceptance to the statement * * https://docs.aws.amazon.com/nimble-studio/latest/APIReference/API_EulaAcceptance.html * * @param eulaAcceptanceId - Identifier for the eulaAcceptanceId. * @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: * - .ifStudioId() */ onEulaAcceptance(eulaAcceptanceId, account, region, partition) { return this.on(`arn:${partition ?? this.defaultPartition}:nimble:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:eula-acceptance/${eulaAcceptanceId}`); } /** * Filters access by a tag key and value pair that is allowed in the request * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag * * Applies to actions: * - .toCreateLaunchProfile() * - .toCreateStreamingImage() * - .toCreateStreamingSession() * - .toCreateStudio() * - .toCreateStudioComponent() * - .toTagResource() * * Applies to resource types: * - studio * - streaming-image * - studio-component * - launch-profile * - streaming-session * - streaming-session-backup * * @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 a tag key and value pair of a resource * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag * * Applies to actions: * - .toTagResource() * * Applies to resource types: * - studio * - streaming-image * - studio-component * - launch-profile * - streaming-session * - streaming-session-backup * * @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 a list of tag keys that are allowed in the request * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys * * Applies to actions: * - .toCreateLaunchProfile() * - .toCreateStreamingImage() * - .toCreateStreamingSession() * - .toCreateStudio() * - .toCreateStudioComponent() * - .toTagResource() * - .toUntagResource() * * Applies to resource types: * - studio * - streaming-image * - studio-component * - launch-profile * - streaming-session * - streaming-session-backup * * @param value The value(s) to check * @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike` */ ifAwsTagKeys(value, operator) { return this.if(`aws:TagKeys`, value, operator ?? 'StringLike'); } /** * Filters access by the createdBy request parameter or the ID of the creator of the resource * * https://docs.aws.amazon.com/nimble-studio/latest/userguide/security-iam-service-with-iam.html * * Applies to actions: * - .toListStreamingSessions() * * Applies to resource types: * - streaming-session * * @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` */ ifCreatedBy(value, operator) { return this.if(`createdBy`, value, operator ?? 'StringLike'); } /** * Filters access by the ownedBy request parameter or the ID of the owner of the resource * * https://docs.aws.amazon.com/nimble-studio/latest/userguide/security-iam-service-with-iam.html * * Applies to actions: * - .toListStreamingSessions() * * Applies to resource types: * - streaming-session * - streaming-session-backup * * @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` */ ifOwnedBy(value, operator) { return this.if(`ownedBy`, value, operator ?? 'StringLike'); } /** * Filters access by the principalId request parameter * * https://docs.aws.amazon.com/nimble-studio/latest/userguide/security-iam-service-with-iam.html * * Applies to actions: * - .toListLaunchProfiles() * * @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` */ ifPrincipalId(value, operator) { return this.if(`principalId`, value, operator ?? 'StringLike'); } /** * Filters access by the ID of the logged in user * * https://docs.aws.amazon.com/nimble-studio/latest/userguide/security-iam-service-with-iam.html * * Applies to actions: * - .toCreateStreamingSessionStream() * - .toDeleteStreamingSession() * - .toGetStreamingSession() * - .toGetStreamingSessionBackup() * - .toGetStreamingSessionStream() * - .toListLaunchProfiles() * - .toListStreamingSessionBackups() * - .toListStreamingSessions() * - .toStartStreamingSession() * - .toStopStreamingSession() * * @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` */ ifRequesterPrincipalId(value, operator) { return this.if(`requesterPrincipalId`, value, operator ?? 'StringLike'); } /** * Filters access by a specific studio * * https://docs.aws.amazon.com/nimble-studio/latest/userguide/security-iam-service-with-iam.html * * Applies to resource types: * - studio * - streaming-image * - studio-component * - launch-profile * - eula-acceptance * * @param value The value(s) to check * @param operator Works with [arn operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_ARN). **Default:** `ArnLike` */ ifStudioId(value, operator) { return this.if(`studioId`, value, operator ?? 'ArnLike'); } /** * Statement provider for service [nimble](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonnimblestudio.html). * */ constructor(props) { super(props); this.servicePrefix = 'nimble'; this.accessLevelList = { Write: [ 'AcceptEulas', 'CreateLaunchProfile', 'CreateStreamingImage', 'CreateStreamingSession', 'CreateStreamingSessionStream', 'CreateStudio', 'CreateStudioComponent', 'DeleteLaunchProfile', 'DeleteLaunchProfileMember', 'DeleteStreamingImage', 'DeleteStreamingSession', 'DeleteStudio', 'DeleteStudioComponent', 'DeleteStudioMember', 'PutLaunchProfileMembers', 'PutStudioLogEvents', 'PutStudioMembers', 'StartStreamingSession', 'StartStudioSSOConfigurationRepair', 'StopStreamingSession', 'UpdateLaunchProfile', 'UpdateLaunchProfileMember', 'UpdateStreamingImage', 'UpdateStudio', 'UpdateStudioComponent' ], Read: [ 'GetEula', 'GetFeatureMap', 'GetLaunchProfile', 'GetLaunchProfileDetails', 'GetLaunchProfileInitialization', 'GetLaunchProfileMember', 'GetStreamingImage', 'GetStreamingSession', 'GetStreamingSessionBackup', 'GetStreamingSessionStream', 'GetStudio', 'GetStudioComponent', 'GetStudioMember', 'ListEulaAcceptances', 'ListEulas', 'ListLaunchProfileMembers', 'ListLaunchProfiles', 'ListStreamingImages', 'ListStreamingSessionBackups', 'ListStreamingSessions', 'ListStudioComponents', 'ListStudioMembers', 'ListStudios', 'ListTagsForResource' ], Tagging: [ 'TagResource', 'UntagResource' ] }; } } exports.Nimble = Nimble; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmltYmxlc3R1ZGlvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmltYmxlc3R1ZGlvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUF5RDtBQUd6RDs7OztHQUlHO0FBQ0gsTUFBYSxNQUFPLFNBQVEsd0JBQWU7SUFHekM7Ozs7OztPQU1HO0lBQ0ksYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BbUJHO0lBQ0kscUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FpQkc7SUFDSSxzQkFBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7OztPQWlCRztJQUNJLHdCQUF3QjtRQUM3QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksOEJBQThCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNJLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FpQkc7SUFDSSx1QkFBdUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN4QyxD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Z0JBQ3BCLHlCQUF5QjtnQkFDekIsb0JBQW9CO2dCQUNwQixrQkFBa0I7Z0JBQ2xCLHVCQUF1QjtnQkFDdkIsbUNBQW1DO2dCQUNuQyxzQkFBc0I7Z0JBQ3RCLHFCQUFxQjtnQkFDckIsMkJBQTJCO2dCQUMzQixzQkFBc0I7Z0JBQ3RCLGNBQWM7Z0JBQ2QsdUJBQXVCO2FBQ3hCO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLFNBQVM7Z0JBQ1QsZUFBZTtnQkFDZixrQkFBa0I7Z0JBQ2xCLHlCQUF5QjtnQkFDekIsZ0NBQWdDO2dCQUNoQyx3QkFBd0I7Z0JBQ3hCLG1CQUFtQjtnQkFDbkIscUJBQXFCO2dCQUNyQiwyQkFBMkI7Z0JBQzNCLDJCQUEyQjtnQkFDM0IsV0FBVztnQkFDWCxvQkFBb0I7Z0JBQ3BCLGlCQUFpQjtnQkFDakIscUJBQXFCO2dCQUNyQixXQUFXO2dCQUNYLDBCQUEwQjtnQkFDMUIsb0JBQW9CO2dCQUNwQixxQkFBcUI7Z0JBQ3JCLDZCQUE2QjtnQkFDN0IsdUJBQXVCO2dCQUN2QixzQkFBc0I7Z0JBQ3RCLG1CQUFtQjtnQkFDbkIsYUFBYTtnQkFDYixxQkFBcUI7YUFDdEI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsYUFBYTtnQkFDYixlQUFlO2FBQ2hCO1NBQ0YsQ0FBQztJQWlWRixDQUFDO0NBQ0Y7QUFybENELHdCQXFsQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2Nlc3NMZXZlbExpc3QgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWNjZXNzLWxldmVsJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCwgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHsgYXdzX2lhbSBhcyBpYW0gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuLyoqXG4gKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW25pbWJsZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYW1hem9ubmltYmxlc3R1ZGlvLmh0bWwpLlxuICpcbiAqIEBwYXJhbSBzaWQgW1NJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19zaWQuaHRtbCkgb2YgdGhlIHN0YXRlbWVudFxuICovXG5leHBvcnQgY2xhc3MgTmltYmxlIGV4dGVuZHMgUG9saWN5U3RhdGVtZW50IHtcbiAgcHVibGljIHNlcnZpY2VQcmVmaXggPSAnbmltYmxlJztcblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gYWNjZXB0IEVVTEFzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL25pbWJsZS1zdHVkaW8vbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQWNjZXB0RXVsYXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQWNjZXB0RXVsYXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0FjY2VwdEV1bGFzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYX