Class NetappVolume.Builder

  • All Implemented Interfaces:
    software.amazon.jsii.Builder<NetappVolume>
    Enclosing class:
    NetappVolume

    @Stability(Stable)
    public static final class NetappVolume.Builder
    extends Object
    implements software.amazon.jsii.Builder<NetappVolume>
    A fluent builder for NetappVolume.
    • Method Detail

      • create

        @Stability(Stable)
        public static NetappVolume.Builder create​(software.constructs.Construct scope,
                                                  String id)
        Parameters:
        scope - The scope in which to define this construct. This parameter is required.
        id - The scoped construct ID. This parameter is required.
        Returns:
        a new instance of NetappVolume.Builder.
      • connection

        @Stability(Experimental)
        public NetappVolume.Builder connection​(com.hashicorp.cdktf.SSHProvisionerConnection connection)
        Parameters:
        connection - This parameter is required.
        Returns:
        this
      • connection

        @Stability(Experimental)
        public NetappVolume.Builder connection​(com.hashicorp.cdktf.WinrmProvisionerConnection connection)
        Parameters:
        connection - This parameter is required.
        Returns:
        this
      • count

        @Stability(Experimental)
        public NetappVolume.Builder count​(Number count)
        Parameters:
        count - This parameter is required.
        Returns:
        this
      • count

        @Stability(Experimental)
        public NetappVolume.Builder count​(com.hashicorp.cdktf.TerraformCount count)
        Parameters:
        count - This parameter is required.
        Returns:
        this
      • dependsOn

        @Stability(Experimental)
        public NetappVolume.Builder dependsOn​(List<? extends com.hashicorp.cdktf.ITerraformDependable> dependsOn)
        Parameters:
        dependsOn - This parameter is required.
        Returns:
        this
      • forEach

        @Stability(Experimental)
        public NetappVolume.Builder forEach​(com.hashicorp.cdktf.ITerraformIterator forEach)
        Parameters:
        forEach - This parameter is required.
        Returns:
        this
      • lifecycle

        @Stability(Experimental)
        public NetappVolume.Builder lifecycle​(com.hashicorp.cdktf.TerraformResourceLifecycle lifecycle)
        Parameters:
        lifecycle - This parameter is required.
        Returns:
        this
      • provider

        @Stability(Experimental)
        public NetappVolume.Builder provider​(com.hashicorp.cdktf.TerraformProvider provider)
        Parameters:
        provider - This parameter is required.
        Returns:
        this
      • provisioners

        @Stability(Experimental)
        public NetappVolume.Builder provisioners​(List<? extends Object> provisioners)
        Parameters:
        provisioners - This parameter is required.
        Returns:
        this
      • capacityGib

        @Stability(Stable)
        public NetappVolume.Builder capacityGib​(String capacityGib)
        Capacity of the volume (in GiB).

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#capacity_gib NetappVolume#capacity_gib}

        Parameters:
        capacityGib - Capacity of the volume (in GiB). This parameter is required.
        Returns:
        this
      • location

        @Stability(Stable)
        public NetappVolume.Builder location​(String location)
        Name of the pool location.

        Usually a region name, expect for some STANDARD service level pools which require a zone name. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#location NetappVolume#location}

        Parameters:
        location - Name of the pool location. This parameter is required.
        Returns:
        this
      • name

        @Stability(Stable)
        public NetappVolume.Builder name​(String name)
        The name of the volume. Needs to be unique per location.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#name NetappVolume#name}

        Parameters:
        name - The name of the volume. Needs to be unique per location. This parameter is required.
        Returns:
        this
      • protocols

        @Stability(Stable)
        public NetappVolume.Builder protocols​(List<String> protocols)
        The protocol of the volume.

        Allowed combinations are '['NFSV3']', '['NFSV4']', '['SMB']', '['NFSV3', 'NFSV4']', '['SMB', 'NFSV3']' and '['SMB', 'NFSV4']'. Possible values: ["NFSV3", "NFSV4", "SMB"] Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#protocols NetappVolume#protocols}

        Parameters:
        protocols - The protocol of the volume. This parameter is required.
        Returns:
        this
      • shareName

        @Stability(Stable)
        public NetappVolume.Builder shareName​(String shareName)
        Share name (SMB) or export path (NFS) of the volume. Needs to be unique per location.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#share_name NetappVolume#share_name}

        Parameters:
        shareName - Share name (SMB) or export path (NFS) of the volume. Needs to be unique per location. This parameter is required.
        Returns:
        this
      • storagePool

        @Stability(Stable)
        public NetappVolume.Builder storagePool​(String storagePool)
        Name of the storage pool to create the volume in. Pool needs enough spare capacity to accomodate the volume.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#storage_pool NetappVolume#storage_pool}

        Parameters:
        storagePool - Name of the storage pool to create the volume in. Pool needs enough spare capacity to accomodate the volume. This parameter is required.
        Returns:
        this
      • backupConfig

        @Stability(Stable)
        public NetappVolume.Builder backupConfig​(NetappVolumeBackupConfig backupConfig)
        backup_config block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#backup_config NetappVolume#backup_config}

        Parameters:
        backupConfig - backup_config block. This parameter is required.
        Returns:
        this
      • deletionPolicy

        @Stability(Stable)
        public NetappVolume.Builder deletionPolicy​(String deletionPolicy)
        Policy to determine if the volume should be deleted forcefully.

        Volumes may have nested snapshot resources. Deleting such a volume will fail. Setting this parameter to FORCE will delete volumes including nested snapshots. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#deletion_policy NetappVolume#deletion_policy}

        Parameters:
        deletionPolicy - Policy to determine if the volume should be deleted forcefully. This parameter is required.
        Returns:
        this
      • description

        @Stability(Stable)
        public NetappVolume.Builder description​(String description)
        An optional description of this resource.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#description NetappVolume#description}

        Parameters:
        description - An optional description of this resource. This parameter is required.
        Returns:
        this
      • exportPolicy

        @Stability(Stable)
        public NetappVolume.Builder exportPolicy​(NetappVolumeExportPolicy exportPolicy)
        export_policy block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#export_policy NetappVolume#export_policy}

        Parameters:
        exportPolicy - export_policy block. This parameter is required.
        Returns:
        this
      • id

        @Stability(Stable)
        public NetappVolume.Builder id​(String id)
        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#id NetappVolume#id}.

        Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2. If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.

        Parameters:
        id - Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#id NetappVolume#id}. This parameter is required.
        Returns:
        this
      • kerberosEnabled

        @Stability(Stable)
        public NetappVolume.Builder kerberosEnabled​(Boolean kerberosEnabled)
        Flag indicating if the volume is a kerberos volume or not, export policy rules control kerberos security modes (krb5, krb5i, krb5p).

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#kerberos_enabled NetappVolume#kerberos_enabled}

        Parameters:
        kerberosEnabled - Flag indicating if the volume is a kerberos volume or not, export policy rules control kerberos security modes (krb5, krb5i, krb5p). This parameter is required.
        Returns:
        this
      • kerberosEnabled

        @Stability(Stable)
        public NetappVolume.Builder kerberosEnabled​(com.hashicorp.cdktf.IResolvable kerberosEnabled)
        Flag indicating if the volume is a kerberos volume or not, export policy rules control kerberos security modes (krb5, krb5i, krb5p).

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#kerberos_enabled NetappVolume#kerberos_enabled}

        Parameters:
        kerberosEnabled - Flag indicating if the volume is a kerberos volume or not, export policy rules control kerberos security modes (krb5, krb5i, krb5p). This parameter is required.
        Returns:
        this
      • labels

        @Stability(Stable)
        public NetappVolume.Builder labels​(Map<String,​String> labels)
        Labels as key value pairs. Example: '{ "owner": "Bob", "department": "finance", "purpose": "testing" }'.

        **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#labels NetappVolume#labels}

        Parameters:
        labels - Labels as key value pairs. Example: '{ "owner": "Bob", "department": "finance", "purpose": "testing" }'. This parameter is required.
        Returns:
        this
      • project

        @Stability(Stable)
        public NetappVolume.Builder project​(String project)
        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#project NetappVolume#project}.

        Parameters:
        project - Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#project NetappVolume#project}. This parameter is required.
        Returns:
        this
      • restoreParameters

        @Stability(Stable)
        public NetappVolume.Builder restoreParameters​(NetappVolumeRestoreParameters restoreParameters)
        restore_parameters block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#restore_parameters NetappVolume#restore_parameters}

        Parameters:
        restoreParameters - restore_parameters block. This parameter is required.
        Returns:
        this
      • restrictedActions

        @Stability(Stable)
        public NetappVolume.Builder restrictedActions​(List<String> restrictedActions)
        List of actions that are restricted on this volume. Possible values: ["DELETE"].

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#restricted_actions NetappVolume#restricted_actions}

        Parameters:
        restrictedActions - List of actions that are restricted on this volume. Possible values: ["DELETE"]. This parameter is required.
        Returns:
        this
      • securityStyle

        @Stability(Stable)
        public NetappVolume.Builder securityStyle​(String securityStyle)
        Security Style of the Volume.

        Use UNIX to use UNIX or NFSV4 ACLs for file permissions. Use NTFS to use NTFS ACLs for file permissions. Can only be set for volumes which use SMB together with NFS as protocol. Possible values: ["NTFS", "UNIX"] Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#security_style NetappVolume#security_style}

        Parameters:
        securityStyle - Security Style of the Volume. This parameter is required.
        Returns:
        this
      • smbSettings

        @Stability(Stable)
        public NetappVolume.Builder smbSettings​(List<String> smbSettings)
        Settings for volumes with SMB access. Possible values: ["ENCRYPT_DATA", "BROWSABLE", "CHANGE_NOTIFY", "NON_BROWSABLE", "OPLOCKS", "SHOW_SNAPSHOT", "SHOW_PREVIOUS_VERSIONS", "ACCESS_BASED_ENUMERATION", "CONTINUOUSLY_AVAILABLE"].

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#smb_settings NetappVolume#smb_settings}

        Parameters:
        smbSettings - Settings for volumes with SMB access. Possible values: ["ENCRYPT_DATA", "BROWSABLE", "CHANGE_NOTIFY", "NON_BROWSABLE", "OPLOCKS", "SHOW_SNAPSHOT", "SHOW_PREVIOUS_VERSIONS", "ACCESS_BASED_ENUMERATION", "CONTINUOUSLY_AVAILABLE"]. This parameter is required.
        Returns:
        this
      • snapshotDirectory

        @Stability(Stable)
        public NetappVolume.Builder snapshotDirectory​(Boolean snapshotDirectory)
        If enabled, a NFS volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots. Will enable "Previous Versions" support for SMB.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#snapshot_directory NetappVolume#snapshot_directory}

        Parameters:
        snapshotDirectory - If enabled, a NFS volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots. Will enable "Previous Versions" support for SMB. This parameter is required.
        Returns:
        this
      • snapshotDirectory

        @Stability(Stable)
        public NetappVolume.Builder snapshotDirectory​(com.hashicorp.cdktf.IResolvable snapshotDirectory)
        If enabled, a NFS volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots. Will enable "Previous Versions" support for SMB.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#snapshot_directory NetappVolume#snapshot_directory}

        Parameters:
        snapshotDirectory - If enabled, a NFS volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots. Will enable "Previous Versions" support for SMB. This parameter is required.
        Returns:
        this
      • snapshotPolicy

        @Stability(Stable)
        public NetappVolume.Builder snapshotPolicy​(NetappVolumeSnapshotPolicy snapshotPolicy)
        snapshot_policy block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#snapshot_policy NetappVolume#snapshot_policy}

        Parameters:
        snapshotPolicy - snapshot_policy block. This parameter is required.
        Returns:
        this
      • timeouts

        @Stability(Stable)
        public NetappVolume.Builder timeouts​(NetappVolumeTimeouts timeouts)
        timeouts block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#timeouts NetappVolume#timeouts}

        Parameters:
        timeouts - timeouts block. This parameter is required.
        Returns:
        this
      • unixPermissions

        @Stability(Stable)
        public NetappVolume.Builder unixPermissions​(String unixPermissions)
        Unix permission the mount point will be created with. Default is 0770. Applicable for UNIX security style volumes only.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/netapp_volume#unix_permissions NetappVolume#unix_permissions}

        Parameters:
        unixPermissions - Unix permission the mount point will be created with. Default is 0770. Applicable for UNIX security style volumes only. This parameter is required.
        Returns:
        this
      • build

        @Stability(Stable)
        public NetappVolume build()
        Specified by:
        build in interface software.amazon.jsii.Builder<NetappVolume>
        Returns:
        a newly built instance of NetappVolume.