Table Of Contents
- JSON-RPC 2.0 over WebSocket API
- Changelog
- API Methods
- acme.dns.authenticator
- alert
- alertclasses
- alertservice
- api_key
- app
- app.available_space
- app.categories
- app.certificate_choices
- app.config
- app.container_console_choices
- app.container_ids
- app.convert_to_custom
- app.create
- app.delete
- app.get_instance
- app.gpu_choices
- app.ip_choices
- app.outdated_docker_images
- app.pull_images
- app.query
- app.redeploy
- app.rollback
- app.rollback_versions
- app.similar
- app.start
- app.stop
- app.update
- app.upgrade
- app.upgrade_summary
- app.used_ports
- app.image
- app.ix_volume
- app.registry
- auth
- boot.environment
- catalog
- certificate
- cloud_backup
- cloudsync
- cloudsync.credentials
- config
- core
- cronjob
- device
- disk
- docker
- docker.network
- enclosure.label
- failover.reboot
- fc
- fc.fc_host
- fcport
- filesystem
- filesystem.acltemplate
- ftp
- group
- initshutdownscript
- ipmi
- iscsi.auth
- iscsi.extent
- iscsi.global
- iscsi.initiator
- iscsi.portal
- iscsi.target
- iscsi.targetextent
- keychaincredential
- keychaincredential.create
- keychaincredential.delete
- keychaincredential.generate_ssh_key_pair
- keychaincredential.get_instance
- keychaincredential.query
- keychaincredential.remote_ssh_host_key_scan
- keychaincredential.remote_ssh_semiautomatic_setup
- keychaincredential.setup_ssh_connection
- keychaincredential.update
- keychaincredential.used_by
- nfs
- pool
- pool.dataset
- pool.resilver
- pool.scrub
- pool.snapshottask
- pool.snapshottask.create
- pool.snapshottask.delete
- pool.snapshottask.delete_will_change_retention_for
- pool.snapshottask.get_instance
- pool.snapshottask.max_count
- pool.snapshottask.max_total_count
- pool.snapshottask.query
- pool.snapshottask.run
- pool.snapshottask.update
- pool.snapshottask.update_will_change_retention_for
- privilege
- rdma
- reporting
- reporting.exporters
- sharing.nfs
- sharing.smb
- smb
- snmp
- staticroute
- system
- system.general
- system.ntpserver
- system.reboot
- system.security
- system.security.info
- tn_connect
- truenas
- user
- vm
- vm.bootloader_options
- vm.clone
- vm.create
- vm.delete
- vm.flags
- vm.get_available_memory
- vm.get_console
- vm.get_display_devices
- vm.get_instance
- vm.get_memory_usage
- vm.log_file_download
- vm.log_file_path
- vm.port_wizard
- vm.poweroff
- vm.query
- vm.random_mac
- vm.resolution_choices
- vm.restart
- vm.resume
- vm.start
- vm.status
- vm.stop
- vm.supports_virtualization
- vm.suspend
- vm.update
- vm.virtualization_details
- vm.device
- webui.crypto
- webui.enclosure
- webui.main.dashboard
- API Events
- acme.dns.authenticator
- alert
- alertservice
- api_key
- app
- auth
- boot.environment
- certificate
- cloud_backup
- cloudsync
- cloudsync.credentials
- container
- container.device
- core
- cronjob
- directoryservices
- disk
- docker
- docker.network
- failover
- failover.disabled
- failover.reboot
- fc.fc_host
- fcport
- filesystem
- filesystem.acltemplate
- group
- initshutdownscript
- interface
- iscsi.auth
- iscsi.extent
- iscsi.initiator
- iscsi.portal
- iscsi.target
- iscsi.targetextent
- jbof
- kerberos.keytab
- kerberos.realm
- keychaincredential
- nvmet.host
- nvmet.host_subsys
- nvmet.namespace
- nvmet.port
- nvmet.port_subsys
- nvmet.subsys
- pool
- pool.dataset
- pool.scrub
- pool.snapshot
- pool.snapshottask
- privilege
- replication
- reporting
- reporting.exporters
- rsynctask
- s3.accesskey
- service
- sharing.nfs
- sharing.s3
- sharing.smb
- sharing.webshare
- staticroute
- system
- system.ntpserver
- system.reboot
- tn_connect
- truecommand
- tunable
- update
- user
- vm
- vm.device
- vmware
- zfs.tier
- zpool
- Jobs
- Query Methods
- Role-Based Access Control
Previous topic
Next topic
sharing.s3.query¶
Sent on sharing.s3 changes.
SharingS3AddedEvent
Type: objectNo Additional Properties
Id
Type: integerSharingS3Entry
Type: objectNo Additional Properties
Id
Type: integerUnique identifier for the bucket.
Name
Type: stringBucket name, following the S3 rules. Three to 63 characters of lowercase letters, digits, dots and hyphens, starting and ending with a letter or digit, no adjacent dots, and never an IPv4 address.
Must match regular expression:^[a-z0-9][a-z0-9.-]*[a-z0-9]$
Must be at least 3 characters long
Must be at most 63 characters long
Dataset
Type: stringThe ZFS dataset the bucket is. Created by sharing.s3.create and owned by it. Objects live in the s3data directory under its mount point, which the S3 service creates on its next start, owned by owner. Under the MULTIPROTOCOL permissions model the filesystem permissions on that tree govern S3 callers too, so a grantee other than the owner reaches only what they allow; set an ACL on the directory as for any share. Under S3 they are ignored and the grants decide instead.
Must be at least 1 characters long
Enabled
Type: boolean Default: trueWhether the bucket is served. Toggling restarts the S3 service.
Owner
Type: stringAccount that owns the bucket and bypasses its grants, owns the s3data directory when the S3 service creates it, and owns every object written under the BUCKET_OWNER_ENFORCED object ownership setting. Given by name, held by uid: the name is resolved when set and again whenever the bucket is read, so a renamed account reads as its new name, a reused name never inherits the bucket, and an account that no longer exists reads as its uid. Changing the owner later moves the grants, not the directory.
Must be at least 1 characters long
Owner Uid
Type: integerThe uid that owns the bucket.
Grants
Type: array of object Default: []Who may access the bucket and how, beyond its owner.
No Additional ItemsEach item of this array must be:
S3GrantEntry
Type: objectNo Additional Properties
Principal Type
Type: enum (of string)Who the grant applies to. A user, a group, or everyone with a valid access key.
Must be one of:
- "USER"
- "GROUP"
- "EVERYONE"
Access
Type: enum (of string)What the grant allows. READONLY, WRITEONLY and READWRITE allow the matching operations. DENY refuses every operation for the principal and outranks the bucket owner.
Must be one of:
- "READONLY"
- "WRITEONLY"
- "READWRITE"
- "DENY"
Name
Type: stringName of the user or group the grant applies to, resolved for display. Empty for EVERYONE.
Permissions Model
Type: enum (of string) Default: "S3"How the S3 service treats the filesystem permissions on the bucket's tree. S3 when the S3 service is the only door: those permissions are ignored in their entirety, and access is decided by the bucket's grants and, where object_ownership supports them, its S3 ACLs. MULTIPROTOCOL when SMB or NFS share the tree: the filesystem ACL is enforced as well as the grants, so an ACL set on the tree governs S3 callers too and narrowing it takes effect for them immediately. S3 ACLs are not supported on such a bucket at all, whatever object_ownership says, since no stored S3 record may decide what a write from another protocol could contradict. Which account an S3 operation runs as is object_ownership's answer, not this one's.
Must be one of:
- "S3"
- "MULTIPROTOCOL"
Object Ownership
Type: enum (of string) Default: "BUCKET_OWNER_ENFORCED"S3 Object Ownership, the bucket-level setting that controls ownership of objects uploaded to the bucket and disables or enables ACLs, and what GetBucketOwnershipControls reports. BUCKET_OWNER_ENFORCED (the default): ACLs are disabled, and the bucket owner automatically owns and has full control over every object in the bucket. ACLs no longer affect permissions to data in the bucket, and the bucket uses its grants to define access control. Requests to set or update ACLs fail with AccessControlListNotSupported; requests to read ACLs are supported. Only uploads with bucket owner full control ACLs, or uploads that do not specify an ACL, are accepted. BUCKET_OWNER_PREFERRED: the bucket owner owns and has full control over new objects that other accounts write to the bucket with the bucket-owner-full-control canned ACL. Objects uploaded with other ACLs are owned by the writing account. ACLs can be updated and can grant permissions. OBJECT_WRITER: the account that uploads an object owns the object, has full control over it, and can grant other users access to it through ACLs. A MULTIPROTOCOL bucket is always OBJECT_WRITER whatever is given here, and its ACLs stay disabled: the other protocols' users own the filesystem permissions on the tree.
Must be one of:
- "BUCKET_OWNER_ENFORCED"
- "BUCKET_OWNER_PREFERRED"
- "OBJECT_WRITER"
Versioning
Type: enum (of string) Default: "OFF"Bucket versioning state. One-way: a bucket that has been ENABLED or SUSPENDED cannot return to OFF here, only move between those two, so its stored versions never go unreachable. sharing.s3.force_disable_versioning is the one destructive way back, and it destroys every prior object version. NOTE: this is a licensed feature.
Must be one of:
- "OFF"
- "ENABLED"
- "SUSPENDED"
Snapshot Versions
Type: array of string Default: []Patterns over the names of the bucket dataset's ZFS snapshots, * and ? the only metacharacters, each matched against a whole name. Every snapshot a pattern selects serves each object's state frozen in it as a read-only version: listed by ListObjectVersions and read by its version id. Empty disables surfacing object versions from ZFS snapshots.
Each item of this array must be:
Must be at least 1 characters long
Snapshot Versions Max
Type: integer Default: 64How many of the newest selected snapshots one ListObjectVersions listing consults. Bounds the listing alone: a selected snapshot beyond it still serves by its version id.
Value must be greater or equal to 1 and lesser or equal to 4294967295
Multipart Etag
Type: enum (of string) Default: "COMPOSITE"What the ETag of an object assembled from a multipart upload is. COMPOSITE is the S3 construction: each part's ETag is the MD5 of its bytes and the object's is the MD5 of those digests with the part count appended, which costs an MD5 pass over every part. MINTED skips that pass for a part whose upload carried no Content-MD5 and gives the object an opaque token instead. Choose it only where nothing writing the bucket reads its ETags, such as a backup target that declares its own checksums: a client that recomputes the composite to verify or resume an upload sees a value it cannot match.
Must be one of:
- "COMPOSITE"
- "MINTED"
Object Lock
Type: boolean Default: falseWhether object lock is enabled. Requires versioning to be ENABLED and a permissions model other than MULTIPROTOCOL: a locked bucket is the S3 service's alone. One-way: the lock is latched on the bucket's dataset and cannot be disabled once enabled. NOTE: this is a licensed feature.
Audit
Default: nullActions audited on this bucket, ALL, or an empty list to audit nothing. null inherits the service's default_audit. CreateBucket and ListAllMyBuckets never match here — the service default_audit governs both — while DeleteBucket does match this bucket's own deletion. NOTE: this is a licensed feature.
No Additional Items
Each item of this array must be:
Must be one of:
- "GetObject"
- "PutObject"
- "DeleteObject"
- "GetObjectTagging"
- "PutObjectTagging"
- "DeleteObjectTagging"
- "ListBucket"
- "GetBucketLocation"
- "ListBucketMultipartUploads"
- "ListMultipartUploadParts"
- "AbortMultipartUpload"
- "PutObjectRetention"
- "PutObjectLegalHold"
- "ListAllMyBuckets"
- "GetObjectAcl"
- "PutObjectAcl"
- "GetBucketAcl"
- "PutBucketAcl"
- "PutBucketVersioning"
- "CreateBucket"
- "DeleteBucket"
Specific value:
"ALL"
SharingS3ChangedEvent
Type: objectNo Additional Properties
Id
Type: integerSharingS3Entry
Type: objectNo Additional Properties
Id
Type: integerUnique identifier for the bucket.
Name
Type: stringBucket name, following the S3 rules. Three to 63 characters of lowercase letters, digits, dots and hyphens, starting and ending with a letter or digit, no adjacent dots, and never an IPv4 address.
Must match regular expression:^[a-z0-9][a-z0-9.-]*[a-z0-9]$
Must be at least 3 characters long
Must be at most 63 characters long
Dataset
Type: stringThe ZFS dataset the bucket is. Created by sharing.s3.create and owned by it. Objects live in the s3data directory under its mount point, which the S3 service creates on its next start, owned by owner. Under the MULTIPROTOCOL permissions model the filesystem permissions on that tree govern S3 callers too, so a grantee other than the owner reaches only what they allow; set an ACL on the directory as for any share. Under S3 they are ignored and the grants decide instead.
Must be at least 1 characters long
Enabled
Type: boolean Default: trueWhether the bucket is served. Toggling restarts the S3 service.
Owner
Type: stringAccount that owns the bucket and bypasses its grants, owns the s3data directory when the S3 service creates it, and owns every object written under the BUCKET_OWNER_ENFORCED object ownership setting. Given by name, held by uid: the name is resolved when set and again whenever the bucket is read, so a renamed account reads as its new name, a reused name never inherits the bucket, and an account that no longer exists reads as its uid. Changing the owner later moves the grants, not the directory.
Must be at least 1 characters long
Owner Uid
Type: integerThe uid that owns the bucket.
Grants
Type: array of object Default: []Who may access the bucket and how, beyond its owner.
No Additional ItemsEach item of this array must be:
S3GrantEntry
Type: objectNo Additional Properties
Principal Type
Type: enum (of string)Who the grant applies to. A user, a group, or everyone with a valid access key.
Must be one of:
- "USER"
- "GROUP"
- "EVERYONE"
Access
Type: enum (of string)What the grant allows. READONLY, WRITEONLY and READWRITE allow the matching operations. DENY refuses every operation for the principal and outranks the bucket owner.
Must be one of:
- "READONLY"
- "WRITEONLY"
- "READWRITE"
- "DENY"
Name
Type: stringName of the user or group the grant applies to, resolved for display. Empty for EVERYONE.
Permissions Model
Type: enum (of string) Default: "S3"How the S3 service treats the filesystem permissions on the bucket's tree. S3 when the S3 service is the only door: those permissions are ignored in their entirety, and access is decided by the bucket's grants and, where object_ownership supports them, its S3 ACLs. MULTIPROTOCOL when SMB or NFS share the tree: the filesystem ACL is enforced as well as the grants, so an ACL set on the tree governs S3 callers too and narrowing it takes effect for them immediately. S3 ACLs are not supported on such a bucket at all, whatever object_ownership says, since no stored S3 record may decide what a write from another protocol could contradict. Which account an S3 operation runs as is object_ownership's answer, not this one's.
Must be one of:
- "S3"
- "MULTIPROTOCOL"
Object Ownership
Type: enum (of string) Default: "BUCKET_OWNER_ENFORCED"S3 Object Ownership, the bucket-level setting that controls ownership of objects uploaded to the bucket and disables or enables ACLs, and what GetBucketOwnershipControls reports. BUCKET_OWNER_ENFORCED (the default): ACLs are disabled, and the bucket owner automatically owns and has full control over every object in the bucket. ACLs no longer affect permissions to data in the bucket, and the bucket uses its grants to define access control. Requests to set or update ACLs fail with AccessControlListNotSupported; requests to read ACLs are supported. Only uploads with bucket owner full control ACLs, or uploads that do not specify an ACL, are accepted. BUCKET_OWNER_PREFERRED: the bucket owner owns and has full control over new objects that other accounts write to the bucket with the bucket-owner-full-control canned ACL. Objects uploaded with other ACLs are owned by the writing account. ACLs can be updated and can grant permissions. OBJECT_WRITER: the account that uploads an object owns the object, has full control over it, and can grant other users access to it through ACLs. A MULTIPROTOCOL bucket is always OBJECT_WRITER whatever is given here, and its ACLs stay disabled: the other protocols' users own the filesystem permissions on the tree.
Must be one of:
- "BUCKET_OWNER_ENFORCED"
- "BUCKET_OWNER_PREFERRED"
- "OBJECT_WRITER"
Versioning
Type: enum (of string) Default: "OFF"Bucket versioning state. One-way: a bucket that has been ENABLED or SUSPENDED cannot return to OFF here, only move between those two, so its stored versions never go unreachable. sharing.s3.force_disable_versioning is the one destructive way back, and it destroys every prior object version. NOTE: this is a licensed feature.
Must be one of:
- "OFF"
- "ENABLED"
- "SUSPENDED"
Snapshot Versions
Type: array of string Default: []Patterns over the names of the bucket dataset's ZFS snapshots, * and ? the only metacharacters, each matched against a whole name. Every snapshot a pattern selects serves each object's state frozen in it as a read-only version: listed by ListObjectVersions and read by its version id. Empty disables surfacing object versions from ZFS snapshots.
Each item of this array must be:
Must be at least 1 characters long
Snapshot Versions Max
Type: integer Default: 64How many of the newest selected snapshots one ListObjectVersions listing consults. Bounds the listing alone: a selected snapshot beyond it still serves by its version id.
Value must be greater or equal to 1 and lesser or equal to 4294967295
Multipart Etag
Type: enum (of string) Default: "COMPOSITE"What the ETag of an object assembled from a multipart upload is. COMPOSITE is the S3 construction: each part's ETag is the MD5 of its bytes and the object's is the MD5 of those digests with the part count appended, which costs an MD5 pass over every part. MINTED skips that pass for a part whose upload carried no Content-MD5 and gives the object an opaque token instead. Choose it only where nothing writing the bucket reads its ETags, such as a backup target that declares its own checksums: a client that recomputes the composite to verify or resume an upload sees a value it cannot match.
Must be one of:
- "COMPOSITE"
- "MINTED"
Object Lock
Type: boolean Default: falseWhether object lock is enabled. Requires versioning to be ENABLED and a permissions model other than MULTIPROTOCOL: a locked bucket is the S3 service's alone. One-way: the lock is latched on the bucket's dataset and cannot be disabled once enabled. NOTE: this is a licensed feature.
Audit
Default: nullActions audited on this bucket, ALL, or an empty list to audit nothing. null inherits the service's default_audit. CreateBucket and ListAllMyBuckets never match here — the service default_audit governs both — while DeleteBucket does match this bucket's own deletion. NOTE: this is a licensed feature.
No Additional Items
Each item of this array must be:
Must be one of:
- "GetObject"
- "PutObject"
- "DeleteObject"
- "GetObjectTagging"
- "PutObjectTagging"
- "DeleteObjectTagging"
- "ListBucket"
- "GetBucketLocation"
- "ListBucketMultipartUploads"
- "ListMultipartUploadParts"
- "AbortMultipartUpload"
- "PutObjectRetention"
- "PutObjectLegalHold"
- "ListAllMyBuckets"
- "GetObjectAcl"
- "PutObjectAcl"
- "GetBucketAcl"
- "PutBucketAcl"
- "PutBucketVersioning"
- "CreateBucket"
- "DeleteBucket"
Specific value:
"ALL"
SharingS3RemovedEvent
Type: objectNo Additional Properties
Id
Type: integerRequired roles: SHARING_S3_READ