import { AccessLevelList } from '../shared/access-level' ; import { PolicyStatement } from '../shared' ; param sid export class Rum extends PolicyStatement { public servicePrefix = 'rum' ; param sid constructor ( sid ? ) { super ( sid ) ; } /**
     * Grants permission to create appMonitor metadata
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * Dependent actions:
     * - iam:CreateServiceLinkedRole
     * - iam:GetRole
     *
     * https://docs.aws.amazon.com/rum/latest/APIReference/API_CreateAppMonitor.html
     */ public toCreateAppMonitor ( ) { return this . to ( 'CreateAppMonitor' ) ; } /**
     * Grants permission to delete appMonitor metadata
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/rum/latest/APIReference/API_DeleteAppMonitor.html
     */ public toDeleteAppMonitor ( ) { return this . to ( 'DeleteAppMonitor' ) ; } /**
     * Grants permission to get appMonitor metadata
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/rum/latest/APIReference/API_GetAppMonitor.html
     */ public toGetAppMonitor ( ) { return this . to ( 'GetAppMonitor' ) ; } /**
     * Grants permission to get appMonitor data
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/rum/latest/APIReference/API_GetAppMonitorData.html
     */ public toGetAppMonitorData ( ) { return this . to ( 'GetAppMonitorData' ) ; } /**
     * Grants permission to list appMonitors metadata
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/rum/latest/APIReference/API_ListAppMonitors.html
     */ public toListAppMonitors ( ) { return this . to ( 'ListAppMonitors' ) ; } /**
     * Grants permission to list tags for resources
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/rum/latest/APIReference/API_ListTagsForResource.html
     */ public toListTagsForResource ( ) { return this . to ( 'ListTagsForResource' ) ; } /**
     * Grants permission to put RUM events for appmonitor
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/rum/latest/APIReference/API_PutRumEvents.html
     */ public toPutRumEvents ( ) { return this . to ( 'PutRumEvents' ) ; } /**
     * Grants permission to tag resources
     *
     * Access Level: Tagging
     *
     * https://docs.aws.amazon.com/rum/latest/APIReference/API_TagResource.html
     */ public toTagResource ( ) { return this . to ( 'TagResource' ) ; } /**
     * Grants permission to untag resources
     *
     * Access Level: Tagging
     *
     * https://docs.aws.amazon.com/rum/latest/APIReference/API_UntagResource.html
     */ public toUntagResource ( ) { return this . to ( 'UntagResource' ) ; } /**
     * Grants permission to update appmonitor metadata
     *
     * Access Level: Write
     *
     * Dependent actions:
     * - iam:CreateServiceLinkedRole
     * - iam:GetRole
     *
     * https://docs.aws.amazon.com/rum/latest/APIReference/API_UpdateAppMonitor.html
     */ public toUpdateAppMonitor ( ) { return this . to ( 'UpdateAppMonitor' ) ; } protected accessLevelList : AccessLevelList = { Write : [ 'CreateAppMonitor' , 'DeleteAppMonitor' , 'PutRumEvents' , 'UpdateAppMonitor' ] , Read : [ 'GetAppMonitor' , 'GetAppMonitorData' , 'ListTagsForResource' ] , List : [ 'ListAppMonitors' ] , Tagging : [ 'TagResource' , 'UntagResource' ] } ; param name param account param region param partition public onAppMonitorResource ( name , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:rum:${ region || '*' }:${ account || '*' }:appmonitor/${ name }` ) ; } }