All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.aws.sagemaker.kotlin.NotebookInstanceArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.aws.sagemaker.kotlin

import com.pulumi.aws.sagemaker.NotebookInstanceArgs.builder
import com.pulumi.aws.sagemaker.kotlin.inputs.NotebookInstanceInstanceMetadataServiceConfigurationArgs
import com.pulumi.aws.sagemaker.kotlin.inputs.NotebookInstanceInstanceMetadataServiceConfigurationArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Int
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Provides a SageMaker Notebook Instance resource.
 * ## Example Usage
 * ### Basic usage
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 * const ni = new aws.sagemaker.NotebookInstance("ni", {
 *     name: "my-notebook-instance",
 *     roleArn: role.arn,
 *     instanceType: "ml.t2.medium",
 *     tags: {
 *         Name: "foo",
 *     },
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_aws as aws
 * ni = aws.sagemaker.NotebookInstance("ni",
 *     name="my-notebook-instance",
 *     role_arn=role["arn"],
 *     instance_type="ml.t2.medium",
 *     tags={
 *         "Name": "foo",
 *     })
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Aws = Pulumi.Aws;
 * return await Deployment.RunAsync(() =>
 * {
 *     var ni = new Aws.Sagemaker.NotebookInstance("ni", new()
 *     {
 *         Name = "my-notebook-instance",
 *         RoleArn = role.Arn,
 *         InstanceType = "ml.t2.medium",
 *         Tags =
 *         {
 *             { "Name", "foo" },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sagemaker"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := sagemaker.NewNotebookInstance(ctx, "ni", &sagemaker.NotebookInstanceArgs{
 * 			Name:         pulumi.String("my-notebook-instance"),
 * 			RoleArn:      pulumi.Any(role.Arn),
 * 			InstanceType: pulumi.String("ml.t2.medium"),
 * 			Tags: pulumi.StringMap{
 * 				"Name": pulumi.String("foo"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.sagemaker.NotebookInstance;
 * import com.pulumi.aws.sagemaker.NotebookInstanceArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var ni = new NotebookInstance("ni", NotebookInstanceArgs.builder()
 *             .name("my-notebook-instance")
 *             .roleArn(role.arn())
 *             .instanceType("ml.t2.medium")
 *             .tags(Map.of("Name", "foo"))
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   ni:
 *     type: aws:sagemaker:NotebookInstance
 *     properties:
 *       name: my-notebook-instance
 *       roleArn: ${role.arn}
 *       instanceType: ml.t2.medium
 *       tags:
 *         Name: foo
 * ```
 * 
 * ### Code repository usage
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 * const example = new aws.sagemaker.CodeRepository("example", {
 *     codeRepositoryName: "my-notebook-instance-code-repo",
 *     gitConfig: {
 *         repositoryUrl: "https://github.com/github/docs.git",
 *     },
 * });
 * const ni = new aws.sagemaker.NotebookInstance("ni", {
 *     name: "my-notebook-instance",
 *     roleArn: role.arn,
 *     instanceType: "ml.t2.medium",
 *     defaultCodeRepository: example.codeRepositoryName,
 *     tags: {
 *         Name: "foo",
 *     },
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_aws as aws
 * example = aws.sagemaker.CodeRepository("example",
 *     code_repository_name="my-notebook-instance-code-repo",
 *     git_config={
 *         "repository_url": "https://github.com/github/docs.git",
 *     })
 * ni = aws.sagemaker.NotebookInstance("ni",
 *     name="my-notebook-instance",
 *     role_arn=role["arn"],
 *     instance_type="ml.t2.medium",
 *     default_code_repository=example.code_repository_name,
 *     tags={
 *         "Name": "foo",
 *     })
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Aws = Pulumi.Aws;
 * return await Deployment.RunAsync(() =>
 * {
 *     var example = new Aws.Sagemaker.CodeRepository("example", new()
 *     {
 *         CodeRepositoryName = "my-notebook-instance-code-repo",
 *         GitConfig = new Aws.Sagemaker.Inputs.CodeRepositoryGitConfigArgs
 *         {
 *             RepositoryUrl = "https://github.com/github/docs.git",
 *         },
 *     });
 *     var ni = new Aws.Sagemaker.NotebookInstance("ni", new()
 *     {
 *         Name = "my-notebook-instance",
 *         RoleArn = role.Arn,
 *         InstanceType = "ml.t2.medium",
 *         DefaultCodeRepository = example.CodeRepositoryName,
 *         Tags =
 *         {
 *             { "Name", "foo" },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sagemaker"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		example, err := sagemaker.NewCodeRepository(ctx, "example", &sagemaker.CodeRepositoryArgs{
 * 			CodeRepositoryName: pulumi.String("my-notebook-instance-code-repo"),
 * 			GitConfig: &sagemaker.CodeRepositoryGitConfigArgs{
 * 				RepositoryUrl: pulumi.String("https://github.com/github/docs.git"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		_, err = sagemaker.NewNotebookInstance(ctx, "ni", &sagemaker.NotebookInstanceArgs{
 * 			Name:                  pulumi.String("my-notebook-instance"),
 * 			RoleArn:               pulumi.Any(role.Arn),
 * 			InstanceType:          pulumi.String("ml.t2.medium"),
 * 			DefaultCodeRepository: example.CodeRepositoryName,
 * 			Tags: pulumi.StringMap{
 * 				"Name": pulumi.String("foo"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.sagemaker.CodeRepository;
 * import com.pulumi.aws.sagemaker.CodeRepositoryArgs;
 * import com.pulumi.aws.sagemaker.inputs.CodeRepositoryGitConfigArgs;
 * import com.pulumi.aws.sagemaker.NotebookInstance;
 * import com.pulumi.aws.sagemaker.NotebookInstanceArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var example = new CodeRepository("example", CodeRepositoryArgs.builder()
 *             .codeRepositoryName("my-notebook-instance-code-repo")
 *             .gitConfig(CodeRepositoryGitConfigArgs.builder()
 *                 .repositoryUrl("https://github.com/github/docs.git")
 *                 .build())
 *             .build());
 *         var ni = new NotebookInstance("ni", NotebookInstanceArgs.builder()
 *             .name("my-notebook-instance")
 *             .roleArn(role.arn())
 *             .instanceType("ml.t2.medium")
 *             .defaultCodeRepository(example.codeRepositoryName())
 *             .tags(Map.of("Name", "foo"))
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: aws:sagemaker:CodeRepository
 *     properties:
 *       codeRepositoryName: my-notebook-instance-code-repo
 *       gitConfig:
 *         repositoryUrl: https://github.com/github/docs.git
 *   ni:
 *     type: aws:sagemaker:NotebookInstance
 *     properties:
 *       name: my-notebook-instance
 *       roleArn: ${role.arn}
 *       instanceType: ml.t2.medium
 *       defaultCodeRepository: ${example.codeRepositoryName}
 *       tags:
 *         Name: foo
 * ```
 * 
 * ## Import
 * Using `pulumi import`, import SageMaker Notebook Instances using the `name`. For example:
 * ```sh
 * $ pulumi import aws:sagemaker/notebookInstance:NotebookInstance test_notebook_instance my-notebook-instance
 * ```
 * @property acceleratorTypes 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 more details. Valid values: `ml.eia1.medium`, `ml.eia1.large`, `ml.eia1.xlarge`, `ml.eia2.medium`, `ml.eia2.large`, `ml.eia2.xlarge`.
 * @property additionalCodeRepositories An array of up to three Git repositories to associate with the notebook instance.
 * These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance.
 * @property defaultCodeRepository 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.
 * @property directInternetAccess 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`, the notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC.
 * @property instanceMetadataServiceConfiguration Information on the IMDS configuration of the notebook instance. Conflicts with `instance_metadata_service_configuration`. see details below.
 * @property instanceType The name of ML compute instance type.
 * @property kmsKeyId The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption.
 * @property lifecycleConfigName The name of a lifecycle configuration to associate with the notebook instance.
 * @property name The name of the notebook instance (must be unique).
 * @property platformIdentifier The platform identifier of the notebook instance runtime environment. This value can be either `notebook-al1-v1`, `notebook-al2-v1`, or  `notebook-al2-v2`, depending on which version of Amazon Linux you require.
 * @property roleArn The ARN of the IAM role to be used by the notebook instance which allows SageMaker to call other services on your behalf.
 * @property rootAccess Whether root access is `Enabled` or `Disabled` for users of the notebook instance. The default value is `Enabled`.
 * @property securityGroups The associated security groups.
 * @property subnetId The VPC subnet ID.
 * @property tags A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
 * @property volumeSize The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB.
 */
public data class NotebookInstanceArgs(
    public val acceleratorTypes: Output>? = null,
    public val additionalCodeRepositories: Output>? = null,
    public val defaultCodeRepository: Output? = null,
    public val directInternetAccess: Output? = null,
    public val instanceMetadataServiceConfiguration: Output? = null,
    public val instanceType: Output? = null,
    public val kmsKeyId: Output? = null,
    public val lifecycleConfigName: Output? = null,
    public val name: Output? = null,
    public val platformIdentifier: Output? = null,
    public val roleArn: Output? = null,
    public val rootAccess: Output? = null,
    public val securityGroups: Output>? = null,
    public val subnetId: Output? = null,
    public val tags: Output>? = null,
    public val volumeSize: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.sagemaker.NotebookInstanceArgs =
        com.pulumi.aws.sagemaker.NotebookInstanceArgs.builder()
            .acceleratorTypes(acceleratorTypes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .additionalCodeRepositories(
                additionalCodeRepositories?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0
                    })
                }),
            )
            .defaultCodeRepository(defaultCodeRepository?.applyValue({ args0 -> args0 }))
            .directInternetAccess(directInternetAccess?.applyValue({ args0 -> args0 }))
            .instanceMetadataServiceConfiguration(
                instanceMetadataServiceConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .instanceType(instanceType?.applyValue({ args0 -> args0 }))
            .kmsKeyId(kmsKeyId?.applyValue({ args0 -> args0 }))
            .lifecycleConfigName(lifecycleConfigName?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .platformIdentifier(platformIdentifier?.applyValue({ args0 -> args0 }))
            .roleArn(roleArn?.applyValue({ args0 -> args0 }))
            .rootAccess(rootAccess?.applyValue({ args0 -> args0 }))
            .securityGroups(securityGroups?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .subnetId(subnetId?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .volumeSize(volumeSize?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [NotebookInstanceArgs].
 */
@PulumiTagMarker
public class NotebookInstanceArgsBuilder internal constructor() {
    private var acceleratorTypes: Output>? = null

    private var additionalCodeRepositories: Output>? = null

    private var defaultCodeRepository: Output? = null

    private var directInternetAccess: Output? = null

    private var instanceMetadataServiceConfiguration:
        Output? = null

    private var instanceType: Output? = null

    private var kmsKeyId: Output? = null

    private var lifecycleConfigName: Output? = null

    private var name: Output? = null

    private var platformIdentifier: Output? = null

    private var roleArn: Output? = null

    private var rootAccess: Output? = null

    private var securityGroups: Output>? = null

    private var subnetId: Output? = null

    private var tags: Output>? = null

    private var volumeSize: Output? = null

    /**
     * @param value 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 more details. Valid values: `ml.eia1.medium`, `ml.eia1.large`, `ml.eia1.xlarge`, `ml.eia2.medium`, `ml.eia2.large`, `ml.eia2.xlarge`.
     */
    @JvmName("dqctwfxxdftesjts")
    public suspend fun acceleratorTypes(`value`: Output>) {
        this.acceleratorTypes = value
    }

    @JvmName("xcpuyelvrqthhrqp")
    public suspend fun acceleratorTypes(vararg values: Output) {
        this.acceleratorTypes = Output.all(values.asList())
    }

    /**
     * @param values 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 more details. Valid values: `ml.eia1.medium`, `ml.eia1.large`, `ml.eia1.xlarge`, `ml.eia2.medium`, `ml.eia2.large`, `ml.eia2.xlarge`.
     */
    @JvmName("yocxumhkrrhonxve")
    public suspend fun acceleratorTypes(values: List>) {
        this.acceleratorTypes = Output.all(values)
    }

    /**
     * @param value An array of up to three Git repositories to associate with the notebook instance.
     * These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance.
     */
    @JvmName("lgxggrbsfduowcwr")
    public suspend fun additionalCodeRepositories(`value`: Output>) {
        this.additionalCodeRepositories = value
    }

    @JvmName("rmnnqmmehasmfpoh")
    public suspend fun additionalCodeRepositories(vararg values: Output) {
        this.additionalCodeRepositories = Output.all(values.asList())
    }

    /**
     * @param values An array of up to three Git repositories to associate with the notebook instance.
     * These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance.
     */
    @JvmName("mduajxdhbcfxkjfi")
    public suspend fun additionalCodeRepositories(values: List>) {
        this.additionalCodeRepositories = Output.all(values)
    }

    /**
     * @param value 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.
     */
    @JvmName("eruyjaftqekmolnw")
    public suspend fun defaultCodeRepository(`value`: Output) {
        this.defaultCodeRepository = value
    }

    /**
     * @param value 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`, the notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC.
     */
    @JvmName("lkqqxcxskdfkeggu")
    public suspend fun directInternetAccess(`value`: Output) {
        this.directInternetAccess = value
    }

    /**
     * @param value Information on the IMDS configuration of the notebook instance. Conflicts with `instance_metadata_service_configuration`. see details below.
     */
    @JvmName("cbqrdlnsdfdclbti")
    public suspend fun instanceMetadataServiceConfiguration(`value`: Output) {
        this.instanceMetadataServiceConfiguration = value
    }

    /**
     * @param value The name of ML compute instance type.
     */
    @JvmName("unpqbulcgcfnfkst")
    public suspend fun instanceType(`value`: Output) {
        this.instanceType = value
    }

    /**
     * @param value The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption.
     */
    @JvmName("ktxppnfjgktbiegw")
    public suspend fun kmsKeyId(`value`: Output) {
        this.kmsKeyId = value
    }

    /**
     * @param value The name of a lifecycle configuration to associate with the notebook instance.
     */
    @JvmName("xwynwmkwyvurmfnp")
    public suspend fun lifecycleConfigName(`value`: Output) {
        this.lifecycleConfigName = value
    }

    /**
     * @param value The name of the notebook instance (must be unique).
     */
    @JvmName("cgnxhblalqmyvfqs")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The platform identifier of the notebook instance runtime environment. This value can be either `notebook-al1-v1`, `notebook-al2-v1`, or  `notebook-al2-v2`, depending on which version of Amazon Linux you require.
     */
    @JvmName("jvfuxpemjqjmqaxw")
    public suspend fun platformIdentifier(`value`: Output) {
        this.platformIdentifier = value
    }

    /**
     * @param value The ARN of the IAM role to be used by the notebook instance which allows SageMaker to call other services on your behalf.
     */
    @JvmName("hywllwobvhlonlfs")
    public suspend fun roleArn(`value`: Output) {
        this.roleArn = value
    }

    /**
     * @param value Whether root access is `Enabled` or `Disabled` for users of the notebook instance. The default value is `Enabled`.
     */
    @JvmName("wtcelkdrubypurmu")
    public suspend fun rootAccess(`value`: Output) {
        this.rootAccess = value
    }

    /**
     * @param value The associated security groups.
     */
    @JvmName("yelikghfsypxlkin")
    public suspend fun securityGroups(`value`: Output>) {
        this.securityGroups = value
    }

    @JvmName("omubtwcuoleqgaok")
    public suspend fun securityGroups(vararg values: Output) {
        this.securityGroups = Output.all(values.asList())
    }

    /**
     * @param values The associated security groups.
     */
    @JvmName("undmvrlufjmuwhju")
    public suspend fun securityGroups(values: List>) {
        this.securityGroups = Output.all(values)
    }

    /**
     * @param value The VPC subnet ID.
     */
    @JvmName("avfcvidgllhxsovt")
    public suspend fun subnetId(`value`: Output) {
        this.subnetId = value
    }

    /**
     * @param value A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     */
    @JvmName("nlkawnktwmjfbhgh")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    /**
     * @param value The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB.
     */
    @JvmName("hnpwxijxvbgwpuvi")
    public suspend fun volumeSize(`value`: Output) {
        this.volumeSize = value
    }

    /**
     * @param value 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 more details. Valid values: `ml.eia1.medium`, `ml.eia1.large`, `ml.eia1.xlarge`, `ml.eia2.medium`, `ml.eia2.large`, `ml.eia2.xlarge`.
     */
    @JvmName("otfdvutoayfdivrx")
    public suspend fun acceleratorTypes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.acceleratorTypes = mapped
    }

    /**
     * @param values 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 more details. Valid values: `ml.eia1.medium`, `ml.eia1.large`, `ml.eia1.xlarge`, `ml.eia2.medium`, `ml.eia2.large`, `ml.eia2.xlarge`.
     */
    @JvmName("tuuscneocdrommbp")
    public suspend fun acceleratorTypes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.acceleratorTypes = mapped
    }

    /**
     * @param value An array of up to three Git repositories to associate with the notebook instance.
     * These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance.
     */
    @JvmName("tmpyoqpfpxrsebrv")
    public suspend fun additionalCodeRepositories(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.additionalCodeRepositories = mapped
    }

    /**
     * @param values An array of up to three Git repositories to associate with the notebook instance.
     * These can be either the names of Git repositories stored as resources in your account, or the URL of Git repositories in [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) or in any other Git repository. These repositories are cloned at the same level as the default repository of your notebook instance.
     */
    @JvmName("weroelmdsodsthrl")
    public suspend fun additionalCodeRepositories(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.additionalCodeRepositories = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("cbpfeerrhcqdkihl")
    public suspend fun defaultCodeRepository(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultCodeRepository = mapped
    }

    /**
     * @param value 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`, the notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC.
     */
    @JvmName("fcmvutahemchbkbt")
    public suspend fun directInternetAccess(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.directInternetAccess = mapped
    }

    /**
     * @param value Information on the IMDS configuration of the notebook instance. Conflicts with `instance_metadata_service_configuration`. see details below.
     */
    @JvmName("ihbjqhhdyeuabrob")
    public suspend fun instanceMetadataServiceConfiguration(`value`: NotebookInstanceInstanceMetadataServiceConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.instanceMetadataServiceConfiguration = mapped
    }

    /**
     * @param argument Information on the IMDS configuration of the notebook instance. Conflicts with `instance_metadata_service_configuration`. see details below.
     */
    @JvmName("kmdmetmerokuawmm")
    public suspend fun instanceMetadataServiceConfiguration(argument: suspend NotebookInstanceInstanceMetadataServiceConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = NotebookInstanceInstanceMetadataServiceConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.instanceMetadataServiceConfiguration = mapped
    }

    /**
     * @param value The name of ML compute instance type.
     */
    @JvmName("cdqujpajocjuuoga")
    public suspend fun instanceType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.instanceType = mapped
    }

    /**
     * @param value The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption.
     */
    @JvmName("tbmwdbeawrmggpys")
    public suspend fun kmsKeyId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsKeyId = mapped
    }

    /**
     * @param value The name of a lifecycle configuration to associate with the notebook instance.
     */
    @JvmName("uhmlbitmjhkgihxg")
    public suspend fun lifecycleConfigName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.lifecycleConfigName = mapped
    }

    /**
     * @param value The name of the notebook instance (must be unique).
     */
    @JvmName("eqeivxkuaofcfdst")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The platform identifier of the notebook instance runtime environment. This value can be either `notebook-al1-v1`, `notebook-al2-v1`, or  `notebook-al2-v2`, depending on which version of Amazon Linux you require.
     */
    @JvmName("tlygehvasejxhfyg")
    public suspend fun platformIdentifier(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.platformIdentifier = mapped
    }

    /**
     * @param value The ARN of the IAM role to be used by the notebook instance which allows SageMaker to call other services on your behalf.
     */
    @JvmName("jkkcspsxpohtgchn")
    public suspend fun roleArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.roleArn = mapped
    }

    /**
     * @param value Whether root access is `Enabled` or `Disabled` for users of the notebook instance. The default value is `Enabled`.
     */
    @JvmName("lgcnlcrgpblpgsfh")
    public suspend fun rootAccess(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.rootAccess = mapped
    }

    /**
     * @param value The associated security groups.
     */
    @JvmName("dahlchcnuesnleoc")
    public suspend fun securityGroups(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.securityGroups = mapped
    }

    /**
     * @param values The associated security groups.
     */
    @JvmName("pqjmvxwfuouoxvce")
    public suspend fun securityGroups(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.securityGroups = mapped
    }

    /**
     * @param value The VPC subnet ID.
     */
    @JvmName("enklemygvkuuyqqo")
    public suspend fun subnetId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subnetId = mapped
    }

    /**
     * @param value A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     */
    @JvmName("objcujhywjfjfvad")
    public suspend fun tags(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param values A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     */
    @JvmName("fldmjgauldggyeyj")
    public fun tags(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB.
     */
    @JvmName("jtpppntmoojgykid")
    public suspend fun volumeSize(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.volumeSize = mapped
    }

    internal fun build(): NotebookInstanceArgs = NotebookInstanceArgs(
        acceleratorTypes = acceleratorTypes,
        additionalCodeRepositories = additionalCodeRepositories,
        defaultCodeRepository = defaultCodeRepository,
        directInternetAccess = directInternetAccess,
        instanceMetadataServiceConfiguration = instanceMetadataServiceConfiguration,
        instanceType = instanceType,
        kmsKeyId = kmsKeyId,
        lifecycleConfigName = lifecycleConfigName,
        name = name,
        platformIdentifier = platformIdentifier,
        roleArn = roleArn,
        rootAccess = rootAccess,
        securityGroups = securityGroups,
        subnetId = subnetId,
        tags = tags,
        volumeSize = volumeSize,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy