## cdk-aws-sagemaker-role-manager
## Usage
### Create Role from ML Activity with VPC and KMS conditions
```ts
import { Stack } from 'aws-cdk-lib';
import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager';
const stack = new Stack(app, 'CdkRoleManagerDemo');
const activity = Activity.manageJobs(stack, 'id1', {
rolesToPass: [iam.Role.fromRoleName('Enter Name')],
subnets: [ec2.Subnet.fromSubnetId('Enter Id')],
securityGroups: [ec2.SecurityGroup.fromSecurityGroupId('Enter Id')],
dataKeys: [kms.Key.fromKeyArn('Enter Key Arn')],
volumeKeys: [kms.Key.fromKeyArn('Enter Key Arn')],
});
activity.createRole(stack, 'role id', 'Enter Name');
```
### Create Role from ML Activity without VPC and KMS conditions
```ts
import { Stack } from 'aws-cdk-lib';
import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager';
const stack = new Stack(app, 'CdkRoleManagerDemo');
const activity = Activity.manageJobs(this, 'id1', {
rolesToPass: [iam.Role.fromRoleName('Enter Name')],
});
activity.createRole(this, 'role id', 'Enter Name', 'Enter Description');
```
### Create Role from Data Scientist ML Persona
```ts
import { Stack } from 'aws-cdk-lib';
import { Activity, Persona } from '@cdklabs/cdk-aws-sagemaker-role-manager';
const stack = new Stack(app, 'CdkRoleManagerDemo');
let persona = new Persona(this, 'persona id', {
activities: [
Activity.useStudioApps(),
Activity.manageJobs(this, 'id1', {rolesToPass: [iam.Role.fromRoleName('Enter Name')]}),
Activity.manageModels(this, 'id2', {rolesToPass: [iam.Role.fromRoleName('Enter Name')]}),
Activity.manageExperiments(this, 'id3', {}),
Activity.searchExperiments(this, 'id4', {}),
Activity.accessBuckets(this, 'id5', {buckets: [s3.S3Bucket.fromBucketName('Enter Name')]})
],
subnets: [ec2.Subnet.fromSubnetId('Enter Id')],
securityGroups: [ec2.SecurityGroup.fromSecurityGroupId('Enter Id')],
dataKeys: [kms.Key.fromKeyArn('Enter Key Arn')],
volumeKeys: [kms.Key.fromKeyArn('Enter Key Arn')],
});
persona.createRole(this, 'role id', 'Enter Name', 'Enter Description');
```
### Create Role from Data Scientist ML Persona without vpc and kms global conditions
```ts
import { Stack } from 'aws-cdk-lib';
import { Activity, Persona } from '@cdklabs/cdk-aws-sagemaker-role-manager';
const stack = new Stack(app, 'CdkRoleManagerDemo');
// Please see below how to create the Data Scientist ML Persona using its ML Activities.
// You can update the following list with changes matching your usecase.
let persona = new Persona(this, 'persona id', {
activities: [
Activity.useStudioApps(),
Activity.manageJobs(this, 'id1', {rolesToPass: [iam.Role.fromRoleName('Enter Name')]}),
Activity.manageModels(this, 'id2', {rolesToPass: [iam.Role.fromRoleName('Enter Name')]}),
Activity.manageExperiments(this, 'id3', {}),
Activity.searchExperiments(this, 'id4', {}),
Activity.accessBuckets(this, 'id5', {buckets: [s3.S3Bucket.fromBucketName('Enter Name')]})
],
});
// We can create a role with Data Scientist persona permissions
const role = persona.createRole(this, 'role id', 'Enter Name', 'Enter Description');
```
### Create Role MLOps ML Persona
```ts
import { Stack } from 'aws-cdk-lib';
import { Activity, Persona } from '@cdklabs/cdk-aws-sagemaker-role-manager';
const stack = new Stack(app, 'CdkRoleManagerDemo');
let persona = new Persona(this, 'persona id', {
activities: [
Activity.useStudioApps(this, 'id1', {}),
Activity.manageModels(this, 'id2', {rolesToPass: [iam.Role.fromRoleName('Enter Name')]}),
Activity.manageEndpoints(this, 'id3',{rolesToPass: [iam.Role.fromRoleName('Enter Name')]}),
Activity.managePipelines(this, 'id4', {rolesToPass: [iam.Role.fromRoleName('Enter Name')]}),
Activity.searchExperiments(this, 'id5', {})
],
subnets: [ec2.Subnet.fromSubnetId('Enter Id')],
securityGroups: [ec2.SecurityGroup.fromSecurityGroupId('Enter Id')],
dataKeys: [kms.Key.fromKeyArn('Enter Key Arn')],
volumeKeys: [kms.Key.fromKeyArn('Enter Key Arn')],
});
const role = persona.createRole(this, 'role id', 'Enter Name', 'Enter Description');
```
### Create Role from MLOps ML Persona without vpc and kms global conditions
```ts
import { Stack } from 'aws-cdk-lib';
import { Activity, Persona } from '@cdklabs/cdk-aws-sagemaker-role-manager';
const stack = new Stack(app, 'CdkRoleManagerDemo');
let persona = new Persona(this, 'persona id', {
activities: [
Activity.useStudioApps(this, 'id1', {}),
Activity.manageModels(this, 'id2', {rolesToPass: [iam.Role.fromRoleName('Enter Name')]}),
Activity.manageEndpoints(this, 'id3',{rolesToPass: [iam.Role.fromRoleName('Enter Name')]}),
Activity.managePipelines(this, 'id4', {rolesToPass: [iam.Role.fromRoleName('Enter Name')]}),
Activity.searchExperiments(this, 'id5', {})
],
});
const role = persona.createRole(this, 'role id', 'Enter Name', 'Enter Description');
```
## Available ML Activities
| ML Activity Name | ML Activity Interface | ML Activity Description | ML Activity Required Parameters |
|------------------|---------------------------------|-----------------------------------------------------------------------------------------------------------|---------------------------------|
| Access Required AWS Services | Activity.accessAwsServices() | Permissions to access S3, ECR, Cloudwatch and EC2. Required for execution roles for jobs and endpoints. | ecrRepositories, s3Buckets |
| Run Studio Applications | Activity.runStudioApps() | Permissions to operate within a Studio environment. Required for domain and user-profile execution roles. | rolesToPass |
| Manage ML Jobs | Activity.manageJobs() | Permissions to manage SageMaker jobs across their lifecycles. | rolesToPass |
| Manage Models | Activity.manageModels() | Permissions to manage SageMaker models and Model Registry. | rolesToPass |
| Manage Endpoints | Activity.manageEndpoints() | Permissions to manage SageMaker Endpoint deployments and updates. | No required parameters |
| Manage Pipelines | Activity.managePipelines() | Permissions to manage SageMaker Pipelines and pipeline executions. | rolesToPass |
| Manage Experiments | Activity.manageExperiments() | Permissions to manage experiments and trials. | No required parameters |
| Search and visualize experiments | Activity.visualizeExperiments() | Permissions to audit, query lineage and visualize experiments. | No required parameters |
| Manage Model Monitoring | Activity.monitorModels() | Permissions to manage monitoring schedules for SageMaker Model Monitor. | rolesToPass |
| S3 Full Access | Activity.accessS3AllResources() | Permissions to perform all S3 operations | No required parameters |
| S3 Bucket Access | Activity.accessS3Buckets() | Permissions to perform operations on specified buckets. | s3Buckets |
| Query Athena Workgroups | Activity.queryAthenaGroups() | Permissions to execute and manage Amazon Athena queries. | athenaWorkgroupNames |
| Manage Glue Tables | Activity.manageGlueTables() | Permissions to create and manage Glue tables for SageMaker Feature Store and Data Wrangler. | s3Buckets, glueDatabaseNames |
## Security
See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information.
## License
This project is licensed under the Apache-2.0 License.
# API Reference
## Constructs
### Activity
#### Methods
| **Name** | **Description** |
| --- | --- |
| toString
| Returns a string representation of this construct. |
| createPolicy
| Creates policy with permissions of activity. |
| createPrincipal
| Creates ML Activity service principal using ML Activity trust template. |
| createRole
| Creates role with permissions of activity. |
| customizeKMS
| *No description.* |
| customizeVPC
| *No description.* |
| grantPermissionsTo
| Grant permissions of activity to identity. |
---
##### `toString`
```typescript
public toString(): string
```
Returns a string representation of this construct.
##### `createPolicy`
```typescript
public createPolicy(scope: Construct): Policy
```
Creates policy with permissions of activity.
###### `scope`Required
- *Type:* constructs.Construct
the Construct scope.
---
##### `createPrincipal`
```typescript
public createPrincipal(): ServicePrincipal
```
Creates ML Activity service principal using ML Activity trust template.
##### `createRole`
```typescript
public createRole(scope: Construct, id: string, roleNameSuffix: string, roleDescription?: string): IRole
```
Creates role with permissions of activity.
###### `scope`Required
- *Type:* constructs.Construct
the Construct scope.
---
###### `id`Required
- *Type:* string
the resource id.
---
###### `roleNameSuffix`Required
- *Type:* string
the name suffix of the role that will be created, if empty the role will have the name of the activity.
---
###### `roleDescription`Optional
- *Type:* string
the description of the role that will be created.
---
##### `customizeKMS`
```typescript
public customizeKMS(dataKeys?: IKey[], volumeKeys?: IKey[]): void
```
###### `dataKeys`Optional
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
###### `volumeKeys`Optional
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `customizeVPC`
```typescript
public customizeVPC(subnets?: ISubnet[], securityGroups?: ISecurityGroup[]): void
```
###### `subnets`Optional
- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]
---
###### `securityGroups`Optional
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
---
##### `grantPermissionsTo`
```typescript
public grantPermissionsTo(identity: IGrantable): Grant
```
Grant permissions of activity to identity.
###### `identity`Required
- *Type:* aws-cdk-lib.aws_iam.IGrantable
identity to be granted permissions.
---
#### Static Functions
| **Name** | **Description** |
| --- | --- |
| isConstruct
| Checks if `x` is a construct. |
| accessAwsServices
| *No description.* |
| accessS3AllResources
| *No description.* |
| accessS3AllResourcesV2
| *No description.* |
| accessS3Buckets
| *No description.* |
| manageEndpoints
| *No description.* |
| manageExperiments
| *No description.* |
| manageGlueTables
| *No description.* |
| manageJobs
| *No description.* |
| manageModels
| *No description.* |
| managePipelines
| *No description.* |
| monitorModels
| *No description.* |
| queryAthenaGroups
| *No description.* |
| runStudioApps
| *No description.* |
| runStudioAppsV2
| *No description.* |
| visualizeExperiments
| *No description.* |
---
##### ~~`isConstruct`~~
```typescript
import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager'
Activity.isConstruct(x: any)
```
Checks if `x` is a construct.
###### `x`Required
- *Type:* any
Any object.
---
##### `accessAwsServices`
```typescript
import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager'
Activity.accessAwsServices(scope: Construct, id: string, options: AccessAwsServicesOptions)
```
###### `scope`Required
- *Type:* constructs.Construct
---
###### `id`Required
- *Type:* string
---
###### `options`Required
- *Type:* AccessAwsServicesOptions
---
##### `accessS3AllResources`
```typescript
import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager'
Activity.accessS3AllResources(scope: Construct, id: string, options: AccessS3AllResourcesOptions)
```
###### `scope`Required
- *Type:* constructs.Construct
---
###### `id`Required
- *Type:* string
---
###### `options`Required
- *Type:* AccessS3AllResourcesOptions
---
##### `accessS3AllResourcesV2`
```typescript
import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager'
Activity.accessS3AllResourcesV2(scope: Construct, id: string, options: AccessS3AllResourcesV2Options)
```
###### `scope`Required
- *Type:* constructs.Construct
---
###### `id`Required
- *Type:* string
---
###### `options`Required
- *Type:* AccessS3AllResourcesV2Options
---
##### `accessS3Buckets`
```typescript
import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager'
Activity.accessS3Buckets(scope: Construct, id: string, options: AccessS3BucketsOptions)
```
###### `scope`Required
- *Type:* constructs.Construct
---
###### `id`Required
- *Type:* string
---
###### `options`Required
- *Type:* AccessS3BucketsOptions
---
##### `manageEndpoints`
```typescript
import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager'
Activity.manageEndpoints(scope: Construct, id: string, options: ManageEndpointsOptions)
```
###### `scope`Required
- *Type:* constructs.Construct
---
###### `id`Required
- *Type:* string
---
###### `options`Required
- *Type:* ManageEndpointsOptions
---
##### `manageExperiments`
```typescript
import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager'
Activity.manageExperiments(scope: Construct, id: string, options: ManageExperimentsOptions)
```
###### `scope`Required
- *Type:* constructs.Construct
---
###### `id`Required
- *Type:* string
---
###### `options`Required
- *Type:* ManageExperimentsOptions
---
##### `manageGlueTables`
```typescript
import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager'
Activity.manageGlueTables(scope: Construct, id: string, options: ManageGlueTablesOptions)
```
###### `scope`Required
- *Type:* constructs.Construct
---
###### `id`Required
- *Type:* string
---
###### `options`Required
- *Type:* ManageGlueTablesOptions
---
##### `manageJobs`
```typescript
import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager'
Activity.manageJobs(scope: Construct, id: string, options: ManageJobsOptions)
```
###### `scope`Required
- *Type:* constructs.Construct
---
###### `id`Required
- *Type:* string
---
###### `options`Required
- *Type:* ManageJobsOptions
---
##### `manageModels`
```typescript
import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager'
Activity.manageModels(scope: Construct, id: string, options: ManageModelsOptions)
```
###### `scope`Required
- *Type:* constructs.Construct
---
###### `id`Required
- *Type:* string
---
###### `options`Required
- *Type:* ManageModelsOptions
---
##### `managePipelines`
```typescript
import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager'
Activity.managePipelines(scope: Construct, id: string, options: ManagePipelinesOptions)
```
###### `scope`Required
- *Type:* constructs.Construct
---
###### `id`Required
- *Type:* string
---
###### `options`Required
- *Type:* ManagePipelinesOptions
---
##### `monitorModels`
```typescript
import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager'
Activity.monitorModels(scope: Construct, id: string, options: MonitorModelsOptions)
```
###### `scope`Required
- *Type:* constructs.Construct
---
###### `id`Required
- *Type:* string
---
###### `options`Required
- *Type:* MonitorModelsOptions
---
##### `queryAthenaGroups`
```typescript
import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager'
Activity.queryAthenaGroups(scope: Construct, id: string, options: QueryAthenaGroupsOptions)
```
###### `scope`Required
- *Type:* constructs.Construct
---
###### `id`Required
- *Type:* string
---
###### `options`Required
- *Type:* QueryAthenaGroupsOptions
---
##### `runStudioApps`
```typescript
import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager'
Activity.runStudioApps(scope: Construct, id: string, options: RunStudioAppsOptions)
```
###### `scope`Required
- *Type:* constructs.Construct
---
###### `id`Required
- *Type:* string
---
###### `options`Required
- *Type:* RunStudioAppsOptions
---
##### `runStudioAppsV2`
```typescript
import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager'
Activity.runStudioAppsV2(scope: Construct, id: string, options: RunStudioAppsV2Options)
```
###### `scope`Required
- *Type:* constructs.Construct
---
###### `id`Required
- *Type:* string
---
###### `options`Required
- *Type:* RunStudioAppsV2Options
---
##### `visualizeExperiments`
```typescript
import { Activity } from '@cdklabs/cdk-aws-sagemaker-role-manager'
Activity.visualizeExperiments(scope: Construct, id: string, options: VisualizeExperimentsOptions)
```
###### `scope`Required
- *Type:* constructs.Construct
---
###### `id`Required
- *Type:* string
---
###### `options`Required
- *Type:* VisualizeExperimentsOptions
---
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| node
| constructs.Node
| The tree node. |
| activityName
| string
| *No description.* |
| version
| number
| *No description.* |
| isKMSCustomized
| boolean
| *No description.* |
| isVPCCustomized
| boolean
| *No description.* |
---
##### `node`Required
```typescript
public readonly node: Node;
```
- *Type:* constructs.Node
The tree node.
---
##### `activityName`Required
```typescript
public readonly activityName: string;
```
- *Type:* string
---
##### `version`Required
```typescript
public readonly version: number;
```
- *Type:* number
---
##### `isKMSCustomized`Required
```typescript
public readonly isKMSCustomized: boolean;
```
- *Type:* boolean
---
##### `isVPCCustomized`Required
```typescript
public readonly isVPCCustomized: boolean;
```
- *Type:* boolean
---
#### Constants
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| ACCESS_AWS_SERVICES
| string
| *No description.* |
| ACCESS_S3_ALL_RESOURCES
| string
| *No description.* |
| ACCESS_S3_BUCKETS
| string
| *No description.* |
| ATHENA_WORKGROUP_NAMES_DEFAULT_VALUE
| string[]
| *No description.* |
| MANAGE_ENDPOINTS_ACTIVITY_NAME
| string
| *No description.* |
| MANAGE_EXPERIMENTS_ACTIVITY_NAME
| string
| *No description.* |
| MANAGE_GLUE_TABLES_ACTIVITY_NAME
| string
| *No description.* |
| MANAGE_JOBS_ACTIVITY_NAME
| string
| *No description.* |
| MANAGE_MODELS_ACTIVITY_NAME
| string
| *No description.* |
| MANAGE_PIPELINES_ACTIVITY_NAME
| string
| *No description.* |
| MONITOR_MODELS_ACTIVITY_NAME
| string
| *No description.* |
| QUERY_ATHENA_WORKGROUPS
| string
| *No description.* |
| RUN_STUDIO_APPS
| string
| *No description.* |
| VISUALIZE_EXPERIMENTS
| string
| *No description.* |
---
##### `ACCESS_AWS_SERVICES`Required
```typescript
public readonly ACCESS_AWS_SERVICES: string;
```
- *Type:* string
---
##### `ACCESS_S3_ALL_RESOURCES`Required
```typescript
public readonly ACCESS_S3_ALL_RESOURCES: string;
```
- *Type:* string
---
##### `ACCESS_S3_BUCKETS`Required
```typescript
public readonly ACCESS_S3_BUCKETS: string;
```
- *Type:* string
---
##### `ATHENA_WORKGROUP_NAMES_DEFAULT_VALUE`Required
```typescript
public readonly ATHENA_WORKGROUP_NAMES_DEFAULT_VALUE: string[];
```
- *Type:* string[]
---
##### `MANAGE_ENDPOINTS_ACTIVITY_NAME`Required
```typescript
public readonly MANAGE_ENDPOINTS_ACTIVITY_NAME: string;
```
- *Type:* string
---
##### `MANAGE_EXPERIMENTS_ACTIVITY_NAME`Required
```typescript
public readonly MANAGE_EXPERIMENTS_ACTIVITY_NAME: string;
```
- *Type:* string
---
##### `MANAGE_GLUE_TABLES_ACTIVITY_NAME`Required
```typescript
public readonly MANAGE_GLUE_TABLES_ACTIVITY_NAME: string;
```
- *Type:* string
---
##### `MANAGE_JOBS_ACTIVITY_NAME`Required
```typescript
public readonly MANAGE_JOBS_ACTIVITY_NAME: string;
```
- *Type:* string
---
##### `MANAGE_MODELS_ACTIVITY_NAME`Required
```typescript
public readonly MANAGE_MODELS_ACTIVITY_NAME: string;
```
- *Type:* string
---
##### `MANAGE_PIPELINES_ACTIVITY_NAME`Required
```typescript
public readonly MANAGE_PIPELINES_ACTIVITY_NAME: string;
```
- *Type:* string
---
##### `MONITOR_MODELS_ACTIVITY_NAME`Required
```typescript
public readonly MONITOR_MODELS_ACTIVITY_NAME: string;
```
- *Type:* string
---
##### `QUERY_ATHENA_WORKGROUPS`Required
```typescript
public readonly QUERY_ATHENA_WORKGROUPS: string;
```
- *Type:* string
---
##### `RUN_STUDIO_APPS`Required
```typescript
public readonly RUN_STUDIO_APPS: string;
```
- *Type:* string
---
##### `VISUALIZE_EXPERIMENTS`Required
```typescript
public readonly VISUALIZE_EXPERIMENTS: string;
```
- *Type:* string
---
### Persona
#### Initializers
```typescript
import { Persona } from '@cdklabs/cdk-aws-sagemaker-role-manager'
new Persona(scope: Construct, id: string, props: PersonaProps)
```
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| scope
| constructs.Construct
| *No description.* |
| id
| string
| *No description.* |
| props
| PersonaProps
| *No description.* |
---
##### `scope`Required
- *Type:* constructs.Construct
---
##### `id`Required
- *Type:* string
---
##### `props`Required
- *Type:* PersonaProps
---
#### Methods
| **Name** | **Description** |
| --- | --- |
| toString
| Returns a string representation of this construct. |
| createRole
| Creates role with permissions of persona. |
| customizeKMS
| *No description.* |
| customizeVPC
| *No description.* |
| grantPermissionsTo
| Grant permissions of activity to identity. |
---
##### `toString`
```typescript
public toString(): string
```
Returns a string representation of this construct.
##### `createRole`
```typescript
public createRole(scope: Construct, id: string, roleNameSuffix: string, roleDescription?: string): IRole
```
Creates role with permissions of persona.
###### `scope`Required
- *Type:* constructs.Construct
the Construct scope.
---
###### `id`Required
- *Type:* string
the resource id.
---
###### `roleNameSuffix`Required
- *Type:* string
the name suffix of the role that will be created, if empty the role will have the name of the activity.
---
###### `roleDescription`Optional
- *Type:* string
the description of the role that will be created.
---
##### `customizeKMS`
```typescript
public customizeKMS(dataKeys?: IKey[], volumeKeys?: IKey[]): void
```
###### `dataKeys`Optional
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
###### `volumeKeys`Optional
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `customizeVPC`
```typescript
public customizeVPC(subnets?: ISubnet[], securityGroups?: ISecurityGroup[]): void
```
###### `subnets`Optional
- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]
---
###### `securityGroups`Optional
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
---
##### `grantPermissionsTo`
```typescript
public grantPermissionsTo(identity: IGrantable): Grant
```
Grant permissions of activity to identity.
###### `identity`Required
- *Type:* aws-cdk-lib.aws_iam.IGrantable
identity to be granted permissions.
---
#### Static Functions
| **Name** | **Description** |
| --- | --- |
| isConstruct
| Checks if `x` is a construct. |
---
##### ~~`isConstruct`~~
```typescript
import { Persona } from '@cdklabs/cdk-aws-sagemaker-role-manager'
Persona.isConstruct(x: any)
```
Checks if `x` is a construct.
###### `x`Required
- *Type:* any
Any object.
---
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| node
| constructs.Node
| The tree node. |
| activities
| Activity[]
| *No description.* |
---
##### `node`Required
```typescript
public readonly node: Node;
```
- *Type:* constructs.Node
The tree node.
---
##### `activities`Required
```typescript
public readonly activities: Activity[];
```
- *Type:* Activity[]
---
## Structs
### AccessAwsServicesOptions
SageMaker Activity Static Function Options.
#### Initializer
```typescript
import { AccessAwsServicesOptions } from '@cdklabs/cdk-aws-sagemaker-role-manager'
const accessAwsServicesOptions: AccessAwsServicesOptions = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| securityGroups
| aws-cdk-lib.aws_ec2.ISecurityGroup[]
| *No description.* |
| subnets
| aws-cdk-lib.aws_ec2.ISubnet[]
| *No description.* |
| dataKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| volumeKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| ecrRepositories
| aws-cdk-lib.aws_ecr.IRepository[]
| *No description.* |
| s3Buckets
| aws-cdk-lib.aws_s3.IBucket[]
| *No description.* |
---
##### `securityGroups`Optional
```typescript
public readonly securityGroups: ISecurityGroup[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
---
##### `subnets`Optional
```typescript
public readonly subnets: ISubnet[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]
---
##### `dataKeys`Optional
```typescript
public readonly dataKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `volumeKeys`Optional
```typescript
public readonly volumeKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `ecrRepositories`Required
```typescript
public readonly ecrRepositories: IRepository[];
```
- *Type:* aws-cdk-lib.aws_ecr.IRepository[]
---
##### `s3Buckets`Required
```typescript
public readonly s3Buckets: IBucket[];
```
- *Type:* aws-cdk-lib.aws_s3.IBucket[]
---
### AccessS3AllResourcesOptions
#### Initializer
```typescript
import { AccessS3AllResourcesOptions } from '@cdklabs/cdk-aws-sagemaker-role-manager'
const accessS3AllResourcesOptions: AccessS3AllResourcesOptions = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| securityGroups
| aws-cdk-lib.aws_ec2.ISecurityGroup[]
| *No description.* |
| subnets
| aws-cdk-lib.aws_ec2.ISubnet[]
| *No description.* |
| dataKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| volumeKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
---
##### `securityGroups`Optional
```typescript
public readonly securityGroups: ISecurityGroup[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
---
##### `subnets`Optional
```typescript
public readonly subnets: ISubnet[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]
---
##### `dataKeys`Optional
```typescript
public readonly dataKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `volumeKeys`Optional
```typescript
public readonly volumeKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
### AccessS3AllResourcesV2Options
#### Initializer
```typescript
import { AccessS3AllResourcesV2Options } from '@cdklabs/cdk-aws-sagemaker-role-manager'
const accessS3AllResourcesV2Options: AccessS3AllResourcesV2Options = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| securityGroups
| aws-cdk-lib.aws_ec2.ISecurityGroup[]
| *No description.* |
| subnets
| aws-cdk-lib.aws_ec2.ISubnet[]
| *No description.* |
| dataKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| volumeKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
---
##### `securityGroups`Optional
```typescript
public readonly securityGroups: ISecurityGroup[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
---
##### `subnets`Optional
```typescript
public readonly subnets: ISubnet[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]
---
##### `dataKeys`Optional
```typescript
public readonly dataKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `volumeKeys`Optional
```typescript
public readonly volumeKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
### AccessS3BucketsOptions
#### Initializer
```typescript
import { AccessS3BucketsOptions } from '@cdklabs/cdk-aws-sagemaker-role-manager'
const accessS3BucketsOptions: AccessS3BucketsOptions = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| securityGroups
| aws-cdk-lib.aws_ec2.ISecurityGroup[]
| *No description.* |
| subnets
| aws-cdk-lib.aws_ec2.ISubnet[]
| *No description.* |
| dataKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| volumeKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| s3Buckets
| aws-cdk-lib.aws_s3.IBucket[]
| *No description.* |
---
##### `securityGroups`Optional
```typescript
public readonly securityGroups: ISecurityGroup[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
---
##### `subnets`Optional
```typescript
public readonly subnets: ISubnet[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]
---
##### `dataKeys`Optional
```typescript
public readonly dataKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `volumeKeys`Optional
```typescript
public readonly volumeKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `s3Buckets`Required
```typescript
public readonly s3Buckets: IBucket[];
```
- *Type:* aws-cdk-lib.aws_s3.IBucket[]
---
### ActivityProps
#### Initializer
```typescript
import { ActivityProps } from '@cdklabs/cdk-aws-sagemaker-role-manager'
const activityProps: ActivityProps = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| activityName
| string
| Name of the SageMaker Activity. |
| isCustomizationAvailableForKMS
| boolean
| Whether the activity supports customization for kms data keys and volume keys. |
| isCustomizationAvailableForVPC
| boolean
| Whether the activity supports customization for vpc subnets and vpc security groups. |
| athenaWorkgroupNames
| string[]
| Names of the Athena workgroups to give query permissions. |
| ecrRepositories
| aws-cdk-lib.aws_ecr.IRepository[]
| ECR Repositories to give image pull permissions. |
| glueDatabaseNames
| string[]
| Names of the Glue Databases to give permissions to search tables. |
| rolesToPass
| aws-cdk-lib.aws_iam.IRole[]
| Roles to allow passing as passed roles to actions. |
| s3Buckets
| aws-cdk-lib.aws_s3.IBucket[]
| S3 Buckets to give read and write permissions. |
| version
| number
| Version of the SageMaker Activity. |
---
##### `activityName`Required
```typescript
public readonly activityName: string;
```
- *Type:* string
Name of the SageMaker Activity.
This name will be used to name the IAM policy that is created from this Activity.
---
##### `isCustomizationAvailableForKMS`Required
```typescript
public readonly isCustomizationAvailableForKMS: boolean;
```
- *Type:* boolean
- *Default:* false
Whether the activity supports customization for kms data keys and volume keys.
---
##### `isCustomizationAvailableForVPC`Required
```typescript
public readonly isCustomizationAvailableForVPC: boolean;
```
- *Type:* boolean
- *Default:* false
Whether the activity supports customization for vpc subnets and vpc security groups.
---
##### `athenaWorkgroupNames`Optional
```typescript
public readonly athenaWorkgroupNames: string[];
```
- *Type:* string[]
- *Default:* none
Names of the Athena workgroups to give query permissions.
---
##### `ecrRepositories`Optional
```typescript
public readonly ecrRepositories: IRepository[];
```
- *Type:* aws-cdk-lib.aws_ecr.IRepository[]
- *Default:* none
ECR Repositories to give image pull permissions.
---
##### `glueDatabaseNames`Optional
```typescript
public readonly glueDatabaseNames: string[];
```
- *Type:* string[]
- *Default:* none
Names of the Glue Databases to give permissions to search tables.
---
##### `rolesToPass`Optional
```typescript
public readonly rolesToPass: IRole[];
```
- *Type:* aws-cdk-lib.aws_iam.IRole[]
- *Default:* none
Roles to allow passing as passed roles to actions.
---
##### `s3Buckets`Optional
```typescript
public readonly s3Buckets: IBucket[];
```
- *Type:* aws-cdk-lib.aws_s3.IBucket[]
- *Default:* none
S3 Buckets to give read and write permissions.
---
##### `version`Optional
```typescript
public readonly version: number;
```
- *Type:* number
- *Default:* 1
Version of the SageMaker Activity.
This version will be used to fetch the policy template that corresponds to the
Activity.
---
### KMSOptions
#### Initializer
```typescript
import { KMSOptions } from '@cdklabs/cdk-aws-sagemaker-role-manager'
const kMSOptions: KMSOptions = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| dataKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| volumeKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
---
##### `dataKeys`Optional
```typescript
public readonly dataKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `volumeKeys`Optional
```typescript
public readonly volumeKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
### ManageEndpointsOptions
#### Initializer
```typescript
import { ManageEndpointsOptions } from '@cdklabs/cdk-aws-sagemaker-role-manager'
const manageEndpointsOptions: ManageEndpointsOptions = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| securityGroups
| aws-cdk-lib.aws_ec2.ISecurityGroup[]
| *No description.* |
| subnets
| aws-cdk-lib.aws_ec2.ISubnet[]
| *No description.* |
| dataKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| volumeKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
---
##### `securityGroups`Optional
```typescript
public readonly securityGroups: ISecurityGroup[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
---
##### `subnets`Optional
```typescript
public readonly subnets: ISubnet[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]
---
##### `dataKeys`Optional
```typescript
public readonly dataKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `volumeKeys`Optional
```typescript
public readonly volumeKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
### ManageExperimentsOptions
#### Initializer
```typescript
import { ManageExperimentsOptions } from '@cdklabs/cdk-aws-sagemaker-role-manager'
const manageExperimentsOptions: ManageExperimentsOptions = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| securityGroups
| aws-cdk-lib.aws_ec2.ISecurityGroup[]
| *No description.* |
| subnets
| aws-cdk-lib.aws_ec2.ISubnet[]
| *No description.* |
| dataKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| volumeKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
---
##### `securityGroups`Optional
```typescript
public readonly securityGroups: ISecurityGroup[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
---
##### `subnets`Optional
```typescript
public readonly subnets: ISubnet[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]
---
##### `dataKeys`Optional
```typescript
public readonly dataKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `volumeKeys`Optional
```typescript
public readonly volumeKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
### ManageGlueTablesOptions
#### Initializer
```typescript
import { ManageGlueTablesOptions } from '@cdklabs/cdk-aws-sagemaker-role-manager'
const manageGlueTablesOptions: ManageGlueTablesOptions = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| securityGroups
| aws-cdk-lib.aws_ec2.ISecurityGroup[]
| *No description.* |
| subnets
| aws-cdk-lib.aws_ec2.ISubnet[]
| *No description.* |
| dataKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| volumeKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| glueDatabaseNames
| string[]
| *No description.* |
| s3Buckets
| aws-cdk-lib.aws_s3.IBucket[]
| *No description.* |
---
##### `securityGroups`Optional
```typescript
public readonly securityGroups: ISecurityGroup[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
---
##### `subnets`Optional
```typescript
public readonly subnets: ISubnet[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]
---
##### `dataKeys`Optional
```typescript
public readonly dataKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `volumeKeys`Optional
```typescript
public readonly volumeKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `glueDatabaseNames`Required
```typescript
public readonly glueDatabaseNames: string[];
```
- *Type:* string[]
---
##### `s3Buckets`Required
```typescript
public readonly s3Buckets: IBucket[];
```
- *Type:* aws-cdk-lib.aws_s3.IBucket[]
---
### ManageJobsOptions
#### Initializer
```typescript
import { ManageJobsOptions } from '@cdklabs/cdk-aws-sagemaker-role-manager'
const manageJobsOptions: ManageJobsOptions = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| securityGroups
| aws-cdk-lib.aws_ec2.ISecurityGroup[]
| *No description.* |
| subnets
| aws-cdk-lib.aws_ec2.ISubnet[]
| *No description.* |
| dataKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| volumeKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| rolesToPass
| aws-cdk-lib.aws_iam.IRole[]
| *No description.* |
---
##### `securityGroups`Optional
```typescript
public readonly securityGroups: ISecurityGroup[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
---
##### `subnets`Optional
```typescript
public readonly subnets: ISubnet[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]
---
##### `dataKeys`Optional
```typescript
public readonly dataKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `volumeKeys`Optional
```typescript
public readonly volumeKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `rolesToPass`Required
```typescript
public readonly rolesToPass: IRole[];
```
- *Type:* aws-cdk-lib.aws_iam.IRole[]
---
### ManageModelsOptions
#### Initializer
```typescript
import { ManageModelsOptions } from '@cdklabs/cdk-aws-sagemaker-role-manager'
const manageModelsOptions: ManageModelsOptions = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| securityGroups
| aws-cdk-lib.aws_ec2.ISecurityGroup[]
| *No description.* |
| subnets
| aws-cdk-lib.aws_ec2.ISubnet[]
| *No description.* |
| dataKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| volumeKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| rolesToPass
| aws-cdk-lib.aws_iam.IRole[]
| *No description.* |
---
##### `securityGroups`Optional
```typescript
public readonly securityGroups: ISecurityGroup[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
---
##### `subnets`Optional
```typescript
public readonly subnets: ISubnet[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]
---
##### `dataKeys`Optional
```typescript
public readonly dataKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `volumeKeys`Optional
```typescript
public readonly volumeKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `rolesToPass`Required
```typescript
public readonly rolesToPass: IRole[];
```
- *Type:* aws-cdk-lib.aws_iam.IRole[]
---
### ManagePipelinesOptions
#### Initializer
```typescript
import { ManagePipelinesOptions } from '@cdklabs/cdk-aws-sagemaker-role-manager'
const managePipelinesOptions: ManagePipelinesOptions = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| securityGroups
| aws-cdk-lib.aws_ec2.ISecurityGroup[]
| *No description.* |
| subnets
| aws-cdk-lib.aws_ec2.ISubnet[]
| *No description.* |
| dataKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| volumeKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| rolesToPass
| aws-cdk-lib.aws_iam.IRole[]
| *No description.* |
---
##### `securityGroups`Optional
```typescript
public readonly securityGroups: ISecurityGroup[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
---
##### `subnets`Optional
```typescript
public readonly subnets: ISubnet[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]
---
##### `dataKeys`Optional
```typescript
public readonly dataKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `volumeKeys`Optional
```typescript
public readonly volumeKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `rolesToPass`Required
```typescript
public readonly rolesToPass: IRole[];
```
- *Type:* aws-cdk-lib.aws_iam.IRole[]
---
### MonitorModelsOptions
#### Initializer
```typescript
import { MonitorModelsOptions } from '@cdklabs/cdk-aws-sagemaker-role-manager'
const monitorModelsOptions: MonitorModelsOptions = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| securityGroups
| aws-cdk-lib.aws_ec2.ISecurityGroup[]
| *No description.* |
| subnets
| aws-cdk-lib.aws_ec2.ISubnet[]
| *No description.* |
| dataKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| volumeKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| rolesToPass
| aws-cdk-lib.aws_iam.IRole[]
| *No description.* |
---
##### `securityGroups`Optional
```typescript
public readonly securityGroups: ISecurityGroup[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
---
##### `subnets`Optional
```typescript
public readonly subnets: ISubnet[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]
---
##### `dataKeys`Optional
```typescript
public readonly dataKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `volumeKeys`Optional
```typescript
public readonly volumeKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `rolesToPass`Required
```typescript
public readonly rolesToPass: IRole[];
```
- *Type:* aws-cdk-lib.aws_iam.IRole[]
---
### PersonaProps
#### Initializer
```typescript
import { PersonaProps } from '@cdklabs/cdk-aws-sagemaker-role-manager'
const personaProps: PersonaProps = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| securityGroups
| aws-cdk-lib.aws_ec2.ISecurityGroup[]
| *No description.* |
| subnets
| aws-cdk-lib.aws_ec2.ISubnet[]
| *No description.* |
| dataKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| volumeKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| activities
| Activity[]
| *No description.* |
---
##### `securityGroups`Optional
```typescript
public readonly securityGroups: ISecurityGroup[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
---
##### `subnets`Optional
```typescript
public readonly subnets: ISubnet[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]
---
##### `dataKeys`Optional
```typescript
public readonly dataKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `volumeKeys`Optional
```typescript
public readonly volumeKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `activities`Required
```typescript
public readonly activities: Activity[];
```
- *Type:* Activity[]
---
### QueryAthenaGroupsOptions
#### Initializer
```typescript
import { QueryAthenaGroupsOptions } from '@cdklabs/cdk-aws-sagemaker-role-manager'
const queryAthenaGroupsOptions: QueryAthenaGroupsOptions = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| securityGroups
| aws-cdk-lib.aws_ec2.ISecurityGroup[]
| *No description.* |
| subnets
| aws-cdk-lib.aws_ec2.ISubnet[]
| *No description.* |
| dataKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| volumeKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| athenaWorkgroupNames
| string[]
| *No description.* |
---
##### `securityGroups`Optional
```typescript
public readonly securityGroups: ISecurityGroup[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
---
##### `subnets`Optional
```typescript
public readonly subnets: ISubnet[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]
---
##### `dataKeys`Optional
```typescript
public readonly dataKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `volumeKeys`Optional
```typescript
public readonly volumeKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `athenaWorkgroupNames`Required
```typescript
public readonly athenaWorkgroupNames: string[];
```
- *Type:* string[]
---
### RunStudioAppsOptions
#### Initializer
```typescript
import { RunStudioAppsOptions } from '@cdklabs/cdk-aws-sagemaker-role-manager'
const runStudioAppsOptions: RunStudioAppsOptions = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| securityGroups
| aws-cdk-lib.aws_ec2.ISecurityGroup[]
| *No description.* |
| subnets
| aws-cdk-lib.aws_ec2.ISubnet[]
| *No description.* |
| dataKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| volumeKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| rolesToPass
| aws-cdk-lib.aws_iam.IRole[]
| *No description.* |
---
##### `securityGroups`Optional
```typescript
public readonly securityGroups: ISecurityGroup[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
---
##### `subnets`Optional
```typescript
public readonly subnets: ISubnet[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]
---
##### `dataKeys`Optional
```typescript
public readonly dataKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `volumeKeys`Optional
```typescript
public readonly volumeKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `rolesToPass`Required
```typescript
public readonly rolesToPass: IRole[];
```
- *Type:* aws-cdk-lib.aws_iam.IRole[]
---
### RunStudioAppsV2Options
#### Initializer
```typescript
import { RunStudioAppsV2Options } from '@cdklabs/cdk-aws-sagemaker-role-manager'
const runStudioAppsV2Options: RunStudioAppsV2Options = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| securityGroups
| aws-cdk-lib.aws_ec2.ISecurityGroup[]
| *No description.* |
| subnets
| aws-cdk-lib.aws_ec2.ISubnet[]
| *No description.* |
| dataKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| volumeKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
---
##### `securityGroups`Optional
```typescript
public readonly securityGroups: ISecurityGroup[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
---
##### `subnets`Optional
```typescript
public readonly subnets: ISubnet[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]
---
##### `dataKeys`Optional
```typescript
public readonly dataKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `volumeKeys`Optional
```typescript
public readonly volumeKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
### VisualizeExperimentsOptions
#### Initializer
```typescript
import { VisualizeExperimentsOptions } from '@cdklabs/cdk-aws-sagemaker-role-manager'
const visualizeExperimentsOptions: VisualizeExperimentsOptions = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| securityGroups
| aws-cdk-lib.aws_ec2.ISecurityGroup[]
| *No description.* |
| subnets
| aws-cdk-lib.aws_ec2.ISubnet[]
| *No description.* |
| dataKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
| volumeKeys
| aws-cdk-lib.aws_kms.IKey[]
| *No description.* |
---
##### `securityGroups`Optional
```typescript
public readonly securityGroups: ISecurityGroup[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
---
##### `subnets`Optional
```typescript
public readonly subnets: ISubnet[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]
---
##### `dataKeys`Optional
```typescript
public readonly dataKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
##### `volumeKeys`Optional
```typescript
public readonly volumeKeys: IKey[];
```
- *Type:* aws-cdk-lib.aws_kms.IKey[]
---
### VPCOptions
Global Condition Customization Options.
#### Initializer
```typescript
import { VPCOptions } from '@cdklabs/cdk-aws-sagemaker-role-manager'
const vPCOptions: VPCOptions = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| securityGroups
| aws-cdk-lib.aws_ec2.ISecurityGroup[]
| *No description.* |
| subnets
| aws-cdk-lib.aws_ec2.ISubnet[]
| *No description.* |
---
##### `securityGroups`Optional
```typescript
public readonly securityGroups: ISecurityGroup[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISecurityGroup[]
---
##### `subnets`Optional
```typescript
public readonly subnets: ISubnet[];
```
- *Type:* aws-cdk-lib.aws_ec2.ISubnet[]
---