VAST Data Views API

The Views API from VAST Data — 10 operation(s) for views.

OpenAPI Specification

vastdata-views-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  description: VAST Management API definition
  title: VAST API Swagger Schema activedirectory Views API
  version: '1.0'
security:
- ApiToken: []
tags:
- name: Views
paths:
  /views/{id}/s3cors_configuration/:
    delete:
      description: This endpoint delete all S3 CORS rules for a given view.
      operationId: delete_s3cors_configuration
      parameters:
      - description: View ID
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '204':
          description: CORS configuration deleted successfully
      summary: Delete all S3 CORS rules for View
      tags:
      - Views
    get:
      description: This endpoint returns all S3 CORS rules for a given view.
      operationId: read_s3cors_configuration
      parameters:
      - description: View ID
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: If true, return CORS rules in AWS camelCase format (aws_cors_rules). Default is false (cors_rules in snake_case).
        in: query
        name: aws_format
        schema:
          type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  aws_cors_rules:
                    description: List of S3 CORS rules in AWS camelCase format (when aws_format=true)
                    items:
                      $ref: '#/components/schemas/AWSS3CORSRuleData'
                    type: array
                  cors_rules:
                    description: List of S3 CORS rules in snake_case format (default)
                    items:
                      $ref: '#/components/schemas/S3CORSRuleData'
                    type: array
                title: cors_rules
                type: object
          description: CORS configuration retrieved successfully
      summary: Get S3 CORS configuration for View
      tags:
      - Views
    post:
      description: Creates S3 CORS rules for a view. Accepts either 'cors_rules' array directly or 'aws_cors_rules' array in AWS format. Exactly one of these fields must be provided.
      operationId: create_s3cors_configuration
      parameters:
      - description: View ID
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          '*/*':
            schema:
              description: Exactly one of 'cors_rules' or 'aws_cors_rules' must be provided
              properties:
                aws_cors_rules:
                  description: AWS format CORS rules array in camelCase (mutually exclusive with cors_rules)
                  items:
                    $ref: '#/components/schemas/AWSS3CORSRuleData'
                  type: array
                cors_rules:
                  description: List of S3 CORS rules in snake_case format (mutually exclusive with aws_cors_rules)
                  items:
                    $ref: '#/components/schemas/S3CORSRuleData'
                  type: array
              type: object
        x-originalParamName: S3CORSRuleCreateConfigurationParams
      responses:
        '201':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/S3CORSRuleData'
                title: cors_rules
                type: array
          description: CORS configuration created successfully
      summary: Create multiple S3 CORS rules for View
      tags:
      - Views
  /views/:
    get:
      description: This endpoint lists views. Parameters enable you to limit which views are returned based on various criteria.
      operationId: views_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - description: Filter by View name
        in: query
        name: name
        schema:
          type: string
      - description: Filter by Element Store path
        in: query
        name: path
        schema:
          type: string
      - description: Filter by NFS export alias
        in: query
        name: alias
        schema:
          type: string
      - description: Limit response by S3 bucket name
        in: query
        name: bucket
        schema:
          type: string
      - description: Filter by share name
        in: query
        name: share
        schema:
          type: string
      - description: Filter by view policy name
        in: query
        name: policy__name
        schema:
          type: string
      - description: Filter by view policy ID
        in: query
        name: policy__id
        schema:
          type: string
      - description: Filter response by cluster name.
        in: query
        name: cluster__name
        schema:
          type: string
      - description: Limit response by cluster ID
        in: query
        name: cluster__id
        schema:
          type: string
      - $ref: '#/components/parameters/NqnQP'
      - $ref: '#/components/parameters/IsDefaultSubsystemQP'
      - $ref: '#/components/parameters/TenantIdQP'
      - $ref: '#/components/parameters/TenantNameIContainsQP'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/View'
                title: Views
                type: array
          description: View details
      summary: List Views
      tags:
      - Views
    post:
      description: This endpoint creates a view.
      operationId: views_create
      requestBody:
        content:
          application/json:
            schema:
              properties:
                abac_tags:
                  description: list of ABAC tags
                  items:
                    type: string
                  type: array
                abe_max_depth:
                  description: Restricts ABE to a specified path depth. For example, if max depth is 3, ABE does not affect paths deeper than three levels. If not specified, ABE affects all path depths.
                  type: integer
                abe_protocols:
                  description: The protocols for which Access-Based Enumeration (ABE) is enabled
                  items:
                    enum:
                    - NFS
                    - SMB
                    - NFS4
                    - S3
                    type: string
                  type: array
                alias:
                  description: Relevant if NFS is included in the protocols array. An alias for the mount path of an NFSv3 export. The alias must begin with a forward slash ('/') and must consist of only ASCII characters. If specified, the alias that can be used by NFSv3 clients to mount the view.
                  type: string
                allow_anonymous_access:
                  description: not in use
                  type: boolean
                allow_s3_anonymous_access:
                  description: Allow S3 anonymous access to S3 bucket. If true, anonymous requests are granted provided that the object ACL grants access to the All Users group (in S3 Native security flavor) or the permission mode bits on the requested file and directory path grant access permission to 'others' (in NFS security flavor).
                  type: boolean
                allowed_delegations:
                  description: "Defines which types of NFSv4 file delegations are enabled for this view.\n- `NONE` means NFSv4 file delegations are disabled.\n- `READ` means read type NFSv4 file delegations can be granted to a client opening a file.\n- `WRITE` means write type NFSv4 file delegations can be granted to a client opening a file.\n- `READ_WRITE` means both read and write type NFSv4 file delegations\n  can be granted to a client opening a file.\n- `USE_TENANT_ALLOWED_DELEG` (default) means the view inherits the tenant’s `allowed_delegations`.\n\n**Important:** If the tenant has `DISABLED` delegations, this overrides the view entirely.\nThe effective delegations value for this view is forced to `NONE`, regardless of the view’s setting.\n"
                  enum:
                  - NONE
                  - READ
                  - WRITE
                  - READ_WRITE
                  - USE_TENANT_ALLOWED_DELEG
                  type: string
                  x-cli-header: Allowed NFSv4 File Delegations
                auto_commit:
                  description: 'Applicable if locking is enabled. Sets the auto-commit time for files that are locked automatically. These files are locked automatically after the auto-commit period elapses from the time the file is saved. Files locked automatically are locked for the default-retention-period, after which they are unlocked. Specify as an integer value followed by a letter for the unit (h - hours, d - days, y - years). Example: 2h (2 hours).'
                  type: string
                bucket:
                  description: A name for the S3 bucket name. Must be specified if S3 bucket is specified in protocols.
                  type: string
                bucket_creators:
                  description: For S3 endpoint views, specify a list of users, by user name, whose bucket create requests use this view. Any request to create an S3 bucket that is sent by S3 API by a specified user will use this S3 Endpoint view. Users should not be specified as bucket creators in more than one S3 Endpoint view. Naming a user as a bucket creator in two S3 Endpoint views will fail the creation of the view with an error.
                  items:
                    type: string
                  type: array
                bucket_creators_groups:
                  description: 'For S3 endpoint views, specify a list of groups, by group name, whose bucket create requests use this view. Any request to create an S3 bucket that is sent by S3 API by a user who belongs to a group listed here will use this S3 Endpoint view. Take extra care not to duplicate bucket creators through groups: If you specify a group as a bucket creator group in one view and you also specify a user who belongs to that group as a bucket creator user in another view, view creation will not fail. Yet, there is a conflict between the two configurations and the selection of a view for configuring the user''s buckets is not predictable.'
                  items:
                    type: string
                  type: array
                bucket_logging:
                  properties:
                    destination_id:
                      description: Specifies a view ID as the destination bucket for S3 bucket logging. The specified view must have the S3 bucket protocol enabled, must be on the same tenant as the view itself (the source view), must have the same bucket owner, and cannot be the same view as the source view. It also must not have S3 object locking enabled.  In bucket logging, a log entry is created in AWS log format for each request made to the source bucket. The log entries are periodically uploaded to the destination bucket. Configuring destination_id enables S3 bucket logging for the view.
                      type: integer
                      x-cli-header: Bucket logging destination id
                    key_format:
                      description: 'The format for the S3 bucket logging object keys. SIMPLE_PREFIX=[DestinationPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString], PARTITIONED_PREFIX_EVENT_TIME=[DestinationPrefix][SourceUsername]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString] where the partitioning is done based on the time when the logged events occurred, PARTITIONED_PREFIX_DELIVERY_TIME=[DestinationPrefix][SourceUsername]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString] where the partitioning is done based on the time when the log object has been delivered to the destination bucket. Default: SIMPLE_PREFIX'
                      type: string
                      x-cli-header: Bucket logging key format
                    prefix:
                      description: Specifies a prefix to be prepended to each key of a log object uploaded to the destination bucket. This prefix can be used to categorize log objects; for example, if you use the same destination bucket for multiple source buckets. The prefix can be up to 128 characters and must follow S3 object naming rules.
                      type: string
                      x-cli-header: Bucket logging prefix
                  required:
                  - destination_id
                  type: object
                bucket_owner:
                  description: Specifies a user to be the bucket owner. Specify as user name. Must be specified if S3 Bucket is included in protocols.
                  type: string
                bucket_owner_type:
                  enum:
                  - USER
                  - ROLE
                  type: string
                cluster_id:
                  description: Cluster ID
                  type: integer
                create_dir:
                  description: Create a directory at the specified path. Set to true if the specified path does not exist.
                  type: boolean
                create_dir_acl:
                  description: Define ACL for the newly created dir
                  items:
                    description: ACE
                    properties:
                      grantee:
                        description: type of grantee
                        enum:
                        - users
                        - groups
                        type: string
                      group_type:
                        enum:
                        - NFS
                        - S3
                        - SMB
                        type: string
                      perm:
                        description: The type of permission to grant to the grantee
                        enum:
                        - READ
                        - CHANGE
                        - FULL
                        - NONE
                        type: string
                      sid_str:
                        description: SID attribute of grantee. Specify this attribute or another for the grantee.
                        type: string
                      uid_or_gid:
                        description: UID of user type grantee or GID of group type grantee. Specify this attribute or another attribute for the grantee.
                        type: string
                      vid_or_vaid:
                        description: VID of user type grantee or VAID of group type grantee. This is a VAST user or group attribute. Specify this attribute or another attribute for the guarantee.
                        type: string
                    required:
                    - grantee
                    - perm
                    type: object
                  type: array
                create_dir_mode:
                  description: Unix permissions mode for the new dir
                  type: integer
                default_retention_period:
                  description: 'Relevant if locking is enabled. Required if s3_locks_retention_mode is set to governance or compliance. Specifies a default retention period for objects in the bucket. If set, object versions that are placed in the bucket are automatically protected with the specified retention lock. Otherwise, by default, each object version has no automatic protection but can be configured with a retention period or legal hold. Specify as an integer followed by h for hours, d for days, m for months, or y for years. For example: 2d or 1y.'
                  type: string
                event_notifications:
                  items:
                    $ref: '#/components/schemas/EventNotification'
                  type: array
                files_retention_mode:
                  description: Applicable if locking is enabled. The retention mode for new files. For views enabled for NFSv3 or SMB, if locking is enabled, files_retention_mode must be set to GOVERNANCE or COMPLIANCE. If the view is enabled for S3 and not for NFSv3 or SMB, files_retention_mode can be set to NONE. If GOVERNANCE, locked files cannot be deleted or changed. The Retention settings can be shortened or extended by users with sufficient permissions. If COMPLIANCE, locked files cannot be deleted or changed. Retention settings can be extended, but not shortened, by users with sufficient permissions. If NONE (S3 only), the retention mode is not set for the view; it is set individually for each object.
                  type: string
                indestructible_object_duration:
                  description: Retention period for objects, in days. Each object in the bucket is protected from deletion, overwriting, renaming and metadata changes for the specified number of days after its creation date.
                  type: integer
                inherit_acl:
                  description: Indicates whether the directory should inherit ACLs from its parent directory
                  type: boolean
                is_default_subsystem:
                  description: Set to true to set view to be the default subsystem for block storage. There can be up to one default subsystem per tenant. The default subsystem is the default view selected when creating a block volume if no view is specified.
                  type: boolean
                is_indestructible_object_enabled:
                  description: Set to true to enable indestructible object mode on the view. This is supported only if S3 is the only specified protocol. Other limitations also apply.
                  type: boolean
                is_kafka_encrypted_conn_allowed:
                  description: True if encrypted connection is allowed for Kafka
                  type: boolean
                  x-cli-header: Allow encrypted connection
                is_kafka_unencrypted_conn_allowed:
                  description: True if unencrypted connection is allowed for Kafka
                  type: boolean
                  x-cli-header: Allow unencrypted connection
                is_seamless:
                  description: Supports seamless failover between replication peers by syncing file handles between the view and remote views on the replicated path on replication peers. This enables NFSv3 client users to retain the same mount point to the view in the event of a failover of the view path to a replication peer. This feature enables NFSv3 client users to retain the same mount point to the view in the event of a failover of the view path to a replication peer. Enabling this option may cause overhead and should only be enabled when the use case is relevant. To complete the configuration for seamless failover between any two peers, a seamless view must be created on each peer.
                  type: boolean
                kafka_encrypted_auth_mechanism:
                  description: Authentication mechanism for encrypted connection
                  enum:
                  - NONE
                  - SASL_PLAIN
                  type: string
                kafka_first_join_group_timeout_sec:
                  description: Kafka first join group timeout, in seconds
                  type: integer
                  x-cli-header: Kafka First Join Group Timeout
                kafka_is_authorization_required:
                  description: True if authorization is required for Kafka
                  type: boolean
                  x-cli-header: Authorization required
                kafka_rejoin_group_timeout_sec:
                  description: Kafka rejoin group timeout, in seconds
                  type: integer
                  x-cli-header: Kafka Rejoin Group Timeout
                kafka_unencrypted_auth_mechanism:
                  description: Authentication mechanism for unencrypted connection
                  enum:
                  - NONE
                  - SASL_PLAIN
                  type: string
                kafka_vip_pools:
                  description: For Kafka-enabled views, an array of IDs of Virtual IP pools used to access event topics exposed by the view. The specified virtual IP pool must belong to the same tenant as the Kafka-enabled view. Must also not be a virtual IP pool that is excluded by the view policy's virtual IP pool association.
                  items:
                    type: integer
                  type: array
                locking:
                  description: Set to true to enable object locking on a view. Object locking cannot be disabled after the view is created. Must be true if s3_versioning is true.
                  type: boolean
                max_retention_period:
                  description: 'Applicable if locking is enabled. Sets a maximum retention period for files that are locked in the view. Files cannot be locked for longer than this period, whether they are locked manually (by setting the atime) or automatically, using auto-commit. Specify as an integer value followed by a letter for the unit (m - minutes, h - hours, d - days, y - years). Example: 2y (2 years).'
                  type: string
                min_retention_period:
                  description: 'Applicable if locking is enabled. Sets a minimum retention period for files that are locked in the view. Files cannot be locked for less than this period, whether locked manually (by setting the atime) or automatically, using auto-commit. Specify as an integer value followed by a letter for the unit (h - hours, d - days, m - months, y - years). Example: 1d (1 day).'
                  type: string
                name:
                  description: A name for the view
                  type: string
                nfs_interop_flags:
                  description: Indicates whether the view should support simultaneous access to NFS3/NFS4/SMB protocols.
                  enum:
                  - BOTH_NFS3_AND_NFS4_INTEROP_DISABLED
                  - ONLY_NFS3_INTEROP_ENABLED
                  - ONLY_NFS4_INTEROP_ENABLED
                  - BOTH_NFS3_AND_NFS4_INTEROP_ENABLED
                  type: string
                owner:
                  description: The owner of the folder. Specify the owner using the attribute type set by owner_type. You can specify a group as the owner, as supported by SMB. To enable setting a group as the owner, set owner_is_group=true. In all cases, set owning_group also.
                  type: string
                owner_is_group:
                  description: Set to true if passing a group as the owner of the folder. This feature is used to enable setting a group as the owner, as supported by SMB.
                  type: boolean
                owner_type:
                  description: The type of attribute used to specify owner.
                  type: string
                owning_group:
                  description: The owning group of the folder.
                  type: string
                owning_group_type:
                  description: The type of attribute to use to specify the owning group of the folder.
                  type: string
                path:
                  description: The full Element Store path to from the top level of the storage system on the cluster to the location that you want to expose. Begin with '/'. Do not include a trailing slash.
                  type: string
                policy_id:
                  description: Every view must be attached to one view policy, which specifies further configurations. Specify by view policy ID which view policy should be used for the view.
                  type: integer
                protocols:
                  description: Protocols enabled for access to the view. 'NFS' enables access from NFS version 3, 'NFS4' enables access from NFS version 4.1 and 4.2, S3' creates an S3 bucket on the view, 'ENDPOINT' creates an S3 endpoint, used as template for views created via S3 RPCs, DATABASE exposes the view as a VAST database. KAFKA enables events related to elements on the view path to be published to the VAST Event Broker. BLOCK exposes the view as a block storage subsystem.
                  items:
                    enum:
                    - NFS
                    - SMB
                    - NFS4
                    - S3
                    - ENDPOINT
                    - DATABASE
                    - KAFKA
                    - BLOCK
                    type: string
                  type: array
                qos_policy:
                  description: QoS Policy
                  type: string
                qos_policy_id:
                  description: Associates a QoS policy with the view.
                  type: integer
                s3_locks_retention_mode:
                  description: The retention mode for new object versions stored in this bucket. You can override this if you upload a new object version with an explicit retention mode and period.
                  type: string
                s3_object_ownership_rule:
                  type: string
                s3_unverified_lookup:
                  description: S3 Unverified Lookup
                  type: boolean
                s3_versioning:
                  description: Enable S3 Versioning if S3 bucket. Versioning cannot be disabled after the view is created.
                  type: boolean
                select_for_live_monitoring:
                  description: Enables live monitoring on the view. Live monitoring can be enabled for up to ten views at one time. Analytics data for views is polled every 5 minutes by default and every 10 seconds with live monitoring.
                  type: boolean
                share:
                  description: SMB share name. Must be specified if SMB is specified in protocols.
                  type: string
                share_acl:
                  description: Share-level ACL details
                  properties:
                    acl:
                      description: Share-level ACL
                      items:
                        description: Share-level ACE
                        properties:
                          fqdn:
                            description: FQDN of the chosen grantee
                            type: string
                          grantee:
                            description: grantee type
                            enum:
                            - users
                            - groups
                            type: string
                          name:
                            description: name of the chosen grantee
                            type: string
                          perm:
                            description: Grantee’s permissions
                            enum:
                            - FULL
                            - CHANGE
                            - READ
                            type: string
                          sid_str:
                            description: grantee’s SID
                            type: string
                          uid_or_gid:
                            description: grantee’s uid (if user) or gid (if group)
                            type: integer
                        type: object
                      type: array
                    enabled:
                      description: True if Share ACL is enabled on the view, otherwise False
                      type: boolean
                  type: object
                smb_encryption_state:
                  description: Defines the encryption level for SMB
                  enum:
                  - AVAILABLE
                  - DESIRED
                  - REQUIRED
                  type: string
                tenant_id:
                  description: Associates the specified tenant with the view.
                  type: integer
                user_impersonation:
                  $ref: '#/components/schemas/UserImpersonation'
              required:
              - path
              - policy_id
              type: object
        x-originalParamName: ViewCreateParams
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/View'
          description: ''
      summary: Create View
      tags:
      - Views
  /views/close_smb_handle/:
    delete:
      description: This endpoint queries open smb filehandles.
      operationId: close_smb_handle
      parameters:
      - description: File path
        in: query
        name: file_path
        required: true
        schema:
          type: string
      - description: Session ID
        in: query
        name: session_id
        required: true
        schema:
          type: string
      - description: Handle ID
        in: query
        name: session_handle_unique_id
        required: true
        schema:
          type: string
      - description: Tenant GUID
        in: query
        name: tenant_guid
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtocolHandle'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: The request contains invalid data.
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service temporarily unavailable, try again later.
      summary: Close open SMB filehandles
      tags:
      - Views
  /views/list_open_smb_handles/:
    get:
      description: This endpoint queries open smb filehandles.
      operationId: list_open_smb_handles
      parameters:
      - description: File path
        in: query
        name: file_path
        required: true
        schema:
          type: string
      - description: Tenant GUID
        in: query
        name: tenant_guid
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtocolHandle'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: The request contains invalid data.
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service temporarily unavailable, try again later.
      summary: Query open SMB filehandles
      tags:
      - Views
  /views/list_seamless_peers/:
    get:
      description: This endpoint lists replication peers available for seamless replication.
      operationId: list_seamless_peers
      parameters:
      - description: File path
        in: query
        name: file_path
        required: true
        schema:
          type: string
      - description: Tenant's globally unique identifier
        in: query
        name: tenant_guid
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/SeamlessPeer'
                title: SeamlessPeers
                type: array
          description: ''
      summary: Get a list of available seamless peers
      tags:
      - Views
  /views/{id}/:
    delete:
      description: This endpoint deletes a view.
      operationId: views_delete
      parameters:
      - description: View ID
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: Force View removal
        in: query
        name: force
        schema:
          default: false
          type: boolean
      responses:
        '204':
          description: Deleted
      summary: Delete View
      tags:
      - Views
    get:
      description: This endpoint returns details of a view.
      operationId: views_read
      parameters:
      - description: The ID of the view to show
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            applicati

# --- truncated at 32 KB (88 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vastdata/refs/heads/main/openapi/vastdata-views-api-openapi.yml