Pure Storage Keytabs API

Keytab management functionality for Kerberos authentication.

Documentation

Specifications

Code Examples

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-schema/flasharray-rest-api-array-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-schema/flasharray-rest-api-volume-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-schema/flasharray-rest-api-host-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-structure/flasharray-rest-api-array-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-structure/flasharray-rest-api-volume-structure.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-schema/flashblade-rest-api-file-system-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-schema/flashblade-rest-api-bucket-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-schema/flashblade-rest-api-array-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-structure/flashblade-rest-api-file-system-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-structure/flashblade-rest-api-bucket-structure.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-schema/pure1-cloud-api-array-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-schema/pure1-cloud-api-metric-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-schema/pure1-cloud-api-alert-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-structure/pure1-cloud-api-array-structure.json

Other Resources

🔗
SDKs
https://pypi.org/project/py-pure-client/
🔗
SDKs
https://github.com/PureStorage-OpenConnect/PureStorage.Pure1
🔗
SDKs
https://github.com/PureStorage-OpenConnect/powershell-toolkit-3
🔗
SDKs
https://github.com/PureStorage-OpenConnect/rest-client
🔗
Integrations
https://github.com/PureStorage-OpenConnect/terraform-provider-flash
🔗
Integrations
https://github.com/PureStorage-OpenConnect/pure-fa-openmetrics-exporter
🔗
JSONLD
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-ld/pure-storage-flasharray-rest-api-context.jsonld
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/examples/flasharray-rest-api-volume-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/examples/flasharray-rest-api-array-example.json
🔗
SDKs
https://github.com/PureStorage-OpenConnect/flashblade-powershell
🔗
SDKs
https://github.com/purestorage/purity_fb_python_client
🔗
Integrations
https://github.com/PureStorage-OpenConnect/pure-fb-openmetrics-exporter
🔗
Tools
https://github.com/PureStorage-OpenConnect/flashblade-mcp-server
🔗
JSONLD
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-ld/pure-storage-flashblade-rest-api-context.jsonld
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/examples/flashblade-rest-api-file-system-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/examples/flashblade-rest-api-bucket-example.json
🔗
JSONLD
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/json-ld/pure-storage-pure1-cloud-api-context.jsonld
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/examples/pure1-cloud-api-array-example.json

OpenAPI Specification

pure-storage-keytabs-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: FlashArray REST Active Directory Keytabs API
  version: '2.52'
  description: 'Active Directory configuration authenticates users for NFS using Kerberos or SMB using Kerberos

    or New Technology LAN Manager (NTLM). Active Directory is also used to authorize users by

    mapping identities across the NFS and SMB protocols by using LDAP queries.

    '
servers:
- url: /
tags:
- name: Keytabs
  description: Keytab management functionality for Kerberos authentication.
paths:
  /api/2.26/keytabs:
    get:
      tags:
      - Keytabs
      summary: Pure Storage GET Keytabs
      description: List a Kerberos keytab file and its configuration information.
      parameters:
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Continuation_token'
      - $ref: '#/components/parameters/Filter'
      - $ref: '#/components/parameters/Ids'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Names'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Sort'
      responses:
        '200':
          description: OK
          headers:
            X-Request-ID:
              description: Supplied by client during request or generated by server.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeytabGetResponse'
    post:
      tags:
      - Keytabs
      summary: Pure Storage POST Keytabs
      description: Import a Kerberos keytab file from a Key Distribution Center.
      parameters:
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Name_prefixes'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KeytabPost'
        required: true
        x-codegen-request-body-name: keytab
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeytabResponse'
      x-codegen-request-body-name: keytab
    delete:
      tags:
      - Keytabs
      summary: Pure Storage DELETE Keytabs
      description: Delete a Kerberos keytab file.
      parameters:
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Ids'
      - $ref: '#/components/parameters/Names'
      responses:
        '200':
          description: OK
          headers:
            X-Request-ID:
              description: Supplied by client during request or generated by server.
              schema:
                type: string
          content: {}
  /api/2.26/keytabs/download:
    get:
      tags:
      - Keytabs
      summary: Pure Storage GET Keytabs/download
      description: Download a Kerberos keytab file. The file can be downloaded in the native binary format or a base64 encoded format. If not specified, defaults to binary.
      parameters:
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Keytab_ids'
      - $ref: '#/components/parameters/Keytab_names'
      responses:
        '200':
          description: OK
          headers:
            X-Request-ID:
              description: Supplied by client during request or generated by server.
              schema:
                type: string
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/KeytabFileResponse'
            text/plain:
              schema:
                $ref: '#/components/schemas/KeytabFileResponse'
  /api/2.26/keytabs/upload:
    post:
      tags:
      - Keytabs
      summary: Pure Storage POST Keytabs/upload
      description: Upload a Kerberos keytab file to the array. The file can be uploaded in the native binary format or a base64 encoded format. If not specified, defaults to binary. The procedure to upload a file may vary depending on the type of REST client.
      parameters:
      - $ref: '#/components/parameters/XRequestId'
      - $ref: '#/components/parameters/Name_prefixes'
      requestBody:
        content:
          multipart/form-data:
            schema:
              required:
              - keytab_file
              type: object
              properties:
                keytab_file:
                  $ref: '#/components/schemas/Keytab_file'
        required: true
      responses:
        '200':
          description: OK
          headers:
            X-Request-ID:
              description: Supplied by client during request or generated by server.
              schema:
                type: string
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/KeytabFileResponse'
            text/plain:
              schema:
                $ref: '#/components/schemas/KeytabFileResponse'
components:
  schemas:
    Keytab:
      allOf:
      - $ref: '#/components/schemas/_builtIn'
      - type: object
        properties:
          encryption_type:
            description: 'The encryption type used by the Kerberos key distribution center to

              generate the keytab.

              '
            type: string
            readOnly: true
            example: aes256-cts-hmac-sha1-96
          fqdn:
            description: 'The fully qualified domain name to which the keytab was issued.

              '
            type: string
            readOnly: true
            example: vip1.my-array.customerdomain.example.com
          kvno:
            description: 'The key version number of the key used to generate the keytab.

              '
            type: integer
            format: int64
            readOnly: true
            example: 1
          prefix:
            description: 'The prefix in the name of the keytab object. This is the same for

              all keytab objects created from a single keytab file. The name of

              a keytab entry is created in the format `<prefix>.<suffix>` for all

              entries.

              '
            type: string
            readOnly: true
            example: auth-keytabs
          principal:
            description: The service name for which the keytab was issued.
            type: string
            readOnly: true
            example: nfs
          realm:
            description: The Kerberos realm that issued the keytab.
            type: string
            readOnly: true
            example: my-secure-realm.com
          server:
            description: 'The server where the keytab is used.

              '
            title: FixedReference
            allOf:
            - $ref: '#/components/schemas/_fixedReference'
          source:
            description: 'A reference to the Active Directory configuration for the computer account

              that was used to create this keytab. If this keytab was uploaded from a

              file, all fields in the reference possess `null` values.

              '
            title: FixedReference
            allOf:
            - $ref: '#/components/schemas/_fixedReference'
          suffix:
            description: 'The suffix in the name of the keytab object, determined at creation

              time using the slot number of the keytab entry in a file and the

              number of existing entries with the same prefix. The name of a

              keytab entry is created in the format `<prefix>.<suffix>` for all

              entries.

              '
            type: integer
            format: int64
            readOnly: true
            example: 4
    KeytabPost:
      type: object
      properties:
        source:
          description: 'A reference to the Active Directory configuration for the computer account

            whose keys will be rotated in order to create new keytabs for all of its

            registered service principal names.

            '
          title: Reference
          allOf:
          - $ref: '#/components/schemas/_reference'
    KeytabResponse:
      type: object
      properties:
        items:
          description: A list of Kerberos keytab objects.
          type: array
          items:
            $ref: '#/components/schemas/Keytab'
    _reference:
      type: object
      properties:
        id:
          description: 'A globally unique, system-generated ID.

            The ID cannot be modified.

            '
          type: string
        name:
          description: 'The resource name,

            such as volume name, pod name, snapshot name, and so on.

            '
          type: string
        resource_type:
          description: 'Type of the object (full name of the endpoint).

            Valid values are `hosts`, `host-groups`, `network-interfaces`, `pods`,

            `ports`, `pod-replica-links`, `subnets`, `volumes`, `volume-snapshots`,

            `volume-groups`, `directories`, `policies/nfs`, `policies/smb`, and

            `policies/snapshot`, etc.

            '
          type: string
          readOnly: true
      x-aliases:
      - _referenceWithFixedType
    _fixedReferenceWithoutType:
      type: object
      properties:
        id:
          description: 'A globally unique, system-generated ID.

            The ID cannot be modified.

            '
          type: string
          readOnly: true
        name:
          description: 'The resource name, such as volume name, file system name,

            snapshot name, and so on.

            '
          type: string
          readOnly: true
      x-readOnly: true
    KeytabFileResponse:
      description: A Kerberos keytab file.
      type: string
      format: binary
    _builtIn:
      type: object
      properties:
        id:
          description: 'A non-modifiable, globally unique ID chosen by the system.

            '
          type: string
          readOnly: true
        name:
          description: Name of the object (e.g., a file system or snapshot).
          type: string
          readOnly: true
    KeytabGetResponse:
      allOf:
      - $ref: '#/components/schemas/PageInfo'
      - $ref: '#/components/schemas/KeytabResponse'
    Keytab_file:
      description: 'The keytab file to upload.

        '
      type: string
    _fixedReference:
      allOf:
      - $ref: '#/components/schemas/_fixedReferenceWithoutType'
      - type: object
        properties:
          resource_type:
            description: 'Type of the object (full name of the endpoint).

              Valid values are the unique part of the resource''s REST endpoint.

              For example, a reference to a file system would have a

              `resource_type` of `file-systems`.

              '
            type: string
            readOnly: true
    PageInfo:
      type: object
      properties:
        continuation_token:
          description: 'Continuation token that can be provided in the `continuation_token` query

            param to get the next page of data.

            If you use the `continuation_token` to page through data you

            are guaranteed to get all items exactly once regardless of

            how items are modified. If an item is added or deleted during

            the pagination then it may or may not be returned.

            The `continuation_token` is generated if the `limit` is less

            than the remaining number of items, and the default sort is used

            (no sort is specified).

            '
          type: string
        total_item_count:
          description: Total number of items after applying `filter` params.
          type: integer
          format: int32
  parameters:
    Filter:
      name: filter
      in: query
      description: 'Narrows down the results to only the response objects

        that satisfy the filter criteria.

        '
      schema:
        type: string
    Offset:
      name: offset
      in: query
      description: 'The offset of the first resource to return from a collection.

        '
      schema:
        type: integer
        format: int32
        minimum: 0
      example: 10
    Keytab_ids:
      name: keytab_ids
      in: query
      description: 'A comma-separated list of keytab IDs. If after filtering, there is not

        at least one resource that matches each of the elements, then an error is

        returned. This cannot be provided together with the `keytab_names` query

        parameter.

        '
      style: form
      explode: false
      schema:
        type: array
        items:
          type: string
    Continuation_token:
      name: continuation_token
      in: query
      description: 'A token used to retrieve the next page of data

        with some consistency guaranteed.

        The token is a Base64 encoded value.

        Set `continuation_token` to the system-generated token taken from the `x-next-token`

        header field of the response.

        A query has reached its last page when the response does not include a token.

        Pagination requires the `limit` and `continuation_token`

        query parameters.

        '
      schema:
        type: string
    Keytab_names:
      name: keytab_names
      in: query
      description: 'A comma-separated list of keytab names. If there is not at least one

        resource that matches each of the elements, then an error is returned. This

        cannot be provided together with `keytab_ids` query parameter.

        '
      style: form
      explode: false
      schema:
        type: array
        items:
          type: string
    XRequestId:
      name: X-Request-ID
      in: header
      description: 'Supplied by client during request or generated by server.

        '
      schema:
        type: string
    Limit:
      name: limit
      in: query
      description: 'Limits the size of the response to the specified number of objects on each page.

        To return the total number of resources, set `limit=0`.

        The total number of resources is returned as a `total_item_count` value.

        If the page size requested is larger than the system maximum limit,

        the server returns the maximum limit, disregarding the requested page size.

        '
      schema:
        type: integer
        format: int32
        minimum: 0
      example: 10
    Names:
      name: names
      in: query
      description: 'Performs the operation on the unique names specified.

        Enter multiple names in comma-separated format.

        For example, `name01,name02`.


        If there is not at least one resource that matches

        each of the elements of `names`, then an error is returned,

        except when creating new resources.

        '
      style: form
      explode: false
      schema:
        type: array
        items:
          type: string
    Ids:
      name: ids
      in: query
      description: 'A comma-separated list of resource IDs.

        If after filtering, there is not at least one resource that matches

        each of the elements of `ids`, then an error is returned.

        This cannot be provided together with the `name` or `names` query parameters.

        '
      style: form
      explode: false
      schema:
        type: array
        items:
          type: string
    Name_prefixes:
      name: name_prefixes
      in: query
      description: 'The prefix to use for the names of all Kerberos keytab objects

        that are being created.

        '
      schema:
        type: string
    Sort:
      name: sort
      in: query
      description: 'Sort the response by the specified fields (in descending order if ''-''

        is appended to the field name).

        NOTE: If you provide a sort you will not get a `continuation_token` in

        the response.

        '
      style: form
      explode: false
      schema:
        type: array
        items:
          pattern: ^[a-z]+(_[a-z]+)*-?
          type: string