---
title: "POST /v1/{+parent}/volumes"
method: POST
path: "/v1/{+parent}/volumes"
tags: ["projects"]
---

# POST /v1/{+parent}/volumes

`POST /v1/{+parent}/volumes`

Creates a new Volume in a given project and location.

## Path parameters

- `parent` string, required

## Query parameters

- `volumeId` string

## Request body

- Volume — Volume provides a filesystem that you can mount.
  - `stateDetails` string — Output only. State details of the volume
  - `ldapEnabled` boolean — Output only. Flag indicating if the volume is NFS LDAP enabled or not.
  - `hotTierSizeUsedGib` string, int64 — Output only. Total hot tier data rounded down to the nearest GiB used by the Volume. This field is only used for flex Service Level
  - `restrictedActions` string[] — Optional. List of actions that are restricted on this volume.
  - `smbSettings` string[] — Optional. SMB share settings for the volume.
  - `coldTierSizeGib` string, int64 — Output only. Size of the volume cold tier data rounded down to the nearest GiB.
  - `cacheParameters` CacheParameters — Cache Parameters for the volume.
    - `peerClusterName` string — Required. Name of the origin volume's ONTAP cluster.
    - `peerIpAddresses` string[] — Required. List of IC LIF addresses of the origin volume's ONTAP cluster.
    - `command` string — Output only. Copy-paste-able commands to be used on user's ONTAP to accept peering requests.
    - `cacheState` 'CACHE_STATE_UNSPECIFIED' | 'PENDING_CLUSTER_PEERING' | 'PENDING_SVM_PEERING' | 'PEERED' | 'ERROR' — Output only. State of the cache volume indicating the peering status.
    - `enableGlobalFileLock` boolean — Optional. Indicates whether the cache volume has global file lock enabled.
    - `peerVolumeName` string — Required. Name of the origin volume for the cache volume.
    - `stateDetails` string — Output only. Detailed description of the current cache state.
    - `passphrase` string — Output only. Temporary passphrase generated to accept cluster peering command.
    - `cacheConfig` CacheConfig — Configuration of the cache volume.
      - `cachePrePopulateState` 'CACHE_PRE_POPULATE_STATE_UNSPECIFIED' | 'NOT_NEEDED' | 'IN_PROGRESS' | 'COMPLETE' | 'ERROR' — Output only. State of the prepopulation job indicating how the prepopulation is progressing.
      - `cachePrePopulate` CachePrePopulate — Pre-populate cache volume with data from the origin volume.
        - `pathList` string[] — Optional. List of directory-paths to be pre-populated for the FlexCache volume.
        - `excludePathList` string[] — Optional. List of directory-paths to be excluded for pre-population for the FlexCache volume.
        - `recursion` boolean — Optional. Flag indicating whether the directories listed with the `path_list` need to be recursively pre-populated.
      - `cifsChangeNotifyEnabled` boolean — Optional. Flag indicating whether a CIFS change notification is enabled for the FlexCache volume.
      - `writebackEnabled` boolean — Optional. Flag indicating whether writeback is enabled for the FlexCache volume.
    - `peeringCommandExpiryTime` string, google-datetime — Optional. Expiration time for the peering command to be executed on user's ONTAP.
    - `peerSvmName` string — Required. Name of the origin volume's SVM.
  - `cloneDetails` CloneDetails — Details about a clone volume.
    - `sourceSnapshot` string — Output only. Specifies the full resource name of the source snapshot from which this volume was cloned. Format: projects/{project}/locations/{location}/volumes/{volume}/snapshots/{snapshot}
    - `sharedSpaceGib` string, int64 — Output only. Shared space in GiB. Determined at volume creation time based on size of source snapshot.
    - `sourceVolume` string — Output only. Full name of the source volume resource. Format: projects/{project}/locations/{location}/volumes/{volume}
  - `psaRange` string — Output only. This field is not implemented. The values provided in this field are ignored.
  - `restoreParameters` RestoreParameters — The RestoreParameters if volume is created from a snapshot or backup.
    - `sourceBackup` string — Full name of the backup resource. Format for standard backup: projects/{project}/locations/{location}/backupVaults/{backup_vault_id}/backups/{backup_id}. Format for BackupDR backup: projects/{project}/locations/{location}/backupVaults/{backup_vault}/dataSources/{data_source}/backups/{backup}
    - `sourceSnapshot` string — Full name of the snapshot resource. Format: projects/{project}/locations/{location}/volumes/{volume}/snapshots/{snapshot}
  - `state` 'STATE_UNSPECIFIED' | 'READY' | 'CREATING' | 'DELETING' | 'UPDATING' | 'RESTORING' | 'DISABLED' | 'ERROR' | 'PREPARING' | 'READ_ONLY' — Output only. State of the volume
  - `blockDevices` BlockDevice[] — Optional. Block devices for the volume. Currently, only one block device is permitted per Volume.
    - `hostGroups` string[] — Optional. A list of host groups that identify hosts that can mount the block volume. Format: `projects/{project_id}/locations/{location}/hostGroups/{host_group_id}` This field can be updated after the block device is created.
    - `name` string — Optional. User-defined name for the block device, unique within the volume. In case no user input is provided, name will be auto-generated in the backend. The name must meet the following requirements: * Be between 1 and 255 characters long. * Contain only uppercase or lowercase letters (A-Z, a-z), numbers (0-9), and the following special characters: "-", "_", "}", "{", ".". * Spaces are not allowed.
    - `sizeGib` string, int64 — Optional. The size of the block device in GiB. Any value provided for the `size_gib` field during volume creation is ignored. The block device's size is system-managed and will be set to match the parent Volume's `capacity_gib`.
    - `identifier` string — Output only. Device identifier of the block volume. This represents `lun_serial_number` for iSCSI volumes.
    - `osType` 'OS_TYPE_UNSPECIFIED' | 'LINUX' | 'WINDOWS' | 'ESXI' — Required. Immutable. The OS type of the volume. This field can't be changed after the block device is created.
  - `snapReserve` number, double — Optional. Snap_reserve specifies percentage of volume storage reserved for snapshot storage. Default is 0 percent.
  - `exportPolicy` ExportPolicy — Defines the export policy for the volume.
    - `rules` SimpleExportPolicyRule[] — Required. List of export policy rules
      - `kerberos5iReadOnly` boolean — If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'integrity' kerberos security mode.
      - `anonUid` string, int64 — Optional. An integer representing the anonymous user ID. Range is 0 to `4294967295`. Required when `squash_mode` is `ROOT_SQUASH` or `ALL_SQUASH`.
      - `kerberos5ReadWrite` boolean — If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'authentication' kerberos security mode. The 'kerberos5ReadOnly' value be ignored if this is enabled.
      - `kerberos5iReadWrite` boolean — If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'integrity' kerberos security mode. The 'kerberos5iReadOnly' value be ignored if this is enabled.
      - `accessType` 'ACCESS_TYPE_UNSPECIFIED' | 'READ_ONLY' | 'READ_WRITE' | 'READ_NONE' — Access type (ReadWrite, ReadOnly, None)
      - `kerberos5ReadOnly` boolean — If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'authentication' kerberos security mode.
      - `allowedClients` string — Comma separated list of allowed clients IP addresses
      - `nfsv3` boolean — NFS V3 protocol.
      - `kerberos5pReadOnly` boolean — If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'privacy' kerberos security mode.
      - `squashMode` 'SQUASH_MODE_UNSPECIFIED' | 'NO_ROOT_SQUASH' | 'ROOT_SQUASH' | 'ALL_SQUASH' — Optional. Defines how user identity squashing is applied for this export rule. This field is the preferred way to configure squashing behavior and takes precedence over `has_root_access` if both are provided.
      - `kerberos5pReadWrite` boolean — If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'privacy' kerberos security mode. The 'kerberos5pReadOnly' value be ignored if this is enabled.
      - `hasRootAccess` string — Whether Unix root access will be granted.
      - `nfsv4` boolean — NFS V4 protocol.
  - `labels` object — Optional. Labels as key value pairs
  - `name` string — Identifier. Name of the volume
  - `network` string — Output only. VPC Network name. Format: projects/{project}/global/networks/{network}
  - `snapshotPolicy` SnapshotPolicy — Snapshot Policy for a volume.
    - `hourlySchedule` HourlySchedule — Make a snapshot every hour e.g. at 04:00, 05:00, 06:00.
      - `snapshotsToKeep` number, double — The maximum number of Snapshots to keep for the hourly schedule
      - `minute` number, double — Set the minute of the hour to start the snapshot (0-59), defaults to the top of the hour (0).
    - `enabled` boolean — If enabled, make snapshots automatically according to the schedules. Default is false.
    - `weeklySchedule` WeeklySchedule — Make a snapshot every week e.g. at Monday 04:00, Wednesday 05:20, Sunday 23:50
      - `day` string — Set the day or days of the week to make a snapshot. Accepts a comma separated days of the week. Defaults to 'Sunday'.
      - `snapshotsToKeep` number, double — The maximum number of Snapshots to keep for the hourly schedule
      - `minute` number, double — Set the minute of the hour to start the snapshot (0-59), defaults to the top of the hour (0).
      - `hour` number, double — Set the hour to start the snapshot (0-23), defaults to midnight (0).
    - `dailySchedule` DailySchedule — Make a snapshot every day e.g. at 04:00, 05:20, 23:50
      - `minute` number, double — Set the minute of the hour to start the snapshot (0-59), defaults to the top of the hour (0).
      - `hour` number, double — Set the hour to start the snapshot (0-23), defaults to midnight (0).
      - `snapshotsToKeep` number, double — The maximum number of Snapshots to keep for the hourly schedule
    - `monthlySchedule` MonthlySchedule — Make a snapshot once a month e.g. at 2nd 04:00, 7th 05:20, 24th 23:50
      - `minute` number, double — Set the minute of the hour to start the snapshot (0-59), defaults to the top of the hour (0).
      - `hour` number, double — Set the hour to start the snapshot (0-23), defaults to midnight (0).
      - `daysOfMonth` string — Set the day or days of the month to make a snapshot (1-31). Accepts a comma separated number of days. Defaults to '1'.
      - `snapshotsToKeep` number, double — The maximum number of Snapshots to keep for the hourly schedule
  - `replicaZone` string — Output only. Specifies the replica zone for regional volume.
  - `kerberosEnabled` boolean — Optional. Flag indicating if the volume is a kerberos volume or not, export policy rules control kerberos security modes (krb5, krb5i, krb5p).
  - `kmsConfig` string — Output only. Specifies the KMS config to be used for volume encryption.
  - `encryptionType` 'ENCRYPTION_TYPE_UNSPECIFIED' | 'SERVICE_MANAGED' | 'CLOUD_KMS' — Output only. Specified the current volume encryption key source.
  - `description` string — Optional. Description of the volume
  - `createTime` string, google-datetime — Output only. Create time of the volume
  - `capacityGib` string, int64 — Required. Capacity in GIB of the volume
  - `hasReplication` boolean — Output only. Indicates whether the volume is part of a replication relationship.
  - `multipleEndpoints` boolean — Optional. Flag indicating if the volume will have an IP address per node for volumes supporting multiple IP endpoints. Only the volume with large_capacity will be allowed to have multiple endpoints.
  - `zone` string — Output only. Specifies the active zone for regional volume.
  - `hybridReplicationParameters` HybridReplicationParameters — The Hybrid Replication parameters for the volume.
    - `peerSvmName` string — Required. Name of the user's local source vserver svm to be peered with the destination vserver svm.
    - `replicationSchedule` 'HYBRID_REPLICATION_SCHEDULE_UNSPECIFIED' | 'EVERY_10_MINUTES' | 'HOURLY' | 'DAILY' — Optional. Replication Schedule for the replication created.
    - `peerVolumeName` string — Required. Name of the user's local source volume to be peered with the destination volume.
    - `hybridReplicationType` 'VOLUME_HYBRID_REPLICATION_TYPE_UNSPECIFIED' | 'MIGRATION' | 'CONTINUOUS_REPLICATION' | 'ONPREM_REPLICATION' | 'REVERSE_ONPREM_REPLICATION' — Optional. Type of the hybrid replication.
    - `labels` object — Optional. Labels to be added to the replication as the key value pairs.
    - `peerIpAddresses` string[] — Required. List of node ip addresses to be peered with.
    - `replication` string — Required. Desired name for the replication of this volume.
    - `description` string — Optional. Description of the replication.
    - `largeVolumeConstituentCount` integer — Optional. Constituent volume count for large volume.
    - `peerClusterName` string — Required. Name of the user's local source cluster to be peered with the destination cluster.
    - `clusterLocation` string — Optional. Name of source cluster location associated with the Hybrid replication. This is a free-form field for the display purpose only.
  - `storagePool` string — Required. StoragePool name of the volume
  - `largeCapacityConfig` LargeCapacityConfig — Configuration for a Large Capacity Volume. A Large Capacity Volume supports sizes ranging from 4.8 TiB to 20 PiB; it is composed of multiple internal constituents, and must be created in a large capacity pool.
    - `constituentCount` integer — Optional. The number of internal constituents (e.g., FlexVols) for this large volume. The minimum number of constituents is 2.
  - `serviceLevel` 'SERVICE_LEVEL_UNSPECIFIED' | 'PREMIUM' | 'EXTREME' | 'STANDARD' | 'FLEX' — Output only. Service level of the volume
  - `throughputMibps` number, double — Optional. Throughput of the volume (in MiB/s)
  - `shareName` string — Required. Share name of the volume
  - `mountOptions` MountOption[] — Output only. Mount options of this volume
    - `instructions` string — Instructions for mounting
    - `export` string — Export string
    - `protocol` 'PROTOCOLS_UNSPECIFIED' | 'NFSV3' | 'NFSV4' | 'SMB' | 'ISCSI' | 'NVME' — Protocol to mount with.
    - `ipAddress` string — Output only. IP Address.
    - `exportFull` string — Full export string
  - `protocols` string[] — Required. Protocols required for the volume
  - `snapshotDirectory` boolean — Optional. Snapshot_directory if enabled (true) the volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots.
  - `largeCapacity` boolean — Optional. Flag indicating if the volume will be a large capacity volume or a regular volume. This field is used for legacy FILE pools. For Unified pools, use the `large_capacity_config` field instead. This field and `large_capacity_config` are mutually exclusive.
  - `activeDirectory` string — Output only. Specifies the ActiveDirectory name of a SMB volume.
  - `tieringPolicy` TieringPolicy — Defines tiering policy for the volume.
    - `tierAction` 'TIER_ACTION_UNSPECIFIED' | 'ENABLED' | 'PAUSED' — Optional. Flag indicating if the volume has tiering policy enable/pause. Default is PAUSED.
    - `hotTierBypassModeEnabled` boolean — Optional. Flag indicating that the hot tier bypass mode is enabled. Default is false. This is only applicable to Flex service level.
    - `coolingThresholdDays` integer — Optional. Time in days to mark the volume's data block as cold and make it eligible for tiering, can be range from 2-183. Default is 31.
  - `unixPermissions` string — Optional. Default unix style permission (e.g. 777) the mount point will be created with. Applicable for NFS protocol types only.
  - `usedGib` string, int64 — Output only. Used capacity in GIB of the volume. This is computed periodically and it does not represent the realtime usage.
  - `securityStyle` 'SECURITY_STYLE_UNSPECIFIED' | 'NTFS' | 'UNIX' — Optional. Security Style of the Volume
  - `backupConfig` BackupConfig — BackupConfig contains backup related config on a volume.
    - `backupPolicies` string[] — Optional. When specified, schedule backups will be created based on the policy configuration.
    - `scheduledBackupEnabled` boolean — Optional. When set to true, scheduled backup is enabled on the volume. This field should be nil when there's no backup policy attached.
    - `backupChainBytes` string, int64 — Output only. Total size of all backups in a chain in bytes = baseline backup size + sum(incremental backup size).
    - `backupVault` string — Optional. Name of backup vault. Format: projects/{project_id}/locations/{location}/backupVaults/{backup_vault_id}

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/netapp.md) · [All operations](https://skmtc.net/google/apis/netapp/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/netapp/versions/fa9ebea9e9dc/schema)
