Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions specification/storage/data-plane/FileStorage/main.tsp
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,7 @@ namespace Storage.File;
enum Versions {
/** API Version 2026-06-06 */
v2026_06_06: "2026-06-06",

/** API Version 2026-12-06 */
v2026_12_06: "2026-12-06",
}
194 changes: 194 additions & 0 deletions specification/storage/data-plane/FileStorage/models.tsp
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import "@typespec/rest";
import "@typespec/http";
import "@typespec/xml";
import "@typespec/versioning";
import "@azure-tools/typespec-azure-core";
import "@azure-tools/typespec-client-generator-core";

using TypeSpec.Http;
using TypeSpec.Versioning;
using Azure.ClientGenerator.Core;

namespace Storage.File;
Expand Down Expand Up @@ -282,6 +284,22 @@ union NfsFileType {

/** SymLink */
SymLink: "SymLink",

/** BlockDevice */
@added(Versions.v2026_12_06)
BlockDevice: "BlockDevice",

/** CharacterDevice */
@added(Versions.v2026_12_06)
CharacterDevice: "CharacterDevice",

/** Socket */
@added(Versions.v2026_12_06)
Socket: "Socket",

/** Fifo */
@added(Versions.v2026_12_06)
Fifo: "Fifo",
}

/** The file property semantics. */
Expand Down Expand Up @@ -387,6 +405,22 @@ enum ListFilesIncludeType {

/** PermissionKey */
PermissionKey,

/** Permissions */
@added(Versions.v2026_12_06)
Permissions,

/** LinkCount */
@added(Versions.v2026_12_06)
LinkCount,

/** NfsAttributes */
@added(Versions.v2026_12_06)
NfsAttributes,

/** All */
@added(Versions.v2026_12_06)
All,
}

/** The type of share information to include in the listing. */
Expand Down Expand Up @@ -523,6 +557,36 @@ model FilesAndDirectoriesListSegment {
@Xml.unwrapped
@Xml.name("File")
fileItems: FileItem[];

/** The symbolic link items. */
@added(Versions.v2026_12_06)
@Xml.unwrapped
@Xml.name("SymLink")
symLinkItems?: SymLinkItem[];

/** The block device items. */
@added(Versions.v2026_12_06)
@Xml.unwrapped
@Xml.name("BlockDevice")
blockDeviceItems?: BlockDeviceItem[];

/** The character device items. */
@added(Versions.v2026_12_06)
@Xml.unwrapped
@Xml.name("CharDevice")
charDeviceItems?: CharDeviceItem[];

/** The FIFO items. */
@added(Versions.v2026_12_06)
@Xml.unwrapped
@Xml.name("Fifo")
fifoItems?: FifoItem[];

/** The socket items. */
@added(Versions.v2026_12_06)
@Xml.unwrapped
@Xml.name("Socket")
socketItems?: SocketItem[];
}

/** A listed directory item. */
Expand All @@ -542,6 +606,11 @@ model DirectoryItem {

/** The permission key. */
@Xml.name("PermissionKey") permissionKey?: string;

/** NFS only. The link count of the directory. */
@added(Versions.v2026_12_06)
@Xml.name("LinkCount")
linkCount?: int64;
}

/** An encoded string value. */
Expand Down Expand Up @@ -588,6 +657,21 @@ model FileProperty {

/** The ETag of the file. */
@Xml.name("Etag") eTag?: Azure.Core.eTag;

/** NFS only. The owner user identifier (UID) of the file. */
@added(Versions.v2026_12_06)
@Xml.name("Uid")
owner?: string;

/** NFS only. The owner group identifier (GID) of the file. */
@added(Versions.v2026_12_06)
@Xml.name("Gid")
group?: string;

/** NFS only. The file mode of the file. */
@added(Versions.v2026_12_06)
@Xml.name("Mode")
fileMode?: string;
}

/** A listed file item. */
Expand All @@ -607,6 +691,116 @@ model FileItem {

/** The permission key. */
@Xml.name("PermissionKey") permissionKey?: string;

/** NFS only. The link count of the file. */
@added(Versions.v2026_12_06)
@Xml.name("LinkCount")
linkCount?: int64;

/** NFS only. The type of the file. */
@added(Versions.v2026_12_06)
@Xml.name("FileType")
fileType?: NfsFileType;
}

/** A listed symbolic link item. */
@added(Versions.v2026_12_06)
@Xml.name("SymLink")
model SymLinkItem {
/** The symbolic link name. */
@Xml.name("Name") name: StringEncoded;

/** The file ID. */
@Xml.name("FileId") fileId?: string;

/** File properties. */
@Xml.name("Properties") properties: FileProperty;

/** NFS only. The link count of the symbolic link. */
@Xml.name("LinkCount") linkCount?: int64;

/** NFS only. The path to the original file, the symbolic link is pointing to. */
@Xml.name("LinkText") linkText?: string;
}

/** A listed block device item. */
@added(Versions.v2026_12_06)
@Xml.name("BlockDevice")
model BlockDeviceItem {
/** The block device name. */
@Xml.name("Name") name: StringEncoded;

/** The file ID. */
@Xml.name("FileId") fileId?: string;

/** File properties. */
@Xml.name("Properties") properties: FileProperty;

/** NFS only. The link count of the block device. */
@Xml.name("LinkCount") linkCount?: int64;

/** NFS only. The major device number of the block device. */
@Xml.name("DeviceMajor") deviceMajor?: int64;

/** NFS only. The minor device number of the block device. */
@Xml.name("DeviceMinor") deviceMinor?: int64;
}

/** A listed character device item. */
@added(Versions.v2026_12_06)
@Xml.name("CharDevice")
model CharDeviceItem {
/** The character device name. */
@Xml.name("Name") name: StringEncoded;

/** The file ID. */
@Xml.name("FileId") fileId?: string;

/** File properties. */
@Xml.name("Properties") properties: FileProperty;

/** NFS only. The link count of the character device. */
@Xml.name("LinkCount") linkCount?: int64;

/** NFS only. The major device number of the character device. */
@Xml.name("DeviceMajor") deviceMajor?: int64;

/** NFS only. The minor device number of the character device. */
@Xml.name("DeviceMinor") deviceMinor?: int64;
}

/** A listed FIFO item. */
@added(Versions.v2026_12_06)
@Xml.name("Fifo")
model FifoItem {
/** The FIFO name. */
@Xml.name("Name") name: StringEncoded;

/** The file ID. */
@Xml.name("FileId") fileId?: string;

/** File properties. */
@Xml.name("Properties") properties: FileProperty;

/** NFS only. The link count of the FIFO. */
@Xml.name("LinkCount") linkCount?: int64;
}

/** A listed socket item. */
@added(Versions.v2026_12_06)
@Xml.name("Socket")
model SocketItem {
/** The socket name. */
@Xml.name("Name") name: StringEncoded;

/** The file ID. */
@Xml.name("FileId") fileId?: string;

/** File properties. */
@Xml.name("Properties") properties: FileProperty;

/** NFS only. The link count of the socket. */
@Xml.name("LinkCount") linkCount?: int64;
}

/** A listed Azure Storage handle item. */
Expand Down
11 changes: 10 additions & 1 deletion specification/storage/data-plane/FileStorage/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ These are the global settings for the FileStorage API.

```yaml
openapi-type: data-plane
tag: package-2026-06-tsp
tag: package-2026-12-tsp
use-internal-constructors: true
add-credentials: true
```
Expand All @@ -40,6 +40,15 @@ input-file:
- stable/2026-06-06/generated_file.json
```

### Tag: package-2026-12-tsp

These settings apply only when `--tag=package-2026-12-tsp` is specified on the command line.

```yaml $(tag) == 'package-2026-12-tsp'
input-file:
- stable/2026-12-06/generated_file.json
```

### Suppression

```yaml
Expand Down
Loading