import * as core from "@terrascript/core"; export interface InstanceMetadataServiceConfigurationArgs extends core.SchemaArgs { minimumInstanceMetadataServiceVersion?: string | core.StringOut; } export class InstanceMetadataServiceConfiguration extends core.Schema { @core.attr(String, { computed: true }) public minimumInstanceMetadataServiceVersion?: string | core.StringOut; } export interface NotebookInstanceArgs extends core.ResourceArgs { /** * (Optional) A list of Elastic Inference (EI) instance types to associate with this notebook instance. * See [Elastic Inference Accelerator](https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html) for mo * re details. Valid values: `ml.eia1.medium`, `ml.eia1.large`, `ml.eia1.xlarge`, `ml.eia2.medium`, `ml * .eia2.large`, `ml.eia2.xlarge`. */ acceleratorTypes?: core.Array | core.ArrayOut; /** * (Optional) An array of up to three Git repositories to associate with the notebook instance. */ additionalCodeRepositories?: | core.Array | core.ArrayOut; /** * (Optional) The Git repository associated with the notebook instance as its default code repository. * This can be either the name of a Git repository stored as a resource in your account, or the URL of * a Git repository in [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome * .html) or in any other Git repository. */ defaultCodeRepository?: string | core.StringOut; /** * (Optional) Set to `Disabled` to disable internet access to notebook. Requires `security_groups` and * subnet_id` to be set. Supported values: `Enabled` (Default) or `Disabled`. If set to `Disabled`, th * e notebook instance will be able to access resources only in your VPC, and will not be able to conne * ct to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VP * C. */ directInternetAccess?: string | core.StringOut; /** * (Optional) Information on the IMDS configuration of the notebook instance. Conflicts with `instance_ * metadata_service_configuration`. see details below. */ instanceMetadataServiceConfiguration?: InstanceMetadataServiceConfiguration; /** * (Required) The name of ML compute instance type. */ instanceType: string | core.StringOut; /** * (Optional) The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the mo * del artifacts at rest using Amazon S3 server-side encryption. */ kmsKeyId?: string | core.StringOut; /** * (Optional) The name of a lifecycle configuration to associate with the notebook instance. */ lifecycleConfigName?: string | core.StringOut; /** * (Required) The name of the notebook instance (must be unique). */ name: string | core.StringOut; /** * (Optional) The platform identifier of the notebook instance runtime environment. This value can be e * ither `notebook-al1-v1`, `notebook-al2-v1`, or `notebook-al2-v2`, depending on which version of Ama * zon Linux you require. */ platformIdentifier?: string | core.StringOut; /** * (Required) The ARN of the IAM role to be used by the notebook instance which allows SageMaker to cal * l other services on your behalf. */ roleArn: string | core.StringOut; /** * (Optional) Whether root access is `Enabled` or `Disabled` for users of the notebook instance. The de * fault value is `Enabled`. */ rootAccess?: string | core.StringOut; /** * (Optional) The associated security groups. */ securityGroups?: core.Array | core.ArrayOut; /** * (Optional) The VPC subnet ID. */ subnetId?: string | core.StringOut; /** * (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; /** * (Optional) The size, in GB, of the ML storage volume to attach to the notebook instance. The default * value is 5 GB. */ volumeSize?: number | core.NumberOut; } export class NotebookInstance extends core.Resource { /** * (Optional) A list of Elastic Inference (EI) instance types to associate with this notebook instance. * See [Elastic Inference Accelerator](https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html) for mo * re details. Valid values: `ml.eia1.medium`, `ml.eia1.large`, `ml.eia1.xlarge`, `ml.eia2.medium`, `ml * .eia2.large`, `ml.eia2.xlarge`. */ @core.attr(String, { kind: "array" }) public acceleratorTypes?: core.Array | core.ArrayOut; /** * (Optional) An array of up to three Git repositories to associate with the notebook instance. */ @core.attr(String, { kind: "array" }) public additionalCodeRepositories?: | core.Array | core.ArrayOut; /** * The Amazon Resource Name (ARN) assigned by AWS to this notebook instance. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) The Git repository associated with the notebook instance as its default code repository. * This can be either the name of a Git repository stored as a resource in your account, or the URL of * a Git repository in [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome * .html) or in any other Git repository. */ @core.attr(String) public defaultCodeRepository?: string | core.StringOut; /** * (Optional) Set to `Disabled` to disable internet access to notebook. Requires `security_groups` and * subnet_id` to be set. Supported values: `Enabled` (Default) or `Disabled`. If set to `Disabled`, th * e notebook instance will be able to access resources only in your VPC, and will not be able to conne * ct to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VP * C. */ @core.attr(String) public directInternetAccess?: string | core.StringOut; /** * The name of the notebook instance. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) Information on the IMDS configuration of the notebook instance. Conflicts with `instance_ * metadata_service_configuration`. see details below. */ @core.attr(InstanceMetadataServiceConfiguration) public instanceMetadataServiceConfiguration?: InstanceMetadataServiceConfiguration; /** * (Required) The name of ML compute instance type. */ @core.attr(String) public instanceType!: string | core.StringOut; /** * (Optional) The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the mo * del artifacts at rest using Amazon S3 server-side encryption. */ @core.attr(String) public kmsKeyId?: string | core.StringOut; /** * (Optional) The name of a lifecycle configuration to associate with the notebook instance. */ @core.attr(String) public lifecycleConfigName?: string | core.StringOut; /** * (Required) The name of the notebook instance (must be unique). */ @core.attr(String) public name!: string | core.StringOut; /** * The network interface ID that Amazon SageMaker created at the time of creating the instance. Only av * ailable when setting `subnet_id`. */ @core.attr(String, { computed: true }) public networkInterfaceId!: string | core.StringOut; /** * (Optional) The platform identifier of the notebook instance runtime environment. This value can be e * ither `notebook-al1-v1`, `notebook-al2-v1`, or `notebook-al2-v2`, depending on which version of Ama * zon Linux you require. */ @core.attr(String, { computed: true }) public platformIdentifier?: string | core.StringOut; /** * (Required) The ARN of the IAM role to be used by the notebook instance which allows SageMaker to cal * l other services on your behalf. */ @core.attr(String) public roleArn!: string | core.StringOut; /** * (Optional) Whether root access is `Enabled` or `Disabled` for users of the notebook instance. The de * fault value is `Enabled`. */ @core.attr(String) public rootAccess?: string | core.StringOut; /** * (Optional) The associated security groups. */ @core.attr(String, { computed: true, kind: "array" }) public securityGroups?: core.Array | core.ArrayOut; /** * (Optional) The VPC subnet ID. */ @core.attr(String) public subnetId?: string | core.StringOut; /** * (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 URL that you use to connect to the Jupyter notebook that is running in your notebook instance. */ @core.attr(String, { computed: true }) public url!: string | core.StringOut; /** * (Optional) The size, in GB, of the ML storage volume to attach to the notebook instance. The default * value is 5 GB. */ @core.attr(Number) public volumeSize?: number | core.NumberOut; constructor(name: string, args?: NotebookInstanceArgs) { super(name, "aws_sagemaker_notebook_instance", args); } public override getNamespace(): string { return "aws_sagemaker"; } }