# API Reference
## Constructs
### AwsManagedMicrosoftAd
A Ad Authentication represents an integration pattern of Managed AD and Route 53 Resolver in a specific VPC.
The Construct creates Managed AD with the provided Secret (Secrets Manager) or generates a new Secret.
The secret saved to SSM parameter store so others can use it with other Constructs (Such as Windows node or FSx)
The provided VPC or the new created VPC will be configured to forward DNS requests to the Managed AD with Route53 Resolvers
The construct also creates (optionally) t3.nano machine that is part of the domain that can be used to run admin-tasks (such as createADGroup)
The createADGroup() method creates an Active Directory permission group in the domain, using the domain admin user.
Please note: When calling createADGroup() API, a Lambda will be created to start the worker machine (Using AWS-SDK),
then each command will be scheduled with State Manager, and the instance will be shut down after complete.
#### Initializers
```typescript
import { authentication } from 'cdk-skylight'
new authentication.AwsManagedMicrosoftAd(scope: Construct, id: string, props: IAwsManagedMicrosoftAdProps)
```
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| scope
| constructs.Construct
| *No description.* |
| id
| string
| *No description.* |
| props
| cdk-skylight.authentication.IAwsManagedMicrosoftAdProps
| *No description.* |
---
##### `scope`Required
- *Type:* constructs.Construct
---
##### `id`Required
- *Type:* string
---
##### `props`Required
- *Type:* cdk-skylight.authentication.IAwsManagedMicrosoftAdProps
---
#### Methods
| **Name** | **Description** |
| --- | --- |
| toString
| Returns a string representation of this construct. |
| createADGroup
| *No description.* |
| createServiceAccount
| *No description.* |
| createWorker
| *No description.* |
---
##### `toString`
```typescript
public toString(): string
```
Returns a string representation of this construct.
##### `createADGroup`
```typescript
public createADGroup(groupName: string, groupDescription: string): void
```
###### `groupName`Required
- *Type:* string
---
###### `groupDescription`Required
- *Type:* string
---
##### `createServiceAccount`
```typescript
public createServiceAccount(adServiceAccountName: string, servicePrincipalNames: string, principalsAllowedToRetrieveManagedPassword: string): void
```
###### `adServiceAccountName`Required
- *Type:* string
---
###### `servicePrincipalNames`Required
- *Type:* string
---
###### `principalsAllowedToRetrieveManagedPassword`Required
- *Type:* string
---
##### `createWorker`
```typescript
public createWorker(domainName: string, domainPassword: ISecret): DomainWindowsNode
```
###### `domainName`Required
- *Type:* string
---
###### `domainPassword`Required
- *Type:* aws-cdk-lib.aws_secretsmanager.ISecret
---
#### Static Functions
| **Name** | **Description** |
| --- | --- |
| isConstruct
| Checks if `x` is a construct. |
---
##### ~~`isConstruct`~~
```typescript
import { authentication } from 'cdk-skylight'
authentication.AwsManagedMicrosoftAd.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. |
| adParameters
| cdk-skylight.authentication.IAwsManagedMicrosoftAdParameters
| *No description.* |
| microsoftAD
| aws-cdk-lib.aws_directoryservice.CfnMicrosoftAD
| *No description.* |
| props
| cdk-skylight.authentication.IAwsManagedMicrosoftAdProps
| *No description.* |
| secret
| aws-cdk-lib.aws_secretsmanager.ISecret
| *No description.* |
| domainWindowsNode
| cdk-skylight.compute.DomainWindowsNode
| *No description.* |
---
##### `node`Required
```typescript
public readonly node: Node;
```
- *Type:* constructs.Node
The tree node.
---
##### `adParameters`Required
```typescript
public readonly adParameters: IAwsManagedMicrosoftAdParameters;
```
- *Type:* cdk-skylight.authentication.IAwsManagedMicrosoftAdParameters
---
##### `microsoftAD`Required
```typescript
public readonly microsoftAD: CfnMicrosoftAD;
```
- *Type:* aws-cdk-lib.aws_directoryservice.CfnMicrosoftAD
---
##### `props`Required
```typescript
public readonly props: IAwsManagedMicrosoftAdProps;
```
- *Type:* cdk-skylight.authentication.IAwsManagedMicrosoftAdProps
---
##### `secret`Required
```typescript
public readonly secret: ISecret;
```
- *Type:* aws-cdk-lib.aws_secretsmanager.ISecret
---
##### `domainWindowsNode`Optional
```typescript
public readonly domainWindowsNode: DomainWindowsNode;
```
- *Type:* cdk-skylight.compute.DomainWindowsNode
---
### AwsManagedMicrosoftAdR53
A Ad Authentication represents an integration pattern of Managed AD and Route 53 Resolver in a specific VPC.
The Construct creates Managed AD with the provided Secret (Secrets Manager) or generates a new Secret.
The secret saved to SSM parameter store so others can use it with other Constructs (Such as Windows node or FSx)
The provided VPC or the new created VPC will be configured to forward DNS requests to the Managed AD with Route53 Resolvers
The construct also creates (optionally) t3.nano machine that is part of the domain that can be used to run admin-tasks (such as createADGroup)
The createADGroup() method creates an Active Directory permission group in the domain, using the domain admin user.
Please note: When calling createADGroup() API, a Lambda will be created to start the worker machine (Using AWS-SDK),
then each command will be scheduled with State Manager, and the instance will be shut down after complete.
#### Initializers
```typescript
import { authentication } from 'cdk-skylight'
new authentication.AwsManagedMicrosoftAdR53(scope: Construct, id: string, props: IAwsManagedMicrosoftAdProps)
```
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| scope
| constructs.Construct
| *No description.* |
| id
| string
| *No description.* |
| props
| cdk-skylight.authentication.IAwsManagedMicrosoftAdProps
| *No description.* |
---
##### `scope`Required
- *Type:* constructs.Construct
---
##### `id`Required
- *Type:* string
---
##### `props`Required
- *Type:* cdk-skylight.authentication.IAwsManagedMicrosoftAdProps
---
#### Methods
| **Name** | **Description** |
| --- | --- |
| toString
| Returns a string representation of this construct. |
| createADGroup
| *No description.* |
| createServiceAccount
| *No description.* |
| createWorker
| *No description.* |
---
##### `toString`
```typescript
public toString(): string
```
Returns a string representation of this construct.
##### `createADGroup`
```typescript
public createADGroup(groupName: string, groupDescription: string): void
```
###### `groupName`Required
- *Type:* string
---
###### `groupDescription`Required
- *Type:* string
---
##### `createServiceAccount`
```typescript
public createServiceAccount(adServiceAccountName: string, servicePrincipalNames: string, principalsAllowedToRetrieveManagedPassword: string): void
```
###### `adServiceAccountName`Required
- *Type:* string
---
###### `servicePrincipalNames`Required
- *Type:* string
---
###### `principalsAllowedToRetrieveManagedPassword`Required
- *Type:* string
---
##### `createWorker`
```typescript
public createWorker(domainName: string, domainPassword: ISecret): DomainWindowsNode
```
###### `domainName`Required
- *Type:* string
---
###### `domainPassword`Required
- *Type:* aws-cdk-lib.aws_secretsmanager.ISecret
---
#### Static Functions
| **Name** | **Description** |
| --- | --- |
| isConstruct
| Checks if `x` is a construct. |
---
##### ~~`isConstruct`~~
```typescript
import { authentication } from 'cdk-skylight'
authentication.AwsManagedMicrosoftAdR53.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. |
| adParameters
| cdk-skylight.authentication.IAwsManagedMicrosoftAdParameters
| *No description.* |
| microsoftAD
| aws-cdk-lib.aws_directoryservice.CfnMicrosoftAD
| *No description.* |
| props
| cdk-skylight.authentication.IAwsManagedMicrosoftAdProps
| *No description.* |
| secret
| aws-cdk-lib.aws_secretsmanager.ISecret
| *No description.* |
| domainWindowsNode
| cdk-skylight.compute.DomainWindowsNode
| *No description.* |
---
##### `node`Required
```typescript
public readonly node: Node;
```
- *Type:* constructs.Node
The tree node.
---
##### `adParameters`Required
```typescript
public readonly adParameters: IAwsManagedMicrosoftAdParameters;
```
- *Type:* cdk-skylight.authentication.IAwsManagedMicrosoftAdParameters
---
##### `microsoftAD`Required
```typescript
public readonly microsoftAD: CfnMicrosoftAD;
```
- *Type:* aws-cdk-lib.aws_directoryservice.CfnMicrosoftAD
---
##### `props`Required
```typescript
public readonly props: IAwsManagedMicrosoftAdProps;
```
- *Type:* cdk-skylight.authentication.IAwsManagedMicrosoftAdProps
---
##### `secret`Required
```typescript
public readonly secret: ISecret;
```
- *Type:* aws-cdk-lib.aws_secretsmanager.ISecret
---
##### `domainWindowsNode`Optional
```typescript
public readonly domainWindowsNode: DomainWindowsNode;
```
- *Type:* cdk-skylight.compute.DomainWindowsNode
---
### DomainWindowsNode
A Domain Windows Node represents one Windows EC2 instance configured with Active Directory.
The DomainWindowsNode can be customized to different instance sizes and additional permissions set just like any other EC2 Instance.
You can use this construct to run elevated domain tasks with domain permissions or run your application in a single instance setup.
The machine will be joined to the provided Active Directory domain using a custom CloudFormation bootstrap that will wait until the required reboot to join the domain. Then it will register the machine in SSM and pull tasks from the SSM State manager.
You can send tasks to that machine using the provided methods: runPsCommands() and runPSwithDomainAdmin()
#### Initializers
```typescript
import { compute } from 'cdk-skylight'
new compute.DomainWindowsNode(scope: Construct, id: string, props: IDomainWindowsNodeProps)
```
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| scope
| constructs.Construct
| *No description.* |
| id
| string
| *No description.* |
| props
| cdk-skylight.compute.IDomainWindowsNodeProps
| *No description.* |
---
##### `scope`Required
- *Type:* constructs.Construct
---
##### `id`Required
- *Type:* string
---
##### `props`Required
- *Type:* cdk-skylight.compute.IDomainWindowsNodeProps
---
#### Methods
| **Name** | **Description** |
| --- | --- |
| toString
| Returns a string representation of this construct. |
| openRDP
| Open the security group of the Node Node to specific IP address on port 3389 i.e: openRDP("1.1.1.1/32"). |
| runPsCommands
| Running PowerShell scripts on the Node with SSM Document. |
| runPSwithDomainAdmin
| Running PowerShell scripts on the Node with SSM Document with Domain Admin (Using the Secret used to join the machine to the domain) i.e: runPsCommands(["Write-host 'Hello world'", "Write-host 'Second command'"], "myScript") The provided psCommands will be stored in C:\Scripts and will be run with scheduled task with Domain Admin rights. |
| runShellCommands
| Running bash scripts on the Node with SSM Document. |
| startInstance
| *No description.* |
---
##### `toString`
```typescript
public toString(): string
```
Returns a string representation of this construct.
##### `openRDP`
```typescript
public openRDP(ipaddress: string): void
```
Open the security group of the Node Node to specific IP address on port 3389 i.e: openRDP("1.1.1.1/32").
###### `ipaddress`Required
- *Type:* string
---
##### `runPsCommands`
```typescript
public runPsCommands(psCommands: string[], id: string): void
```
Running PowerShell scripts on the Node with SSM Document.
i.e: runPsCommands(["Write-host 'Hello world'", "Write-host 'Second command'"], "myScript")
###### `psCommands`Required
- *Type:* string[]
---
###### `id`Required
- *Type:* string
---
##### `runPSwithDomainAdmin`
```typescript
public runPSwithDomainAdmin(psCommands: string[], id: string): void
```
Running PowerShell scripts on the Node with SSM Document with Domain Admin (Using the Secret used to join the machine to the domain) i.e: runPsCommands(["Write-host 'Hello world'", "Write-host 'Second command'"], "myScript") The provided psCommands will be stored in C:\Scripts and will be run with scheduled task with Domain Admin rights.
###### `psCommands`Required
- *Type:* string[]
---
###### `id`Required
- *Type:* string
---
##### `runShellCommands`
```typescript
public runShellCommands(ShellCommands: string[], id: string): void
```
Running bash scripts on the Node with SSM Document.
i.e: runPsCommands(["echo 'hello world'", "echo 'Second command'"], "myScript")
###### `ShellCommands`Required
- *Type:* string[]
---
###### `id`Required
- *Type:* string
---
##### `startInstance`
```typescript
public startInstance(): void
```
#### Static Functions
| **Name** | **Description** |
| --- | --- |
| isConstruct
| Checks if `x` is a construct. |
---
##### ~~`isConstruct`~~
```typescript
import { compute } from 'cdk-skylight'
compute.DomainWindowsNode.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. |
| instance
| aws-cdk-lib.aws_ec2.Instance
| *No description.* |
| nodeRole
| aws-cdk-lib.aws_iam.Role
| *No description.* |
| vpc
| aws-cdk-lib.aws_ec2.IVpc
| *No description.* |
| passwordObject
| aws-cdk-lib.aws_secretsmanager.ISecret
| *No description.* |
---
##### `node`Required
```typescript
public readonly node: Node;
```
- *Type:* constructs.Node
The tree node.
---
##### `instance`Required
```typescript
public readonly instance: Instance;
```
- *Type:* aws-cdk-lib.aws_ec2.Instance
---
##### `nodeRole`Required
```typescript
public readonly nodeRole: Role;
```
- *Type:* aws-cdk-lib.aws_iam.Role
---
##### `vpc`Required
```typescript
public readonly vpc: IVpc;
```
- *Type:* aws-cdk-lib.aws_ec2.IVpc
---
##### `passwordObject`Optional
```typescript
public readonly passwordObject: ISecret;
```
- *Type:* aws-cdk-lib.aws_secretsmanager.ISecret
---
### FSxWindows
A FSxWindows represents an integration pattern of Amazon FSx and Managed AD in a specific VPC.
The Construct creates Amazon FSx for Windows
The construct also creates (optionally) t3.nano machine that is part of the domain that can be used to run admin-tasks (such as createFolder)
The createFolder() method creates an SMB Folder in the FSx filesystem, using the domain admin user.
Please note: When calling createFolder() API, a Lambda will be created to start the worker machine (Using AWS-SDK),
then each command will be scheduled with State Manager, and the instance will be shut down after complete .
#### Initializers
```typescript
import { storage } from 'cdk-skylight'
new storage.FSxWindows(scope: Construct, id: string, props: IFSxWindowsProps)
```
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| scope
| constructs.Construct
| *No description.* |
| id
| string
| *No description.* |
| props
| cdk-skylight.storage.IFSxWindowsProps
| *No description.* |
---
##### `scope`Required
- *Type:* constructs.Construct
---
##### `id`Required
- *Type:* string
---
##### `props`Required
- *Type:* cdk-skylight.storage.IFSxWindowsProps
---
#### Methods
| **Name** | **Description** |
| --- | --- |
| toString
| Returns a string representation of this construct. |
| createFolder
| *No description.* |
| createWorker
| *No description.* |
---
##### `toString`
```typescript
public toString(): string
```
Returns a string representation of this construct.
##### `createFolder`
```typescript
public createFolder(worker: DomainWindowsNode, folderName: string, secretName: ISecret): void
```
###### `worker`Required
- *Type:* cdk-skylight.compute.DomainWindowsNode
---
###### `folderName`Required
- *Type:* string
---
###### `secretName`Required
- *Type:* aws-cdk-lib.aws_secretsmanager.ISecret
---
##### `createWorker`
```typescript
public createWorker(domainName: string, domainPassword: ISecret): DomainWindowsNode
```
###### `domainName`Required
- *Type:* string
---
###### `domainPassword`Required
- *Type:* aws-cdk-lib.aws_secretsmanager.ISecret
---
#### Static Functions
| **Name** | **Description** |
| --- | --- |
| isConstruct
| Checks if `x` is a construct. |
---
##### ~~`isConstruct`~~
```typescript
import { storage } from 'cdk-skylight'
storage.FSxWindows.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. |
| fsxObject
| aws-cdk-lib.aws_fsx.CfnFileSystem
| *No description.* |
| props
| cdk-skylight.storage.IFSxWindowsProps
| *No description.* |
| ssmParameters
| cdk-skylight.storage.IFSxWindowsParameters
| *No description.* |
---
##### `node`Required
```typescript
public readonly node: Node;
```
- *Type:* constructs.Node
The tree node.
---
##### `fsxObject`Required
```typescript
public readonly fsxObject: CfnFileSystem;
```
- *Type:* aws-cdk-lib.aws_fsx.CfnFileSystem
---
##### `props`Required
```typescript
public readonly props: IFSxWindowsProps;
```
- *Type:* cdk-skylight.storage.IFSxWindowsProps
---
##### `ssmParameters`Required
```typescript
public readonly ssmParameters: IFSxWindowsParameters;
```
- *Type:* cdk-skylight.storage.IFSxWindowsParameters
---
### WindowsEKSCluster
#### Initializers
```typescript
import { compute } from 'cdk-skylight'
new compute.WindowsEKSCluster(scope: Construct, id: string, props: IWindowsEKSClusterProps)
```
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| scope
| constructs.Construct
| *No description.* |
| id
| string
| *No description.* |
| props
| cdk-skylight.compute.IWindowsEKSClusterProps
| *No description.* |
---
##### `scope`Required
- *Type:* constructs.Construct
---
##### `id`Required
- *Type:* string
---
##### `props`Required
- *Type:* cdk-skylight.compute.IWindowsEKSClusterProps
---
#### Methods
| **Name** | **Description** |
| --- | --- |
| toString
| Returns a string representation of this construct. |
---
##### `toString`
```typescript
public toString(): string
```
Returns a string representation of this construct.
#### Static Functions
| **Name** | **Description** |
| --- | --- |
| isConstruct
| Checks if `x` is a construct. |
---
##### ~~`isConstruct`~~
```typescript
import { compute } from 'cdk-skylight'
compute.WindowsEKSCluster.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. |
| eksCluster
| aws-cdk-lib.aws_eks.Cluster
| *No description.* |
---
##### `node`Required
```typescript
public readonly node: Node;
```
- *Type:* constructs.Node
The tree node.
---
##### `eksCluster`Required
```typescript
public readonly eksCluster: Cluster;
```
- *Type:* aws-cdk-lib.aws_eks.Cluster
---
### WindowsEKSNodes
- *Implements:* cdk-skylight.compute.IRuntimeNodes
#### Initializers
```typescript
import { compute } from 'cdk-skylight'
new compute.WindowsEKSNodes(scope: Construct, id: string, props: IWindowsEKSNodesProps)
```
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| scope
| constructs.Construct
| *No description.* |
| id
| string
| *No description.* |
| props
| cdk-skylight.compute.IWindowsEKSNodesProps
| *No description.* |
---
##### `scope`Required
- *Type:* constructs.Construct
---
##### `id`Required
- *Type:* string
---
##### `props`Required
- *Type:* cdk-skylight.compute.IWindowsEKSNodesProps
---
#### Methods
| **Name** | **Description** |
| --- | --- |
| toString
| Returns a string representation of this construct. |
| addAdDependency
| Method to configure the Nodes to part of AD Domain Secret: The secrets manager secret to use must be in format: '{Domain: , UserID: 'Admin', Password: ''}' (From cdk-skylight.AwsManagedMicrosoftAdR53 Object). |
| addEKSDependency
| Method to add the nodes to specific Cluster. |
| addLocalCredFile
| Method to add support for LocalCredFile . |
| addStorageDependency
| Method to configure persistent storage dependency to the hosts by using Global Mapping. |
| addUserData
| Method to add userData to the nodes. |
| gMSAWebHookAutoInstall
| *No description.* |
| runPowerShellSSMDocument
| *No description.* |
---
##### `toString`
```typescript
public toString(): string
```
Returns a string representation of this construct.
##### `addAdDependency`
```typescript
public addAdDependency(adParametersStore: IAwsManagedMicrosoftAdParameters): void
```
Method to configure the Nodes to part of AD Domain Secret: The secrets manager secret to use must be in format: '{Domain: , UserID: 'Admin', Password: ''}' (From cdk-skylight.AwsManagedMicrosoftAdR53 Object).
###### `adParametersStore`Required
- *Type:* cdk-skylight.authentication.IAwsManagedMicrosoftAdParameters
---
##### `addEKSDependency`
```typescript
public addEKSDependency(eksCluster: Cluster): void
```
Method to add the nodes to specific Cluster.
###### `eksCluster`Required
- *Type:* aws-cdk-lib.aws_eks.Cluster
---
##### `addLocalCredFile`
```typescript
public addLocalCredFile(adParametersStore: IAwsManagedMicrosoftAdParameters, ADGroupName: string, AccountName: string): void
```
Method to add support for LocalCredFile .
###### `adParametersStore`Required
- *Type:* cdk-skylight.authentication.IAwsManagedMicrosoftAdParameters
---
###### `ADGroupName`Required
- *Type:* string
---
###### `AccountName`Required
- *Type:* string
---
##### `addStorageDependency`
```typescript
public addStorageDependency(adParametersStore: IAwsManagedMicrosoftAdParameters, fsxParametersStore: IFSxWindowsParameters, folderName: string): void
```
Method to configure persistent storage dependency to the hosts by using Global Mapping.
###### `adParametersStore`Required
- *Type:* cdk-skylight.authentication.IAwsManagedMicrosoftAdParameters
---
###### `fsxParametersStore`Required
- *Type:* cdk-skylight.storage.IFSxWindowsParameters
---
###### `folderName`Required
- *Type:* string
---
##### `addUserData`
```typescript
public addUserData(commands: string): void
```
Method to add userData to the nodes.
###### `commands`Required
- *Type:* string
---
##### `gMSAWebHookAutoInstall`
```typescript
public gMSAWebHookAutoInstall(eksCluster: Cluster, privateSignerName: string, awsaccountid: string, awsregion: string): void
```
###### `eksCluster`Required
- *Type:* aws-cdk-lib.aws_eks.Cluster
---
###### `privateSignerName`Required
- *Type:* string
---
###### `awsaccountid`Required
- *Type:* string
---
###### `awsregion`Required
- *Type:* string
---
##### `runPowerShellSSMDocument`
```typescript
public runPowerShellSSMDocument(name: string, commands: string[]): void
```
###### `name`Required
- *Type:* string
---
###### `commands`Required
- *Type:* string[]
---
#### Static Functions
| **Name** | **Description** |
| --- | --- |
| isConstruct
| Checks if `x` is a construct. |
---
##### ~~`isConstruct`~~
```typescript
import { compute } from 'cdk-skylight'
compute.WindowsEKSNodes.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. |
| asg
| aws-cdk-lib.aws_autoscaling.AutoScalingGroup
| *No description.* |
| asgResource
| aws-cdk-lib.aws_autoscaling.CfnAutoScalingGroup
| *No description.* |
| nodesSg
| aws-cdk-lib.aws_ec2.SecurityGroup
| *No description.* |
| vpc
| aws-cdk-lib.aws_ec2.IVpc
| *No description.* |
| windowsWorkersRole
| aws-cdk-lib.aws_iam.Role
| *No description.* |
---
##### `node`Required
```typescript
public readonly node: Node;
```
- *Type:* constructs.Node
The tree node.
---
##### `asg`Required
```typescript
public readonly asg: AutoScalingGroup;
```
- *Type:* aws-cdk-lib.aws_autoscaling.AutoScalingGroup
---
##### `asgResource`Required
```typescript
public readonly asgResource: CfnAutoScalingGroup;
```
- *Type:* aws-cdk-lib.aws_autoscaling.CfnAutoScalingGroup
---
##### `nodesSg`Required
```typescript
public readonly nodesSg: SecurityGroup;
```
- *Type:* aws-cdk-lib.aws_ec2.SecurityGroup
---
##### `vpc`Required
```typescript
public readonly vpc: IVpc;
```
- *Type:* aws-cdk-lib.aws_ec2.IVpc
---
##### `windowsWorkersRole`Required
```typescript
public readonly windowsWorkersRole: Role;
```
- *Type:* aws-cdk-lib.aws_iam.Role
---
## Protocols
### IAwsManagedMicrosoftAdParameters
- *Implemented By:* cdk-skylight.authentication.IAwsManagedMicrosoftAdParameters
The properties of an DomainWindowsNodeProps, requires Active Directory parameter to read the Secret to join the domain Default setting: Domain joined, m5.2xlarge, latest windows, Managed by SSM.
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| configurationStoreType
| cdk-skylight.authentication.AwsManagedMicrosoftConfigurationStoreType
| The name of the Configuration Store Type to use. |
| directoryIDPointer
| string
| The name of the SSM Object that contains the Directory ID. |
| namespace
| string
| The SSM namespace to read/write parameters to. |
| secretPointer
| string
| The name of the SSM Object that contains the secret name in Secrets Manager. |
---
##### `configurationStoreType`Optional
```typescript
public readonly configurationStoreType: AwsManagedMicrosoftConfigurationStoreType;
```
- *Type:* cdk-skylight.authentication.AwsManagedMicrosoftConfigurationStoreType
- *Default:* 'AWS Systems Manager Parameter Store'.
The name of the Configuration Store Type to use.
---
##### `directoryIDPointer`Optional
```typescript
public readonly directoryIDPointer: string;
```
- *Type:* string
- *Default:* 'directoryID'.
The name of the SSM Object that contains the Directory ID.
---
##### `namespace`Optional
```typescript
public readonly namespace: string;
```
- *Type:* string
- *Default:* 'cdk-skylight'.
The SSM namespace to read/write parameters to.
---
##### `secretPointer`Optional
```typescript
public readonly secretPointer: string;
```
- *Type:* string
- *Default:* 'domain-secret'.
The name of the SSM Object that contains the secret name in Secrets Manager.
---
### IAwsManagedMicrosoftAdProps
- *Implemented By:* cdk-skylight.authentication.IAwsManagedMicrosoftAdProps
The properties for the AwsManagedMicrosoftAd class.
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| vpc
| aws-cdk-lib.aws_ec2.IVpc
| The VPC to use, must have private subnets. |
| configurationStore
| cdk-skylight.authentication.IAwsManagedMicrosoftAdParameters
| The configuration store to save the directory parameters (After deployed). |
| createWorker
| boolean
| Create Domain joined machine to be used to run Powershell commands to that directory. |
| domainName
| string
| The domain name for the Active Directory Domain. |
| edition
| string
| The edition to use for the Active Directory Domain. |
| secret
| aws-cdk-lib.aws_secretsmanager.ISecret
| The secrets manager secret to use must be in format: '{Domain: , UserID: 'Admin', Password: ''}'. |
| secretName
| string
| The secret name to save the Domain Admin object. |
| vpcSubnets
| aws-cdk-lib.aws_ec2.SelectedSubnets
| VPC subnet selection, subnets must be private and exactly 2. |
---
##### `vpc`Required
```typescript
public readonly vpc: IVpc;
```
- *Type:* aws-cdk-lib.aws_ec2.IVpc
The VPC to use, must have private subnets.
---
##### `configurationStore`Optional
```typescript
public readonly configurationStore: IAwsManagedMicrosoftAdParameters;
```
- *Type:* cdk-skylight.authentication.IAwsManagedMicrosoftAdParameters
The configuration store to save the directory parameters (After deployed).
---
##### `createWorker`Optional
```typescript
public readonly createWorker: boolean;
```
- *Type:* boolean
- *Default:* 'true'.
Create Domain joined machine to be used to run Powershell commands to that directory.
(i.e Create Ad Group)
---
##### `domainName`Optional
```typescript
public readonly domainName: string;
```
- *Type:* string
- *Default:* 'domain.aws'.
The domain name for the Active Directory Domain.
---
##### `edition`Optional
```typescript
public readonly edition: string;
```
- *Type:* string
- *Default:* 'Standard'.
The edition to use for the Active Directory Domain.
Allowed values: Enterprise | Standard
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-edition
---
##### `secret`Optional
```typescript
public readonly secret: ISecret;
```
- *Type:* aws-cdk-lib.aws_secretsmanager.ISecret
- *Default:* 'Randomly generated and stored in Secret Manager'.
The secrets manager secret to use must be in format: '{Domain: , UserID: 'Admin', Password: ''}'.
---
##### `secretName`Optional
```typescript
public readonly secretName: string;
```
- *Type:* string
- *Default:* '-secret'.
The secret name to save the Domain Admin object.
---
##### `vpcSubnets`Optional
```typescript
public readonly vpcSubnets: SelectedSubnets;
```
- *Type:* aws-cdk-lib.aws_ec2.SelectedSubnets
VPC subnet selection, subnets must be private and exactly 2.
---
### IDomainWindowsNodeProps
- *Implemented By:* cdk-skylight.compute.IDomainWindowsNodeProps
The properties of an DomainWindowsNodeProps, requires Active Directory parameter to read the Secret to join the domain Default setting: Domain joined, m5.2xlarge, latest windows, Managed by SSM.
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| vpc
| aws-cdk-lib.aws_ec2.IVpc
| The VPC to use. |
| amiName
| string
| The name of the AMI to search in SSM (ec2.LookupNodeImage) supports Regex. |
| domainName
| string
| *No description.* |
| iamManagedPoliciesList
| aws-cdk-lib.aws_iam.IManagedPolicy[]
| IAM Instance role permissions. |
| instanceType
| string
| The EC2 Instance type to use. |
| passwordObject
| aws-cdk-lib.aws_secretsmanager.ISecret
| *No description.* |
| usePrivateSubnet
| boolean
| Choose if to launch the instance in Private or in Public subnet Private = Subnet that routes to the internet, but not vice versa. |
| userData
| string
| Specific UserData to use. |
| windowsMachine
| boolean
| *No description.* |
---
##### `vpc`Required
```typescript
public readonly vpc: IVpc;
```
- *Type:* aws-cdk-lib.aws_ec2.IVpc
The VPC to use.
---
##### `amiName`Optional
```typescript
public readonly amiName: string;
```
- *Type:* string
- *Default:* 'Windows_Server-2022-English-Full'
The name of the AMI to search in SSM (ec2.LookupNodeImage) supports Regex.
---
##### `domainName`Optional
```typescript
public readonly domainName: string;
```
- *Type:* string
---
##### `iamManagedPoliciesList`Optional
```typescript
public readonly iamManagedPoliciesList: IManagedPolicy[];
```
- *Type:* aws-cdk-lib.aws_iam.IManagedPolicy[]
- *Default:* 'AmazonSSMManagedInstanceCore, AmazonSSMDirectoryServiceAccess'.
IAM Instance role permissions.
---
##### `instanceType`Optional
```typescript
public readonly instanceType: string;
```
- *Type:* string
- *Default:* 'm5.2xlarge'.
The EC2 Instance type to use.
---
##### `passwordObject`Optional
```typescript
public readonly passwordObject: ISecret;
```
- *Type:* aws-cdk-lib.aws_secretsmanager.ISecret
---
##### `usePrivateSubnet`Optional
```typescript
public readonly usePrivateSubnet: boolean;
```
- *Type:* boolean
- *Default:* Private.
Choose if to launch the instance in Private or in Public subnet Private = Subnet that routes to the internet, but not vice versa.
Public = Subnet that routes to the internet and vice versa.
---
##### `userData`Optional
```typescript
public readonly userData: string;
```
- *Type:* string
- *Default:* 'undefined'
Specific UserData to use.
The UserData may still be mutated after creation.
---
##### `windowsMachine`Optional
```typescript
public readonly windowsMachine: boolean;
```
- *Type:* boolean
- *Default:* 'true'
---
### IFSxWindowsParameters
- *Implemented By:* cdk-skylight.storage.IFSxWindowsParameters
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| dnsEndpoint
| string
| The name of the parameter to save the FSxEndpoint DNS Endpoint. |
| namespace
| string
| The SSM namespace to read/write parameters to. |
---
##### `dnsEndpoint`Optional
```typescript
public readonly dnsEndpoint: string;
```
- *Type:* string
- *Default:* 'FSxEndpoint-DNS'.
The name of the parameter to save the FSxEndpoint DNS Endpoint.
---
##### `namespace`Optional
```typescript
public readonly namespace: string;
```
- *Type:* string
- *Default:* 'cdk-skylight'.
The SSM namespace to read/write parameters to.
---
### IFSxWindowsProps
- *Implemented By:* cdk-skylight.storage.IFSxWindowsProps
The properties for the PersistentStorage class.
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| directoryId
| string
| *No description.* |
| vpc
| aws-cdk-lib.aws_ec2.IVpc
| The VPC to use, must have private subnets. |
| fileSystemInPrivateSubnet
| boolean
| Deploy the Amazon FSx file system in private subnet or public subnet See: https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html. |
| fileSystemSize
| number
| The Filesystem size in GB. |
| multiAZ
| boolean
| Choosing Single-AZ or Multi-AZ file system deployment See: https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html. |
| ssmParameters
| cdk-skylight.storage.IFSxWindowsParameters
| *No description.* |
| throughputMbps
| number
| The Filesystem throughput in MBps. |
---
##### `directoryId`Required
```typescript
public readonly directoryId: string;
```
- *Type:* string
---
##### `vpc`Required
```typescript
public readonly vpc: IVpc;
```
- *Type:* aws-cdk-lib.aws_ec2.IVpc
The VPC to use, must have private subnets.
---
##### `fileSystemInPrivateSubnet`Optional
```typescript
public readonly fileSystemInPrivateSubnet: boolean;
```
- *Type:* boolean
- *Default:* true.
Deploy the Amazon FSx file system in private subnet or public subnet See: https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html.
---
##### `fileSystemSize`Optional
```typescript
public readonly fileSystemSize: number;
```
- *Type:* number
- *Default:* 200.
The Filesystem size in GB.
---
##### `multiAZ`Optional
```typescript
public readonly multiAZ: boolean;
```
- *Type:* boolean
- *Default:* true.
Choosing Single-AZ or Multi-AZ file system deployment See: https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html.
---
##### `ssmParameters`Optional
```typescript
public readonly ssmParameters: IFSxWindowsParameters;
```
- *Type:* cdk-skylight.storage.IFSxWindowsParameters
---
##### `throughputMbps`Optional
```typescript
public readonly throughputMbps: number;
```
- *Type:* number
- *Default:* 128.
The Filesystem throughput in MBps.
---
### IRuntimeNodes
- *Implemented By:* cdk-skylight.compute.WindowsEKSNodes, cdk-skylight.compute.IRuntimeNodes
#### Methods
| **Name** | **Description** |
| --- | --- |
| addAdDependency
| Method to configure the Nodes to part of AD Domain Secret: The secrets manager secret to use must be in format: '{Domain: , UserID: 'Admin', Password: ''}' (From cdk-skylight.AwsManagedMicrosoftAdR53 Object). |
| addEKSDependency
| Method to add the nodes to specific Cluster. |
| addLocalCredFile
| Method to add support for LocalCredFile . |
| addStorageDependency
| Method to configure persistent storage dependency to the hosts by using Global Mapping. |
| addUserData
| Method to add userData to the nodes. |
---
##### `addAdDependency`
```typescript
public addAdDependency(adParametersStore: IAwsManagedMicrosoftAdParameters): void
```
Method to configure the Nodes to part of AD Domain Secret: The secrets manager secret to use must be in format: '{Domain: , UserID: 'Admin', Password: ''}' (From cdk-skylight.AwsManagedMicrosoftAdR53 Object).
###### `adParametersStore`Required
- *Type:* cdk-skylight.authentication.IAwsManagedMicrosoftAdParameters
---
##### `addEKSDependency`
```typescript
public addEKSDependency(eksCluster: Cluster): void
```
Method to add the nodes to specific Cluster.
###### `eksCluster`Required
- *Type:* aws-cdk-lib.aws_eks.Cluster
---
##### `addLocalCredFile`
```typescript
public addLocalCredFile(adParametersStore: IAwsManagedMicrosoftAdParameters, ADGroupName: string, AccountName: string): void
```
Method to add support for LocalCredFile .
###### `adParametersStore`Required
- *Type:* cdk-skylight.authentication.IAwsManagedMicrosoftAdParameters
---
###### `ADGroupName`Required
- *Type:* string
---
###### `AccountName`Required
- *Type:* string
---
##### `addStorageDependency`
```typescript
public addStorageDependency(adParametersStore: IAwsManagedMicrosoftAdParameters, fsxParametersStore: IFSxWindowsParameters, folderName: string): void
```
Method to configure persistent storage dependency to the hosts by using Global Mapping.
###### `adParametersStore`Required
- *Type:* cdk-skylight.authentication.IAwsManagedMicrosoftAdParameters
---
###### `fsxParametersStore`Required
- *Type:* cdk-skylight.storage.IFSxWindowsParameters
---
###### `folderName`Required
- *Type:* string
---
##### `addUserData`
```typescript
public addUserData(commands: string): void
```
Method to add userData to the nodes.
###### `commands`Required
- *Type:* string
---
### IWindowsEKSClusterParameters
- *Implemented By:* cdk-skylight.compute.IWindowsEKSClusterParameters
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| clusterNamePointer
| string
| The name of the SSM Object that contains the EKS Cluster name. |
| namespace
| string
| The SSM namespace to read/write parameters to. |
---
##### `clusterNamePointer`Optional
```typescript
public readonly clusterNamePointer: string;
```
- *Type:* string
- *Default:* 'windows-eks-cluster-name'.
The name of the SSM Object that contains the EKS Cluster name.
---
##### `namespace`Optional
```typescript
public readonly namespace: string;
```
- *Type:* string
- *Default:* 'cdk-skylight/compute/eks'.
The SSM namespace to read/write parameters to.
---
### IWindowsEKSClusterProps
- *Implemented By:* cdk-skylight.compute.IWindowsEKSClusterProps
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| vpc
| aws-cdk-lib.aws_ec2.IVpc
| *No description.* |
| eksSsmParameters
| cdk-skylight.compute.IWindowsEKSClusterParameters
| The Windows EKS Cluster parameters. |
---
##### `vpc`Required
```typescript
public readonly vpc: IVpc;
```
- *Type:* aws-cdk-lib.aws_ec2.IVpc
---
##### `eksSsmParameters`Optional
```typescript
public readonly eksSsmParameters: IWindowsEKSClusterParameters;
```
- *Type:* cdk-skylight.compute.IWindowsEKSClusterParameters
- *Default:* 'No default'.
The Windows EKS Cluster parameters.
---
### IWindowsEKSNodesProps
- *Implemented By:* cdk-skylight.compute.IWindowsEKSNodesProps
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| vpc
| aws-cdk-lib.aws_ec2.IVpc
| *No description.* |
| instanceType
| aws-cdk-lib.aws_ec2.InstanceType
| The instance to use. |
| namespace
| string
| The SSM namespace to save parameters to. |
---
##### `vpc`Required
```typescript
public readonly vpc: IVpc;
```
- *Type:* aws-cdk-lib.aws_ec2.IVpc
---
##### `instanceType`Optional
```typescript
public readonly instanceType: InstanceType;
```
- *Type:* aws-cdk-lib.aws_ec2.InstanceType
- *Default:* 'm5.large'.
The instance to use.
---
##### `namespace`Optional
```typescript
public readonly namespace: string;
```
- *Type:* string
- *Default:* 'cdk-skylight'.
The SSM namespace to save parameters to.
---
## Enums
### AwsManagedMicrosoftConfigurationStoreType
#### Members
| **Name** | **Description** |
| --- | --- |
| SSM
| *No description.* |
---
##### `SSM`
---