# 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` ---