import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class Policy { PolicyDocument ! : { [ key ] : any ; } ; PolicyName ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface RoleProperties { AssumeRolePolicyDocument : { [ key ] : any ; } ; Description ? : Value < string > ; ManagedPolicyArns ? : List < Value < string > > ; MaxSessionDuration ? : Value < number > ; Path ? : Value < string > ; PermissionsBoundary ? : Value < string > ; Policies ? : List < Policy > ; RoleName ? : Value < string > ; Tags ? : List < ResourceTag > ; } export default class Role extends ResourceBase < RoleProperties > { static Policy = Policy ; constructor ( properties ) { super ( 'AWS::IAM::Role' , properties ) ; } }