// generated from terraform resource schema
import * as cdktf from 'cdktf';
/**
* Represents a {@link https://www.terraform.io/docs/providers/aws/r/sagemaker_notebook_instance aws_sagemaker_notebook_instance}
*/
export class SagemakerNotebookInstance extends cdktf.TerraformResource {
    // =================
    // STATIC PROPERTIES
    // =================
    static tfResourceType = "aws_sagemaker_notebook_instance";
    // ===========
    // INITIALIZER
    // ===========
    /**
    * Create a new {@link https://www.terraform.io/docs/providers/aws/r/sagemaker_notebook_instance aws_sagemaker_notebook_instance} Resource
    *
    * @param scope The scope in which to define this construct
    * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
    * @param options SagemakerNotebookInstanceConfig
    */
    constructor(scope, id, config) {
        super(scope, id, {
            terraformResourceType: 'aws_sagemaker_notebook_instance',
            terraformGeneratorMetadata: {
                providerName: 'aws'
            },
            provider: config.provider,
            dependsOn: config.dependsOn,
            count: config.count,
            lifecycle: config.lifecycle
        });
        this._additionalCodeRepositories = config.additionalCodeRepositories;
        this._defaultCodeRepository = config.defaultCodeRepository;
        this._directInternetAccess = config.directInternetAccess;
        this._instanceType = config.instanceType;
        this._kmsKeyId = config.kmsKeyId;
        this._lifecycleConfigName = config.lifecycleConfigName;
        this._name = config.name;
        this._platformIdentifier = config.platformIdentifier;
        this._roleArn = config.roleArn;
        this._rootAccess = config.rootAccess;
        this._securityGroups = config.securityGroups;
        this._subnetId = config.subnetId;
        this._tags = config.tags;
        this._tagsAll = config.tagsAll;
        this._volumeSize = config.volumeSize;
    }
    // ==========
    // ATTRIBUTES
    // ==========
    // additional_code_repositories - computed: false, optional: true, required: false
    _additionalCodeRepositories;
    get additionalCodeRepositories() {
        return cdktf.Fn.tolist(this.getListAttribute('additional_code_repositories'));
    }
    set additionalCodeRepositories(value) {
        this._additionalCodeRepositories = value;
    }
    resetAdditionalCodeRepositories() {
        this._additionalCodeRepositories = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get additionalCodeRepositoriesInput() {
        return this._additionalCodeRepositories;
    }
    // arn - computed: true, optional: false, required: false
    get arn() {
        return this.getStringAttribute('arn');
    }
    // default_code_repository - computed: false, optional: true, required: false
    _defaultCodeRepository;
    get defaultCodeRepository() {
        return this.getStringAttribute('default_code_repository');
    }
    set defaultCodeRepository(value) {
        this._defaultCodeRepository = value;
    }
    resetDefaultCodeRepository() {
        this._defaultCodeRepository = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get defaultCodeRepositoryInput() {
        return this._defaultCodeRepository;
    }
    // direct_internet_access - computed: false, optional: true, required: false
    _directInternetAccess;
    get directInternetAccess() {
        return this.getStringAttribute('direct_internet_access');
    }
    set directInternetAccess(value) {
        this._directInternetAccess = value;
    }
    resetDirectInternetAccess() {
        this._directInternetAccess = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get directInternetAccessInput() {
        return this._directInternetAccess;
    }
    // id - computed: true, optional: true, required: false
    get id() {
        return this.getStringAttribute('id');
    }
    // instance_type - computed: false, optional: false, required: true
    _instanceType;
    get instanceType() {
        return this.getStringAttribute('instance_type');
    }
    set instanceType(value) {
        this._instanceType = value;
    }
    // Temporarily expose input value. Use with caution.
    get instanceTypeInput() {
        return this._instanceType;
    }
    // kms_key_id - computed: false, optional: true, required: false
    _kmsKeyId;
    get kmsKeyId() {
        return this.getStringAttribute('kms_key_id');
    }
    set kmsKeyId(value) {
        this._kmsKeyId = value;
    }
    resetKmsKeyId() {
        this._kmsKeyId = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get kmsKeyIdInput() {
        return this._kmsKeyId;
    }
    // lifecycle_config_name - computed: false, optional: true, required: false
    _lifecycleConfigName;
    get lifecycleConfigName() {
        return this.getStringAttribute('lifecycle_config_name');
    }
    set lifecycleConfigName(value) {
        this._lifecycleConfigName = value;
    }
    resetLifecycleConfigName() {
        this._lifecycleConfigName = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get lifecycleConfigNameInput() {
        return this._lifecycleConfigName;
    }
    // name - computed: false, optional: false, required: true
    _name;
    get name() {
        return this.getStringAttribute('name');
    }
    set name(value) {
        this._name = value;
    }
    // Temporarily expose input value. Use with caution.
    get nameInput() {
        return this._name;
    }
    // network_interface_id - computed: true, optional: false, required: false
    get networkInterfaceId() {
        return this.getStringAttribute('network_interface_id');
    }
    // platform_identifier - computed: true, optional: true, required: false
    _platformIdentifier;
    get platformIdentifier() {
        return this.getStringAttribute('platform_identifier');
    }
    set platformIdentifier(value) {
        this._platformIdentifier = value;
    }
    resetPlatformIdentifier() {
        this._platformIdentifier = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get platformIdentifierInput() {
        return this._platformIdentifier;
    }
    // role_arn - computed: false, optional: false, required: true
    _roleArn;
    get roleArn() {
        return this.getStringAttribute('role_arn');
    }
    set roleArn(value) {
        this._roleArn = value;
    }
    // Temporarily expose input value. Use with caution.
    get roleArnInput() {
        return this._roleArn;
    }
    // root_access - computed: false, optional: true, required: false
    _rootAccess;
    get rootAccess() {
        return this.getStringAttribute('root_access');
    }
    set rootAccess(value) {
        this._rootAccess = value;
    }
    resetRootAccess() {
        this._rootAccess = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get rootAccessInput() {
        return this._rootAccess;
    }
    // security_groups - computed: true, optional: true, required: false
    _securityGroups;
    get securityGroups() {
        return cdktf.Fn.tolist(this.getListAttribute('security_groups'));
    }
    set securityGroups(value) {
        this._securityGroups = value;
    }
    resetSecurityGroups() {
        this._securityGroups = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get securityGroupsInput() {
        return this._securityGroups;
    }
    // subnet_id - computed: false, optional: true, required: false
    _subnetId;
    get subnetId() {
        return this.getStringAttribute('subnet_id');
    }
    set subnetId(value) {
        this._subnetId = value;
    }
    resetSubnetId() {
        this._subnetId = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get subnetIdInput() {
        return this._subnetId;
    }
    // tags - computed: false, optional: true, required: false
    _tags;
    get tags() {
        return this.getStringMapAttribute('tags');
    }
    set tags(value) {
        this._tags = value;
    }
    resetTags() {
        this._tags = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get tagsInput() {
        return this._tags;
    }
    // tags_all - computed: true, optional: true, required: false
    _tagsAll;
    get tagsAll() {
        return this.getStringMapAttribute('tags_all');
    }
    set tagsAll(value) {
        this._tagsAll = value;
    }
    resetTagsAll() {
        this._tagsAll = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get tagsAllInput() {
        return this._tagsAll;
    }
    // url - computed: true, optional: false, required: false
    get url() {
        return this.getStringAttribute('url');
    }
    // volume_size - computed: false, optional: true, required: false
    _volumeSize;
    get volumeSize() {
        return this.getNumberAttribute('volume_size');
    }
    set volumeSize(value) {
        this._volumeSize = value;
    }
    resetVolumeSize() {
        this._volumeSize = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get volumeSizeInput() {
        return this._volumeSize;
    }
    // =========
    // SYNTHESIS
    // =========
    synthesizeAttributes() {
        return {
            additional_code_repositories: cdktf.listMapper(cdktf.stringToTerraform)(this._additionalCodeRepositories),
            default_code_repository: cdktf.stringToTerraform(this._defaultCodeRepository),
            direct_internet_access: cdktf.stringToTerraform(this._directInternetAccess),
            instance_type: cdktf.stringToTerraform(this._instanceType),
            kms_key_id: cdktf.stringToTerraform(this._kmsKeyId),
            lifecycle_config_name: cdktf.stringToTerraform(this._lifecycleConfigName),
            name: cdktf.stringToTerraform(this._name),
            platform_identifier: cdktf.stringToTerraform(this._platformIdentifier),
            role_arn: cdktf.stringToTerraform(this._roleArn),
            root_access: cdktf.stringToTerraform(this._rootAccess),
            security_groups: cdktf.listMapper(cdktf.stringToTerraform)(this._securityGroups),
            subnet_id: cdktf.stringToTerraform(this._subnetId),
            tags: cdktf.hashMapper(cdktf.stringToTerraform)(this._tags),
            tags_all: cdktf.hashMapper(cdktf.stringToTerraform)(this._tagsAll),
            volume_size: cdktf.numberToTerraform(this._volumeSize),
        };
    }
}
//# sourceMappingURL=sagemaker-notebook-instance.js.map