lakeFS internal API

The internal API from lakeFS — 24 operation(s) for internal.

OpenAPI Specification

lakefs-internal-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: lakeFS HTTP API
  title: lakeFS actions internal API
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  version: 1.0.0
servers:
- url: /api/v1
  description: lakeFS server endpoint
security:
- jwt_token: []
- basic_auth: []
- cookie_auth: []
- oidc_auth: []
- saml_auth: []
tags:
- name: internal
paths:
  /setup_comm_prefs:
    post:
      tags:
      - internal
      operationId: setupCommPrefs
      summary: setup communications preferences
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommPrefsInput'
      responses:
        200:
          description: communication preferences saved successfully
        400:
          $ref: '#/components/responses/BadRequest'
        409:
          description: setup was already completed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        412:
          description: wrong setup state for this operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /setup_lakefs:
    get:
      tags:
      - internal
      operationId: getSetupState
      summary: check if the lakeFS installation is already set up
      security: []
      responses:
        200:
          description: lakeFS setup state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetupState'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
      - internal
      operationId: setup
      summary: setup lakeFS and create a first user
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Setup'
      responses:
        200:
          description: user created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialsWithSecret'
        400:
          $ref: '#/components/responses/BadRequest'
        409:
          description: setup was already called
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /auth/capabilities:
    get:
      tags:
      - internal
      operationId: getAuthCapabilities
      summary: list authentication capabilities supported
      security: []
      responses:
        200:
          description: auth capabilities
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthCapabilities'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /repositories/{repository}/metadata:
    parameters:
    - in: path
      name: repository
      required: true
      schema:
        type: string
    post:
      tags:
      - internal
      operationId: setRepositoryMetadata
      summary: set repository metadata
      description: 'Set repository metadata. This will only add or update the provided keys, and will not remove any existing keys.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RepositoryMetadataSet'
      responses:
        204:
          description: repository metadata set successfully
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
    delete:
      tags:
      - internal
      operationId: deleteRepositoryMetadata
      summary: delete repository metadata
      description: 'Delete specified keys from the repository''s metadata.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RepositoryMetadataKeys'
      responses:
        204:
          description: repository metadata keys deleted successfully
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /repositories/{repository}/refs/dump:
    parameters:
    - in: path
      name: repository
      required: true
      schema:
        type: string
    put:
      tags:
      - internal
      operationId: dumpRefs
      summary: 'Dump repository refs (tags, commits, branches) to object store

        Deprecated: a new API will introduce long running operations

        '
      responses:
        201:
          description: refs dump
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefsDump'
        400:
          $ref: '#/components/responses/ValidationError'
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /repositories/{repository}/refs/restore:
    parameters:
    - in: path
      name: repository
      required: true
      schema:
        type: string
    put:
      tags:
      - internal
      operationId: restoreRefs
      summary: 'Restore repository refs (tags, commits, branches) from object store.

        Deprecated: a new API will introduce long running operations

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefsRestore'
      responses:
        200:
          description: refs successfully loaded
        400:
          $ref: '#/components/responses/ValidationError'
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /repositories/{repository}/commits:
    parameters:
    - in: path
      name: repository
      required: true
      schema:
        type: string
    post:
      tags:
      - internal
      operationId: CreateCommitRecord
      summary: create commit record
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommitRecordCreation'
      responses:
        204:
          description: commit record created
        400:
          $ref: '#/components/responses/ValidationError'
        401:
          $ref: '#/components/responses/Unauthorized'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /repositories/{repository}/branches/{branch}/objects/stage_allowed:
    parameters:
    - in: path
      name: repository
      required: true
      schema:
        type: string
    - in: path
      name: branch
      required: true
      schema:
        type: string
    - in: query
      name: path
      description: relative to the branch
      required: true
      schema:
        type: string
    get:
      tags:
      - internal
      operationId: uploadObjectPreflight
      responses:
        204:
          description: User has permissions to upload this object. This does not guarantee that the upload will be successful or even possible. It indicates only the permission at the time of calling this endpoint
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /repositories/{repository}/branches/{branch}/objects:
    parameters:
    - in: path
      name: repository
      required: true
      schema:
        type: string
    - in: path
      name: branch
      required: true
      schema:
        type: string
    - in: query
      name: path
      description: relative to the branch
      required: true
      schema:
        type: string
    put:
      deprecated: true
      tags:
      - internal
      operationId: stageObject
      summary: stage an object's metadata for the given branch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ObjectStageCreation'
      responses:
        201:
          description: object metadata
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectStats'
        400:
          $ref: '#/components/responses/ValidationError'
        401:
          $ref: '#/components/responses/Unauthorized'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /repositories/{repository}/refs/{branch}/symlink:
    parameters:
    - in: path
      name: repository
      required: true
      schema:
        type: string
    - in: path
      name: branch
      required: true
      schema:
        type: string
    - in: query
      name: location
      schema:
        type: string
      description: path to the table data
    post:
      tags:
      - internal
      operationId: createSymlinkFile
      summary: creates symlink files corresponding to the given directory
      responses:
        201:
          description: location created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StorageURI'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /repositories/{repository}/metadata/object/{type}/{object_id}:
    parameters:
    - in: path
      name: repository
      required: true
      schema:
        type: string
    - in: path
      name: object_id
      required: true
      schema:
        type: string
    - in: path
      name: type
      required: true
      schema:
        type: string
        enum:
        - range
        - meta_range
    get:
      tags:
      - internal
      operationId: getMetadataObject
      summary: return a lakeFS metadata object by ID
      parameters:
      - in: query
        name: presign
        required: false
        schema:
          type: boolean
      responses:
        200:
          description: object content
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
          headers:
            Content-Length:
              schema:
                type: integer
                format: int64
        302:
          description: Redirect to a pre-signed URL for the object
          headers:
            Location:
              schema:
                type: string
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /repositories/{repository}/gc/rules/set_allowed:
    parameters:
    - in: path
      name: repository
      required: true
      schema:
        type: string
    get:
      tags:
      - internal
      operationId: setGarbageCollectionRulesPreflight
      responses:
        204:
          description: User has permissions to set garbage collection rules on this repository
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /repositories/{repository}/gc/rules:
    parameters:
    - in: path
      name: repository
      required: true
      schema:
        type: string
    get:
      deprecated: true
      tags:
      - internal
      operationId: internalGetGarbageCollectionRules
      description: Deprecated; use getGCRules.
      responses:
        200:
          description: gc rule list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GarbageCollectionRules'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
    post:
      deprecated: true
      tags:
      - internal
      operationId: internalSetGarbageCollectionRules
      description: Deprecated; use setGCRules.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GarbageCollectionRules'
      responses:
        204:
          description: set garbage collection rules successfully
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
    delete:
      deprecated: true
      tags:
      - internal
      operationId: internalDeleteGarbageCollectionRules
      description: Deprecated; use deleteGCRules.
      responses:
        204:
          description: deleted garbage collection rules successfully
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /repositories/{repository}/gc/prepare_commits:
    parameters:
    - in: path
      name: repository
      required: true
      schema:
        type: string
    post:
      tags:
      - internal
      operationId: prepareGarbageCollectionCommits
      summary: save lists of active commits for garbage collection
      responses:
        201:
          description: paths to commit dataset
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GarbageCollectionPrepareResponse'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /repositories/{repository}/gc/prepare_commits/async:
    parameters:
    - in: path
      name: repository
      required: true
      schema:
        type: string
    post:
      tags:
      - internal
      operationId: prepareGarbageCollectionCommitsAsync
      summary: prepare gc commits
      responses:
        202:
          description: GC prepare task started
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskCreation'
        400:
          $ref: '#/components/responses/ValidationError'
        401:
          $ref: '#/components/responses/Unauthorized'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /repositories/{repository}/gc/prepare_commits/status:
    parameters:
    - in: path
      name: repository
      required: true
      schema:
        type: string
    get:
      tags:
      - internal
      operationId: prepareGarbageCollectionCommitsStatus
      summary: get status of prepare gc commits operation
      parameters:
      - in: query
        name: id
        description: Unique identifier of the prepare GC commits task
        schema:
          type: string
        required: true
      responses:
        200:
          description: prepare GC commits task status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrepareGarbageCollectionCommitsStatus'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /repositories/{repository}/gc/prepare_uncommited:
    parameters:
    - in: path
      name: repository
      required: true
      schema:
        type: string
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PrepareGCUncommittedRequest'
      tags:
      - internal
      operationId: prepareGarbageCollectionUncommitted
      summary: save repository uncommitted metadata for garbage collection
      responses:
        201:
          description: paths to commit dataset
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrepareGCUncommittedResponse'
        400:
          $ref: '#/components/responses/ValidationError'
        401:
          $ref: '#/components/responses/Unauthorized'
        403:
          $ref: '#/components/responses/Forbidden'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /repositories/{repository}/branch_protection/set_allowed:
    parameters:
    - in: path
      name: repository
      required: true
      schema:
        type: string
    get:
      tags:
      - internal
      operationId: createBranchProtectionRulePreflight
      responses:
        204:
          description: User has permissions to create a branch protection rule in this repository
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        409:
          $ref: '#/components/responses/Conflict'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /repositories/{repository}/branch_protection:
    parameters:
    - in: path
      name: repository
      required: true
      schema:
        type: string
    get:
      deprecated: true
      tags:
      - internal
      operationId: internalGetBranchProtectionRules
      summary: get branch protection rules
      responses:
        200:
          description: branch protection rules
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BranchProtectionRule'
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
    post:
      deprecated: true
      tags:
      - internal
      operationId: internalCreateBranchProtectionRule
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BranchProtectionRule'
      responses:
        204:
          description: branch protection rule created successfully
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
    delete:
      deprecated: true
      tags:
      - internal
      operationId: internalDeleteBranchProtectionRule
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                pattern:
                  type: string
              required:
              - pattern
      responses:
        204:
          description: branch protection rule deleted successfully
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /config/version:
    get:
      tags:
      - internal
      operationId: getLakeFSVersion
      description: get version of lakeFS server
      deprecated: true
      responses:
        200:
          description: lakeFS version
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionConfig'
        401:
          $ref: '#/components/responses/Unauthorized'
  /config/storage:
    get:
      tags:
      - internal
      operationId: getStorageConfig
      description: retrieve lakeFS storage configuration
      deprecated: true
      responses:
        200:
          description: lakeFS storage configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StorageConfig'
        401:
          $ref: '#/components/responses/Unauthorized'
  /config/garbage-collection:
    get:
      tags:
      - internal
      operationId: getGarbageCollectionConfig
      description: get information of gc settings
      responses:
        200:
          description: lakeFS garbage collection config
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GarbageCollectionConfig'
        401:
          $ref: '#/components/responses/Unauthorized'
  /statistics:
    post:
      tags:
      - internal
      operationId: postStatsEvents
      summary: post stats events, this endpoint is meant for internal use only
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StatsEventsList'
      responses:
        204:
          description: reported successfully
        400:
          $ref: '#/components/responses/BadRequest'
        401:
          $ref: '#/components/responses/Unauthorized'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
  /usage-report/summary:
    get:
      tags:
      - internal
      operationId: getUsageReportSummary
      summary: get usage report summary
      responses:
        200:
          description: Usage report
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstallationUsageReport'
            application/text:
              schema:
                type: string
        401:
          $ref: '#/components/responses/Unauthorized'
        404:
          $ref: '#/components/responses/NotFound'
        429:
          description: too many requests
        default:
          $ref: '#/components/responses/ServerError'
components:
  responses:
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Conflict:
      description: Resource Conflicts With Target
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ValidationError:
      description: Validation Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    AuthCapabilities:
      type: object
      properties:
        invite_user:
          type: boolean
        forgot_password:
          type: boolean
    StorageConfig:
      type: object
      required:
      - blockstore_type
      - blockstore_namespace_example
      - blockstore_namespace_ValidityRegex
      - pre_sign_support
      - pre_sign_support_ui
      - import_support
      - import_validity_regex
      properties:
        blockstore_type:
          type: string
        blockstore_namespace_example:
          type: string
        blockstore_namespace_ValidityRegex:
          type: string
        default_namespace_prefix:
          type: string
        pre_sign_support:
          type: boolean
        pre_sign_support_ui:
          type: boolean
        import_support:
          type: boolean
        import_validity_regex:
          type: string
        pre_sign_multipart_upload:
          type: boolean
        blockstore_id:
          type: string
        blockstore_description:
          type: string
    ObjectStats:
      type: object
      required:
      - checksum
      - physical_address
      - path
      - path_type
      - mtime
      properties:
        path:
          type: string
        path_type:
          type: string
          enum:
          - common_prefix
          - object
        physical_address:
          type: string
          description: 'The location of the object on the underlying object store.

            Formatted as a native URI with the object store type as scheme ("s3://...", "gs://...", etc.)

            Or, in the case of presign=true, will be an HTTP URL to be consumed via regular HTTP GET

            '
        physical_address_expiry:
          type: integer
          format: int64
          description: 'If present and nonzero, physical_address is a pre-signed URL and

            will expire at this Unix Epoch time.  This will be shorter than

            the pre-signed URL lifetime if an authentication token is about

            to expire.


            This field is *optional*.

            '
        checksum:
          type: string
        size_bytes:
          type: integer
          format: int64
          description: 'The number of bytes in the object.  lakeFS always populates this

            field when returning ObjectStats.  This field is optional _for

            the client_ to supply, for instance on upload.

            '
        mtime:
          type: integer
          format: int64
          description: Unix Epoch in seconds
        metadata:
          $ref: '#/components/schemas/ObjectUserMetadata'
        content_type:
          type: string
          description: Object media type
    PrepareGCUncommittedResponse:
      type: object
      properties:
        run_id:
          type: string
        gc_uncommitted_location:
          type: string
          description: location of uncommitted information data
        continuation_token:
          type: string
      required:
      - run_id
      - gc_uncommitted_location
    CommitRecordCreation:
      type: object
      required:
      - commit_id
      - version
      - committer
      - message
      - metarange_id
      - creation_date
      - parents
      - generation
      properties:
        commit_id:
          type: string
          description: id of the commit record
        version:
          type: integer
          minimum: 0
          maximum: 1
          description: version of the commit record
        committer:
          type: string
          description: committer of the commit record
        message:
          type: string
          description: message of the commit record
        metarange_id:
          type: string
          description: metarange_id of the commit record
        creation_date:
          type: integer
          format: int64
          description: Unix Epoch in seconds
        parents:
          type: array
          items:
            type: string
          description: parents of the commit record
        metadata:
          type: object
          additionalProperties:
            type: string
          description: metadata of the commit record
        generation:
          type: integer
          format: int64
          description: generation of the commit record
        force:
          type: boolean
          default: false
    RepositoryMetadataSet:
      type: object
      required:
      - metadata
      properties:
        metadata:
          type: object
          additionalProperties:
            type: string
    GarbageCollectionRule:
      type: object
      properties:
        branch_id:
          type: string
        retention_days:
          type: integer
      required:
      - branch_id
      - retention_days
    UsageReport:
      type: object
      properties:
        year:
          type: integer
        month:
          type: integer
        count:
          type: integer
          format: int64
      required:
      - year
      - month
      - count
    StorageURI:
      description: URI to a path in a storage provider (e.g. "s3://bucket1/path/to/object")
      required:
      - location
      type: object
      properties:
        location:
          type: string
    SetupState:
      type: object
      properties:
        state:
          type: string
          enum:
          - initialized
          - not_initialized
        comm_prefs_missing:
          type: boolean
          description: true if the comm prefs are missing.
        login_config:
          $ref: '#/components/schemas/LoginConfig'
    CommPrefsInput:
      type: object
      properties:
        firstName:
          description: the provided first name
          type: string
        lastName:
          description: the provided last name
          type: string
        email:
          description: the provided email
          type: string
        companyName:
          description: the provided company name
          type: string
        featureUpdates:
          description: user preference to receive feature updates
          type: boolean
        securityUpdates:
          description: user preference to receive security updates
  

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