import * as core from "@terrascript/core"; export interface RetentionPolicyArgs extends core.SchemaArgs { homeEfsFileSystem?: string | core.StringOut; } export class RetentionPolicy extends core.Schema { @core.attr(String) public homeEfsFileSystem?: string | core.StringOut; } export interface SharingSettingsArgs extends core.SchemaArgs { notebookOutputOption?: string | core.StringOut; s3KmsKeyId?: string | core.StringOut; s3OutputPath?: string | core.StringOut; } export class SharingSettings extends core.Schema { @core.attr(String) public notebookOutputOption?: string | core.StringOut; @core.attr(String) public s3KmsKeyId?: string | core.StringOut; @core.attr(String) public s3OutputPath?: string | core.StringOut; } export interface DefaultResourceSpecArgs extends core.SchemaArgs { instanceType?: string | core.StringOut; lifecycleConfigArn?: string | core.StringOut; sagemakerImageArn?: string | core.StringOut; sagemakerImageVersionArn?: string | core.StringOut; } export class DefaultResourceSpec extends core.Schema { @core.attr(String) public instanceType?: string | core.StringOut; @core.attr(String) public lifecycleConfigArn?: string | core.StringOut; @core.attr(String) public sagemakerImageArn?: string | core.StringOut; @core.attr(String) public sagemakerImageVersionArn?: string | core.StringOut; } export interface TensorBoardAppSettingsArgs extends core.SchemaArgs { defaultResourceSpec?: DefaultResourceSpec; } export class TensorBoardAppSettings extends core.Schema { @core.attr(DefaultResourceSpec) public defaultResourceSpec?: DefaultResourceSpec; } export interface JupyterServerAppSettingsArgs extends core.SchemaArgs { defaultResourceSpec?: DefaultResourceSpec; lifecycleConfigArns?: core.Array | core.ArrayOut; } export class JupyterServerAppSettings extends core.Schema { @core.attr(DefaultResourceSpec) public defaultResourceSpec?: DefaultResourceSpec; @core.attr(String, { kind: "array" }) public lifecycleConfigArns?: | core.Array | core.ArrayOut; } export interface CustomImageArgs extends core.SchemaArgs { appImageConfigName: string | core.StringOut; imageName: string | core.StringOut; imageVersionNumber?: number | core.NumberOut; } export class CustomImage extends core.Schema { @core.attr(String) public appImageConfigName!: string | core.StringOut; @core.attr(String) public imageName!: string | core.StringOut; @core.attr(Number) public imageVersionNumber?: number | core.NumberOut; } export interface KernelGatewayAppSettingsArgs extends core.SchemaArgs { customImage?: core.Array | core.ArrayOut; defaultResourceSpec?: DefaultResourceSpec; lifecycleConfigArns?: core.Array | core.ArrayOut; } export class KernelGatewayAppSettings extends core.Schema { @core.attr(CustomImage, { kind: "array" }) public customImage?: core.Array | core.ArrayOut; @core.attr(DefaultResourceSpec) public defaultResourceSpec?: DefaultResourceSpec; @core.attr(String, { kind: "array" }) public lifecycleConfigArns?: | core.Array | core.ArrayOut; } export interface DefaultUserSettingsArgs extends core.SchemaArgs { executionRole: string | core.StringOut; jupyterServerAppSettings?: JupyterServerAppSettings; kernelGatewayAppSettings?: KernelGatewayAppSettings; securityGroups?: core.Array | core.ArrayOut; sharingSettings?: SharingSettings; tensorBoardAppSettings?: TensorBoardAppSettings; } export class DefaultUserSettings extends core.Schema { @core.attr(String) public executionRole!: string | core.StringOut; @core.attr(JupyterServerAppSettings) public jupyterServerAppSettings?: JupyterServerAppSettings; @core.attr(KernelGatewayAppSettings) public kernelGatewayAppSettings?: KernelGatewayAppSettings; @core.attr(String, { kind: "array" }) public securityGroups?: core.Array | core.ArrayOut; @core.attr(SharingSettings) public sharingSettings?: SharingSettings; @core.attr(TensorBoardAppSettings) public tensorBoardAppSettings?: TensorBoardAppSettings; } export interface DomainArgs extends core.ResourceArgs { /** * (Optional) Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Va * lid values are `PublicInternetOnly` and `VpcOnly`. */ appNetworkAccessType?: string | core.StringOut; /** * (Required) The mode of authentication that members use to access the domain. Valid values are `IAM` * and `SSO`. */ authMode: string | core.StringOut; /** * (Required) The default user settings. See [Default User Settings](#default-user-settings) below. */ defaultUserSettings: DefaultUserSettings; /** * (Required) The domain name. */ domainName: string | core.StringOut; /** * (Optional) The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain. */ kmsKeyId?: string | core.StringOut; /** * (Optional) The retention policy for this domain, which specifies whether resources will be retained * after the Domain is deleted. By default, all resources are retained. See [Retention Policy](#retenti * on-policy) below. */ retentionPolicy?: RetentionPolicy; /** * (Required) The VPC subnets that Studio uses for communication. */ subnetIds: core.Array | core.ArrayOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Required) The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. */ vpcId: string | core.StringOut; } export class Domain extends core.Resource { /** * (Optional) Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Va * lid values are `PublicInternetOnly` and `VpcOnly`. */ @core.attr(String) public appNetworkAccessType?: string | core.StringOut; /** * The Amazon Resource Name (ARN) assigned by AWS to this Domain. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Required) The mode of authentication that members use to access the domain. Valid values are `IAM` * and `SSO`. */ @core.attr(String) public authMode!: string | core.StringOut; /** * (Required) The default user settings. See [Default User Settings](#default-user-settings) below. */ @core.attr(DefaultUserSettings) public defaultUserSettings!: DefaultUserSettings; /** * (Required) The domain name. */ @core.attr(String) public domainName!: string | core.StringOut; /** * The ID of the Amazon Elastic File System (EFS) managed by this Domain. */ @core.attr(String, { computed: true }) public homeEfsFileSystemId!: string | core.StringOut; /** * The ID of the Domain. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain. */ @core.attr(String) public kmsKeyId?: string | core.StringOut; /** * (Optional) The retention policy for this domain, which specifies whether resources will be retained * after the Domain is deleted. By default, all resources are retained. See [Retention Policy](#retenti * on-policy) below. */ @core.attr(RetentionPolicy) public retentionPolicy?: RetentionPolicy; /** * The SSO managed application instance ID. */ @core.attr(String, { computed: true }) public singleSignOnManagedApplicationInstanceId!: string | core.StringOut; /** * (Required) The VPC subnets that Studio uses for communication. */ @core.attr(String, { kind: "array" }) public subnetIds!: core.Array | core.ArrayOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * The domain's URL. */ @core.attr(String, { computed: true }) public url!: string | core.StringOut; /** * (Required) The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. */ @core.attr(String) public vpcId!: string | core.StringOut; constructor(name: string, args?: DomainArgs) { super(name, "aws_sagemaker_domain", args); } public override getNamespace(): string { return "aws_sagemaker"; } }