openapi: 3.0.0
servers:
  - url: //app.files.com/api/rest/v1
info:
  contact:
    email: support@files.com
    name: Files.com Customer Success Team
  title: Files.com API
  version: 0.0.1
  x-apisguru-categories:
    - developer_tools
  x-origin:
    - format: openapi
      url: https://app.files.com/api/rest/v1/swagger_doc.json
      version: "3.0"
  x-providerName: files.com
tags:
  - description: Operations about action_notification_exports
    name: action_notification_exports
  - description: Operations about action_notification_export_results
    name: action_notification_export_results
  - description: Operations about action_webhook_failures
    name: action_webhook_failures
  - description: Operations about api_keys
    name: api_key
  - description: Operations about api_keys
    name: api_keys
  - description: Operations about sites
    name: site
  - description: Operations about users
    name: user
  - description: Operations about users
    name: users
  - description: Operations about apps
    name: apps
  - description: Operations about as2_incoming_messages
    name: as2_incoming_messages
  - description: Operations about as2_outgoing_messages
    name: as2_outgoing_messages
  - description: Operations about as2_partners
    name: as2_partners
  - description: Operations about as2_stations
    name: as2_stations
  - description: Operations about automations
    name: automations
  - description: Operations about automation_runs
    name: automation_runs
  - description: Operations about bandwidth_snapshots
    name: bandwidth_snapshots
  - description: Operations about behaviors
    name: behaviors
  - description: Operations about bundles
    name: bundles
  - description: Operations about bundle_downloads
    name: bundle_downloads
  - description: Operations about bundle_notifications
    name: bundle_notifications
  - description: Operations about bundle_recipients
    name: bundle_recipients
  - description: Operations about bundle_registrations
    name: bundle_registrations
  - description: Operations about clickwraps
    name: clickwraps
  - description: Operations about dns_records
    name: dns_records
  - description: Operations about external_events
    name: external_events
  - description: Operations about files
    name: files
  - description: Operations about file_actions
    name: file_actions
  - description: Operations about file_comments
    name: file_comments
  - description: Operations about file_comment_reactions
    name: file_comment_reactions
  - description: Operations about file_migrations
    name: file_migrations
  - description: Operations about folders
    name: folders
  - description: Operations about form_field_sets
    name: form_field_sets
  - description: Operations about groups
    name: groups
  - description: Operations about group_users
    name: group_users
  - description: Operations about histories
    name: history
  - description: Operations about history_exports
    name: history_exports
  - description: Operations about history_export_results
    name: history_export_results
  - description: Operations about inbox_recipients
    name: inbox_recipients
  - description: Operations about inbox_registrations
    name: inbox_registrations
  - description: Operations about inbox_uploads
    name: inbox_uploads
  - description: Operations about invoices
    name: invoices
  - description: Operations about ip_addresses
    name: ip_addresses
  - description: Operations about locks
    name: locks
  - description: Operations about messages
    name: messages
  - description: Operations about message_comments
    name: message_comments
  - description: Operations about message_comment_reactions
    name: message_comment_reactions
  - description: Operations about message_reactions
    name: message_reactions
  - description: Operations about notifications
    name: notifications
  - description: Operations about payments
    name: payments
  - description: Operations about permissions
    name: permissions
  - description: Operations about priorities
    name: priorities
  - description: Operations about projects
    name: projects
  - description: Operations about public_keys
    name: public_keys
  - description: Operations about remote_bandwidth_snapshots
    name: remote_bandwidth_snapshots
  - description: Operations about remote_servers
    name: remote_servers
  - description: Operations about requests
    name: requests
  - description: Operations about sessions
    name: sessions
  - description: Operations about settings_changes
    name: settings_changes
  - description: Operations about sftp_host_keys
    name: sftp_host_keys
  - description: Operations about sso_strategies
    name: sso_strategies
  - description: Operations about styles
    name: styles
  - description: Operations about usage_snapshots
    name: usage_snapshots
  - description: Operations about usage_daily_snapshots
    name: usage_daily_snapshots
  - description: Operations about user_cipher_uses
    name: user_cipher_uses
  - description: Operations about user_requests
    name: user_requests
  - description: Operations about webhook_tests
    name: webhook_tests
paths:
  /action_notification_export_results:
    get:
      description: List Action Notification Export Results
      operationId: GetActionNotificationExportResults
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: ID of the associated action notification export.
          in: query
          name: action_notification_export_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: ID of the associated action notification export.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ActionNotificationExportResultEntity"
                type: array
          description: A list of ActionNotificationExportResults objects.
          x-ms-summary: A list of ActionNotificationExportResults objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Action Notification Export Results
      tags:
        - action_notification_export_results
      x-authentication:
        - folder_admin
  /action_notification_exports:
    post:
      description: Create Action Notification Export
      operationId: PostActionNotificationExports
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                end_at:
                  description: End date/time of export range.
                  example: 2000-01-01T01:00:00Z
                  format: date-time
                  type: string
                  x-ms-summary: End date/time of export range.
                query_folder:
                  description: Return notifications that were triggered by actions in this folder.
                  example: MyFolder
                  type: string
                  x-ms-summary: Return notifications that were triggered by actions in this folder.
                query_message:
                  description: Error message associated with the request, if any.
                  example: Connection Refused
                  type: string
                  x-ms-summary: Error message associated with the request, if any.
                query_path:
                  description: Return notifications that were triggered by actions on this specific path.
                  example: MyFile.txt
                  type: string
                  x-ms-summary: Return notifications that were triggered by actions on this specific path.
                query_request_method:
                  description: The HTTP request method used by the webhook.
                  example: GET
                  type: string
                  x-ms-summary: The HTTP request method used by the webhook.
                query_request_url:
                  description: The target webhook URL.
                  example: http://example.com/webhook
                  type: string
                  x-ms-summary: The target webhook URL.
                query_status:
                  description: The HTTP status returned from the server in response to the webhook request.
                  example: "200"
                  type: string
                  x-ms-summary: The HTTP status returned from the server in response to the webhook request.
                query_success:
                  description: true if the webhook request succeeded (i.e. returned a 200 or 204 response status). false otherwise.
                  example: true
                  type: boolean
                  x-ms-summary: true if the webhook request succeeded (i.e. returned a 200 or 204 response status). false otherwise.
                start_at:
                  description: Start date/time of export range.
                  example: 2000-01-01T01:00:00Z
                  format: date-time
                  type: string
                  x-ms-summary: Start date/time of export range.
                user_id:
                  description: User ID.  Provide a value of `0` to operate the current session's user.
                  format: int32
                  type: integer
                  x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActionNotificationExportEntity"
          description: The ActionNotificationExports object.
          x-ms-summary: The ActionNotificationExports object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Action Notification Export
      tags:
        - action_notification_exports
      x-authentication:
        - folder_admin
        - path_params:
            - query_path
            - query_folder
  "/action_notification_exports/{id}":
    get:
      description: Show Action Notification Export
      operationId: GetActionNotificationExportsId
      parameters:
        - description: Action Notification Export ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Action Notification Export ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActionNotificationExportEntity"
          description: The ActionNotificationExports object.
          x-ms-summary: The ActionNotificationExports object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Action Notification Export
      tags:
        - action_notification_exports
      x-authentication:
        - folder_admin
  "/action_webhook_failures/{id}/retry":
    post:
      description: retry Action Webhook Failure
      operationId: PostActionWebhookFailuresIdRetry
      parameters:
        - description: Action Webhook Failure ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Action Webhook Failure ID.
      responses:
        "201":
          description: The ActionWebhookFailures object.
          x-ms-summary: The ActionWebhookFailures object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: retry Action Webhook Failure
      tags:
        - action_webhook_failures
      x-authentication:
        - site
  /api_key:
    delete:
      description: Delete current API key.  (Requires current API connection to be using an API key.)
      operationId: ApiKeyDeleteCurrent
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete current API key.  (Requires current API connection to be using an API key.)
      tags:
        - api_key
      x-authentication:
        - native_app
        - office_integration
    get:
      description: Show information about current API key.  (Requires current API connection to be using an API key.)
      operationId: ApiKeyFindCurrent
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKeyEntity"
          description: The ApiKey object.
          x-ms-summary: The ApiKey object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show information about current API key.  (Requires current API connection to be using an API key.)
      tags:
        - api_key
      x-authentication:
        - native_app
        - office_integration
    patch:
      description: Update current API key.  (Requires current API connection to be using an API key.)
      operationId: ApiKeyUpdateCurrent
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                expires_at:
                  description: API Key expiration date
                  example: 2000-01-01T01:00:00Z
                  format: date-time
                  type: string
                  x-ms-summary: API Key expiration date
                name:
                  description: Internal name for the API Key.  For your use.
                  example: My Main API Key
                  type: string
                  x-ms-summary: Internal name for the API Key.  For your use.
                permission_set:
                  description: Permissions for this API Key.  Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations).  Additional permission sets may become available in the future, such as for a Site Admin to give a key with no administrator privileges.  If you have ideas for permission sets, please let us know.
                  enum:
                    - none
                    - full
                    - desktop_app
                    - sync_app
                    - office_integration
                    - mobile_app
                  example: full
                  type: string
                  x-ms-summary: Permissions for this API Key.  Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations).  Additional permission sets may become available in the future, such as for a Site Admin to give a key with no administrator privileges.  If you have ideas for permission sets, please let us know.
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKeyEntity"
          description: The ApiKey object.
          x-ms-summary: The ApiKey object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update current API key.  (Requires current API connection to be using an API key.)
      tags:
        - api_key
      x-authentication:
        - native_app
        - office_integration
  /api_keys:
    get:
      description: List Api Keys
      operationId: GetApiKeys
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[expires_at]=desc`). Valid fields are `expires_at`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[expires_at]=desc`). Valid fields are `expires_at`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `expires_at`.
        - description: If set, return records where the specified field is greater than the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter_gt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than the supplied value. Valid fields are `expires_at`.
        - description: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter_gteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `expires_at`.
        - description: If set, return records where the specified field is less than the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter_lt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than the supplied value. Valid fields are `expires_at`.
        - description: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter_lteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `expires_at`.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ApiKeyEntity"
                type: array
          description: A list of ApiKeys objects.
          x-ms-summary: A list of ApiKeys objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Api Keys
      tags:
        - api_keys
      x-authentication:
        - self_managed
      x-path_aliases:
        - site/api_keys
        - user/api_keys
        - users/:user_id/api_keys
    post:
      description: Create Api Key
      operationId: PostApiKeys
      requestBody:
        $ref: "#/components/requestBodies/PostApiKeys"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKeyEntity"
          description: The ApiKeys object.
          x-ms-summary: The ApiKeys object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Api Key
      tags:
        - api_keys
      x-authentication: []
      x-path_aliases:
        - site/api_keys
        - user/api_keys
        - users/:user_id/api_keys
  "/api_keys/{id}":
    delete:
      description: Delete Api Key
      operationId: DeleteApiKeysId
      parameters:
        - description: Api Key ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Api Key ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Api Key
      tags:
        - api_keys
      x-authentication:
        - self_managed
    get:
      description: Show Api Key
      operationId: GetApiKeysId
      parameters:
        - description: Api Key ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Api Key ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKeyEntity"
          description: The ApiKeys object.
          x-ms-summary: The ApiKeys object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Api Key
      tags:
        - api_keys
      x-authentication:
        - self_managed
    patch:
      description: Update Api Key
      operationId: PatchApiKeysId
      parameters:
        - description: Api Key ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Api Key ID.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                description:
                  description: User-supplied description of API key.
                  example: example
                  type: string
                  x-ms-summary: User-supplied description of API key.
                expires_at:
                  description: API Key expiration date
                  example: 2000-01-01T01:00:00Z
                  format: date-time
                  type: string
                  x-ms-summary: API Key expiration date
                name:
                  description: Internal name for the API Key.  For your use.
                  example: My Main API Key
                  type: string
                  x-ms-summary: Internal name for the API Key.  For your use.
                permission_set:
                  description: Permissions for this API Key.  Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations).  Additional permission sets may become available in the future, such as for a Site Admin to give a key with no administrator privileges.  If you have ideas for permission sets, please let us know.
                  enum:
                    - none
                    - full
                    - desktop_app
                    - sync_app
                    - office_integration
                    - mobile_app
                  example: full
                  type: string
                  x-ms-summary: Permissions for this API Key.  Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations).  Additional permission sets may become available in the future, such as for a Site Admin to give a key with no administrator privileges.  If you have ideas for permission sets, please let us know.
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKeyEntity"
          description: The ApiKeys object.
          x-ms-summary: The ApiKeys object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update Api Key
      tags:
        - api_keys
      x-authentication:
        - self_managed
  /apps:
    get:
      description: List Apps
      operationId: GetApps
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[name]=desc`). Valid fields are `name` and `app_type`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[name]=desc`). Valid fields are `name` and `app_type`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `name` and `app_type`. Valid field combinations are `[ name, app_type ]` and `[ app_type, name ]`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `name` and `app_type`. Valid field combinations are `[ name, app_type ]` and `[ app_type, name ]`.
        - description: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `name`.
          in: query
          name: filter_prefix
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `name`.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/AppEntity"
                type: array
          description: A list of Apps objects.
          x-ms-summary: A list of Apps objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Apps
      tags:
        - apps
      x-authentication:
        - none
  /as2_incoming_messages:
    get:
      description: List As2 Incoming Messages
      operationId: GetAs2IncomingMessages
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[created_at]=desc`). Valid fields are `created_at` and `as2_partner_id`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[created_at]=desc`). Valid fields are `created_at` and `as2_partner_id`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `created_at`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is greater than the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_gt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_gteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is less than the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_lt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_lteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `created_at`.
        - description: As2 Partner ID.  If provided, will return message specific to that partner.
          in: query
          name: as2_partner_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: As2 Partner ID.  If provided, will return message specific to that partner.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/As2IncomingMessageEntity"
                type: array
          description: A list of As2IncomingMessages objects.
          x-ms-summary: A list of As2IncomingMessages objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List As2 Incoming Messages
      tags:
        - as2_incoming_messages
      x-authentication:
        - site
  /as2_outgoing_messages:
    get:
      description: List As2 Outgoing Messages
      operationId: GetAs2OutgoingMessages
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[created_at]=desc`). Valid fields are `created_at` and `as2_partner_id`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[created_at]=desc`). Valid fields are `created_at` and `as2_partner_id`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `created_at`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is greater than the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_gt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_gteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is less than the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_lt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_lteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `created_at`.
        - description: As2 Partner ID.  If provided, will return message specific to that partner.
          in: query
          name: as2_partner_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: As2 Partner ID.  If provided, will return message specific to that partner.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/As2OutgoingMessageEntity"
                type: array
          description: A list of As2OutgoingMessages objects.
          x-ms-summary: A list of As2OutgoingMessages objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List As2 Outgoing Messages
      tags:
        - as2_outgoing_messages
      x-authentication:
        - site
  /as2_partners:
    get:
      description: List As2 Partners
      operationId: GetAs2Partners
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/As2PartnerEntity"
                type: array
          description: A list of As2Partners objects.
          x-ms-summary: A list of As2Partners objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List As2 Partners
      tags:
        - as2_partners
      x-authentication:
        - site
    post:
      description: Create As2 Partner
      operationId: PostAs2Partners
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                as2_station_id:
                  description: Id of As2Station for this partner
                  format: int32
                  type: integer
                  x-ms-summary: Id of As2Station for this partner
                enable_dedicated_ips:
                  type: boolean
                  x-ms-summary: null
                name:
                  description: AS2 Name
                  type: string
                  x-ms-summary: AS2 Name
                public_certificate:
                  type: string
                  x-ms-summary: null
                server_certificate:
                  description: Remote server certificate security setting
                  type: string
                  x-ms-summary: Remote server certificate security setting
                uri:
                  description: URL base for AS2 responses
                  type: string
                  x-ms-summary: URL base for AS2 responses
              required:
                - name
                - uri
                - public_certificate
                - as2_station_id
              type: object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/As2PartnerEntity"
          description: The As2Partners object.
          x-ms-summary: The As2Partners object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create As2 Partner
      tags:
        - as2_partners
      x-authentication:
        - site
  "/as2_partners/{id}":
    delete:
      description: Delete As2 Partner
      operationId: DeleteAs2PartnersId
      parameters:
        - description: As2 Partner ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: As2 Partner ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete As2 Partner
      tags:
        - as2_partners
      x-authentication:
        - site
    get:
      description: Show As2 Partner
      operationId: GetAs2PartnersId
      parameters:
        - description: As2 Partner ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: As2 Partner ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/As2PartnerEntity"
          description: The As2Partners object.
          x-ms-summary: The As2Partners object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show As2 Partner
      tags:
        - as2_partners
      x-authentication:
        - site
    patch:
      description: Update As2 Partner
      operationId: PatchAs2PartnersId
      parameters:
        - description: As2 Partner ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: As2 Partner ID.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                enable_dedicated_ips:
                  type: boolean
                  x-ms-summary: null
                name:
                  description: AS2 Name
                  type: string
                  x-ms-summary: AS2 Name
                public_certificate:
                  type: string
                  x-ms-summary: null
                server_certificate:
                  description: Remote server certificate security setting
                  type: string
                  x-ms-summary: Remote server certificate security setting
                uri:
                  description: URL base for AS2 responses
                  type: string
                  x-ms-summary: URL base for AS2 responses
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/As2PartnerEntity"
          description: The As2Partners object.
          x-ms-summary: The As2Partners object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update As2 Partner
      tags:
        - as2_partners
      x-authentication:
        - site
  /as2_stations:
    get:
      description: List As2 Stations
      operationId: GetAs2Stations
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/As2StationEntity"
                type: array
          description: A list of As2Stations objects.
          x-ms-summary: A list of As2Stations objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List As2 Stations
      tags:
        - as2_stations
      x-authentication:
        - site
    post:
      description: Create As2 Station
      operationId: PostAs2Stations
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                name:
                  description: AS2 Name
                  type: string
                  x-ms-summary: AS2 Name
                private_key:
                  type: string
                  x-ms-summary: null
                private_key_password:
                  type: string
                  x-ms-summary: null
                public_certificate:
                  type: string
                  x-ms-summary: null
              required:
                - name
                - public_certificate
                - private_key
              type: object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/As2StationEntity"
          description: The As2Stations object.
          x-ms-summary: The As2Stations object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create As2 Station
      tags:
        - as2_stations
      x-authentication:
        - site
  "/as2_stations/{id}":
    delete:
      description: Delete As2 Station
      operationId: DeleteAs2StationsId
      parameters:
        - description: As2 Station ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: As2 Station ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete As2 Station
      tags:
        - as2_stations
      x-authentication:
        - site
    get:
      description: Show As2 Station
      operationId: GetAs2StationsId
      parameters:
        - description: As2 Station ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: As2 Station ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/As2StationEntity"
          description: The As2Stations object.
          x-ms-summary: The As2Stations object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show As2 Station
      tags:
        - as2_stations
      x-authentication:
        - site
    patch:
      description: Update As2 Station
      operationId: PatchAs2StationsId
      parameters:
        - description: As2 Station ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: As2 Station ID.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                name:
                  description: AS2 Name
                  type: string
                  x-ms-summary: AS2 Name
                private_key:
                  type: string
                  x-ms-summary: null
                private_key_password:
                  type: string
                  x-ms-summary: null
                public_certificate:
                  type: string
                  x-ms-summary: null
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/As2StationEntity"
          description: The As2Stations object.
          x-ms-summary: The As2Stations object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update As2 Station
      tags:
        - as2_stations
      x-authentication:
        - site
  /automation_runs:
    get:
      description: List Automation Runs
      operationId: GetAutomationRuns
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[created_at]=desc`). Valid fields are `created_at` and `status`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[created_at]=desc`). Valid fields are `created_at` and `status`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `status`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `status`.
        - description: ID of the associated Automation.
          example: 1
          in: query
          name: automation_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: ID of the associated Automation.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/AutomationRunEntity"
                type: array
          description: A list of AutomationRuns objects.
          x-ms-summary: A list of AutomationRuns objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Automation Runs
      tags:
        - automation_runs
      x-authentication: []
  "/automation_runs/{id}":
    get:
      description: Show Automation Run
      operationId: GetAutomationRunsId
      parameters:
        - description: Automation Run ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Automation Run ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AutomationRunEntity"
          description: The AutomationRuns object.
          x-ms-summary: The AutomationRuns object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Automation Run
      tags:
        - automation_runs
      x-authentication: []
  /automations:
    get:
      description: List Automations
      operationId: GetAutomations
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[automation]=desc`). Valid fields are `automation`, `disabled`, `last_modified_at` or `name`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[automation]=desc`). Valid fields are `automation`, `disabled`, `last_modified_at` or `name`.
        - description: If set, return records where the specified field is equal to the supplied value.
          in: query
          name: automation
          required: false
          schema:
            type: string
          x-ms-summary: If set, return records where the specified field is equal to the supplied value.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `disabled`, `last_modified_at` or `automation`. Valid field combinations are `[ automation, disabled ]` and `[ disabled, automation ]`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `disabled`, `last_modified_at` or `automation`. Valid field combinations are `[ automation, disabled ]` and `[ disabled, automation ]`.
        - description: If set, return records where the specified field is greater than the supplied value. Valid fields are `last_modified_at`.
          in: query
          name: filter_gt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than the supplied value. Valid fields are `last_modified_at`.
        - description: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `last_modified_at`.
          in: query
          name: filter_gteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `last_modified_at`.
        - description: If set, return records where the specified field is less than the supplied value. Valid fields are `last_modified_at`.
          in: query
          name: filter_lt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than the supplied value. Valid fields are `last_modified_at`.
        - description: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `last_modified_at`.
          in: query
          name: filter_lteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `last_modified_at`.
        - description: Set to true to include deleted automations in the results.
          in: query
          name: with_deleted
          required: false
          schema:
            type: boolean
          x-ms-summary: Set to true to include deleted automations in the results.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/AutomationEntity"
                type: array
          description: A list of Automations objects.
          x-ms-summary: A list of Automations objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Automations
      tags:
        - automations
      x-authentication:
        - folder_admin
    post:
      description: Create Automation
      operationId: PostAutomations
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                automation:
                  description: Automation type
                  enum:
                    - create_folder
                    - request_file
                    - request_move
                    - copy_newest_file
                    - delete_file
                    - copy_file
                    - move_file
                    - as2_send
                    - run_sync
                  example: create_folder
                  type: string
                  x-ms-summary: Automation type
                description:
                  description: Description for the this Automation.
                  example: example
                  type: string
                  x-ms-summary: Description for the this Automation.
                destination:
                  description: "DEPRECATED: Destination Path. Use `destinations` instead."
                  type: string
                  x-ms-summary: "DEPRECATED: Destination Path. Use `destinations` instead."
                destination_replace_from:
                  description: If set, this string in the destination path will be replaced with the value in `destination_replace_to`.
                  type: string
                  x-ms-summary: If set, this string in the destination path will be replaced with the value in `destination_replace_to`.
                destination_replace_to:
                  description: If set, this string will replace the value `destination_replace_from` in the destination filename. You can use special patterns here.
                  type: string
                  x-ms-summary: If set, this string will replace the value `destination_replace_from` in the destination filename. You can use special patterns here.
                destinations:
                  description: A list of String destination paths or Hash of folder_path and optional file_path.
                  example:
                    - folder_a/file_a.txt
                    - file_path: file_b.txt
                      folder_path: folder_b
                    - folder_path: folder_c
                  items:
                    type: string
                  type: array
                  x-ms-summary: A list of String destination paths or Hash of folder_path and optional file_path.
                disabled:
                  description: If true, this automation will not run.
                  example: true
                  type: boolean
                  x-ms-summary: If true, this automation will not run.
                group_ids:
                  description: A list of group IDs the automation is associated with. If sent as a string, it should be comma-delimited.
                  type: string
                  x-ms-summary: A list of group IDs the automation is associated with. If sent as a string, it should be comma-delimited.
                interval:
                  description: "How often to run this automation? One of: `day`, `week`, `week_end`, `month`, `month_end`, `quarter`, `quarter_end`, `year`, `year_end`"
                  example: year
                  type: string
                  x-ms-summary: "How often to run this automation? One of: `day`, `week`, `week_end`, `month`, `month_end`, `quarter`, `quarter_end`, `year`, `year_end`"
                name:
                  description: Name for this automation.
                  example: example
                  type: string
                  x-ms-summary: Name for this automation.
                path:
                  description: Path on which this Automation runs.  Supports globs.
                  type: string
                  x-ms-summary: Path on which this Automation runs.  Supports globs.
                recurring_day:
                  description: "If trigger type is `daily`, this specifies a day number to run in one of the supported intervals: `week`, `month`, `quarter`, `year`."
                  example: 25
                  format: int32
                  type: integer
                  x-ms-summary: "If trigger type is `daily`, this specifies a day number to run in one of the supported intervals: `week`, `month`, `quarter`, `year`."
                schedule:
                  description: Custom schedule for running this automation.
                  example:
                    days_of_week:
                      - 0
                      - 1
                      - 3
                    time_zone: Eastern Time (US & Canada)
                    times_of_day:
                      - 7:30
                      - 11:30
                  type: object
                  x-ms-summary: Custom schedule for running this automation.
                source:
                  description: Source Path
                  example: source
                  type: string
                  x-ms-summary: Source Path
                sync_ids:
                  description: A list of sync IDs the automation is associated with. If sent as a string, it should be comma-delimited.
                  type: string
                  x-ms-summary: A list of sync IDs the automation is associated with. If sent as a string, it should be comma-delimited.
                trigger:
                  description: "How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, `email`, or `action`."
                  enum:
                    - realtime
                    - daily
                    - custom_schedule
                    - webhook
                    - email
                    - action
                  example: realtime
                  type: string
                  x-ms-summary: "How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, `email`, or `action`."
                trigger_actions:
                  description: If trigger is `action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy
                  example:
                    - create
                  items:
                    type: string
                  type: array
                  x-ms-summary: If trigger is `action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy
                user_ids:
                  description: A list of user IDs the automation is associated with. If sent as a string, it should be comma-delimited.
                  type: string
                  x-ms-summary: A list of user IDs the automation is associated with. If sent as a string, it should be comma-delimited.
                value:
                  description: A Hash of attributes specific to the automation type.
                  example:
                    limit: "1"
                  type: object
                  x-ms-summary: A Hash of attributes specific to the automation type.
              required:
                - automation
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AutomationEntity"
          description: The Automations object.
          x-ms-summary: The Automations object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Automation
      tags:
        - automations
      x-authentication:
        - folder_admin
  "/automations/{id}":
    delete:
      description: Delete Automation
      operationId: DeleteAutomationsId
      parameters:
        - description: Automation ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Automation ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Automation
      tags:
        - automations
      x-authentication:
        - folder_admin
    get:
      description: Show Automation
      operationId: GetAutomationsId
      parameters:
        - description: Automation ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Automation ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AutomationEntity"
          description: The Automations object.
          x-ms-summary: The Automations object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Automation
      tags:
        - automations
      x-authentication:
        - folder_admin
    patch:
      description: Update Automation
      operationId: PatchAutomationsId
      parameters:
        - description: Automation ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Automation ID.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                automation:
                  description: Automation type
                  enum:
                    - create_folder
                    - request_file
                    - request_move
                    - copy_newest_file
                    - delete_file
                    - copy_file
                    - move_file
                    - as2_send
                    - run_sync
                  example: create_folder
                  type: string
                  x-ms-summary: Automation type
                description:
                  description: Description for the this Automation.
                  example: example
                  type: string
                  x-ms-summary: Description for the this Automation.
                destination:
                  description: "DEPRECATED: Destination Path. Use `destinations` instead."
                  type: string
                  x-ms-summary: "DEPRECATED: Destination Path. Use `destinations` instead."
                destination_replace_from:
                  description: If set, this string in the destination path will be replaced with the value in `destination_replace_to`.
                  type: string
                  x-ms-summary: If set, this string in the destination path will be replaced with the value in `destination_replace_to`.
                destination_replace_to:
                  description: If set, this string will replace the value `destination_replace_from` in the destination filename. You can use special patterns here.
                  type: string
                  x-ms-summary: If set, this string will replace the value `destination_replace_from` in the destination filename. You can use special patterns here.
                destinations:
                  description: A list of String destination paths or Hash of folder_path and optional file_path.
                  example:
                    - folder_a/file_a.txt
                    - file_path: file_b.txt
                      folder_path: folder_b
                    - folder_path: folder_c
                  items:
                    type: string
                  type: array
                  x-ms-summary: A list of String destination paths or Hash of folder_path and optional file_path.
                disabled:
                  description: If true, this automation will not run.
                  example: true
                  type: boolean
                  x-ms-summary: If true, this automation will not run.
                group_ids:
                  description: A list of group IDs the automation is associated with. If sent as a string, it should be comma-delimited.
                  type: string
                  x-ms-summary: A list of group IDs the automation is associated with. If sent as a string, it should be comma-delimited.
                interval:
                  description: "How often to run this automation? One of: `day`, `week`, `week_end`, `month`, `month_end`, `quarter`, `quarter_end`, `year`, `year_end`"
                  example: year
                  type: string
                  x-ms-summary: "How often to run this automation? One of: `day`, `week`, `week_end`, `month`, `month_end`, `quarter`, `quarter_end`, `year`, `year_end`"
                name:
                  description: Name for this automation.
                  example: example
                  type: string
                  x-ms-summary: Name for this automation.
                path:
                  description: Path on which this Automation runs.  Supports globs.
                  type: string
                  x-ms-summary: Path on which this Automation runs.  Supports globs.
                recurring_day:
                  description: "If trigger type is `daily`, this specifies a day number to run in one of the supported intervals: `week`, `month`, `quarter`, `year`."
                  example: 25
                  format: int32
                  type: integer
                  x-ms-summary: "If trigger type is `daily`, this specifies a day number to run in one of the supported intervals: `week`, `month`, `quarter`, `year`."
                schedule:
                  description: Custom schedule for running this automation.
                  example:
                    days_of_week:
                      - 0
                      - 1
                      - 3
                    time_zone: Eastern Time (US & Canada)
                    times_of_day:
                      - 7:30
                      - 11:30
                  type: object
                  x-ms-summary: Custom schedule for running this automation.
                source:
                  description: Source Path
                  example: source
                  type: string
                  x-ms-summary: Source Path
                sync_ids:
                  description: A list of sync IDs the automation is associated with. If sent as a string, it should be comma-delimited.
                  type: string
                  x-ms-summary: A list of sync IDs the automation is associated with. If sent as a string, it should be comma-delimited.
                trigger:
                  description: "How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, `email`, or `action`."
                  enum:
                    - realtime
                    - daily
                    - custom_schedule
                    - webhook
                    - email
                    - action
                  example: realtime
                  type: string
                  x-ms-summary: "How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, `email`, or `action`."
                trigger_actions:
                  description: If trigger is `action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy
                  example:
                    - create
                  items:
                    type: string
                  type: array
                  x-ms-summary: If trigger is `action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy
                user_ids:
                  description: A list of user IDs the automation is associated with. If sent as a string, it should be comma-delimited.
                  type: string
                  x-ms-summary: A list of user IDs the automation is associated with. If sent as a string, it should be comma-delimited.
                value:
                  description: A Hash of attributes specific to the automation type.
                  example:
                    limit: "1"
                  type: object
                  x-ms-summary: A Hash of attributes specific to the automation type.
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AutomationEntity"
          description: The Automations object.
          x-ms-summary: The Automations object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update Automation
      tags:
        - automations
      x-authentication:
        - folder_admin
  /bandwidth_snapshots:
    get:
      description: List Bandwidth Snapshots
      operationId: GetBandwidthSnapshots
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[logged_at]=desc`). Valid fields are `logged_at`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[logged_at]=desc`). Valid fields are `logged_at`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `logged_at`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `logged_at`.
        - description: If set, return records where the specified field is greater than the supplied value. Valid fields are `logged_at`.
          in: query
          name: filter_gt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than the supplied value. Valid fields are `logged_at`.
        - description: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `logged_at`.
          in: query
          name: filter_gteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `logged_at`.
        - description: If set, return records where the specified field is less than the supplied value. Valid fields are `logged_at`.
          in: query
          name: filter_lt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than the supplied value. Valid fields are `logged_at`.
        - description: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `logged_at`.
          in: query
          name: filter_lteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `logged_at`.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/BandwidthSnapshotEntity"
                type: array
          description: A list of BandwidthSnapshots objects.
          x-ms-summary: A list of BandwidthSnapshots objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Bandwidth Snapshots
      tags:
        - bandwidth_snapshots
      x-authentication:
        - site
  /behaviors:
    get:
      description: List Behaviors
      operationId: GetBehaviors
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[behavior]=desc`). Valid fields are `behavior`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[behavior]=desc`). Valid fields are `behavior`.
        - description: If set, return records where the specified field is equal to the supplied value.
          in: query
          name: behavior
          required: false
          schema:
            type: string
          x-ms-summary: If set, return records where the specified field is equal to the supplied value.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `behavior`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `behavior`.
        - description: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `behavior`.
          in: query
          name: filter_prefix
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `behavior`.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/BehaviorEntity"
                type: array
          description: A list of Behaviors objects.
          x-ms-summary: A list of Behaviors objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Behaviors
      tags:
        - behaviors
      x-authentication: []
    post:
      description: Create Behavior
      operationId: PostBehaviors
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                attachment_file:
                  description: Certain behaviors may require a file, for instance, the "watermark" behavior requires a watermark image
                  format: binary
                  type: string
                  x-ms-summary: Certain behaviors may require a file, for instance, the "watermark" behavior requires a watermark image
                behavior:
                  description: Behavior type.
                  example: webhook
                  type: string
                  x-ms-summary: Behavior type.
                description:
                  description: Description for this behavior.
                  example: example
                  type: string
                  x-ms-summary: Description for this behavior.
                name:
                  description: Name for this behavior.
                  example: example
                  type: string
                  x-ms-summary: Name for this behavior.
                path:
                  description: Folder behaviors path.
                  type: string
                  x-ms-summary: Folder behaviors path.
                value:
                  description: The value of the folder behavior.  Can be a integer, array, or hash depending on the type of folder behavior. See The Behavior Types section for example values for each type of behavior.
                  example: '{"method": "GET"}'
                  type: string
                  x-ms-summary: The value of the folder behavior.  Can be a integer, array, or hash depending on the type of folder behavior. See The Behavior Types section for example values for each type of behavior.
              required:
                - path
                - behavior
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BehaviorEntity"
          description: The Behaviors object.
          x-ms-summary: The Behaviors object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Behavior
      tags:
        - behaviors
      x-authentication: []
  "/behaviors/folders/{path}":
    get:
      description: List Behaviors by path
      operationId: BehaviorListForPath
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[behavior]=desc`). Valid fields are `behavior`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[behavior]=desc`). Valid fields are `behavior`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `behavior`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `behavior`.
        - description: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `behavior`.
          in: query
          name: filter_prefix
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `behavior`.
        - description: Path to operate on.
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Path to operate on.
        - description: Show behaviors above this path?
          in: query
          name: recursive
          required: false
          schema:
            type: string
          x-ms-summary: Show behaviors above this path?
        - description: "DEPRECATED: If set only shows folder behaviors matching this behavior type. Use `filter[behavior]` instead."
          in: query
          name: behavior
          required: false
          schema:
            type: string
          x-ms-summary: "DEPRECATED: If set only shows folder behaviors matching this behavior type. Use `filter[behavior]` instead."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/BehaviorEntity"
                type: array
          description: A list of Behaviors objects.
          x-ms-summary: A list of Behaviors objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Behaviors by path
      tags:
        - behaviors
      x-authentication: []
  /behaviors/webhook/test:
    post:
      description: Test webhook.
      operationId: PostBehaviorsWebhookTest
      requestBody:
        $ref: "#/components/requestBodies/PostSiteTestWebhook"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StatusEntity"
          description: The Behaviors object.
          x-ms-summary: The Behaviors object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Test webhook.
      tags:
        - behaviors
      x-authentication:
        - folder_admin
      x-path_aliases:
        - site/test-webhook
  "/behaviors/{id}":
    delete:
      description: Delete Behavior
      operationId: DeleteBehaviorsId
      parameters:
        - description: Behavior ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Behavior ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Behavior
      tags:
        - behaviors
      x-authentication: []
    get:
      description: Show Behavior
      operationId: GetBehaviorsId
      parameters:
        - description: Behavior ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Behavior ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BehaviorEntity"
          description: The Behaviors object.
          x-ms-summary: The Behaviors object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Behavior
      tags:
        - behaviors
      x-authentication: []
    patch:
      description: Update Behavior
      operationId: PatchBehaviorsId
      parameters:
        - description: Behavior ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Behavior ID.
          x-types:
            - type: string
            - format: int32
              type: integer
            - type: object
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                attachment_delete:
                  description: If true, will delete the file stored in attachment
                  type: boolean
                  x-ms-summary: If true, will delete the file stored in attachment
                  x-types:
                    - type: string
                    - format: int32
                      type: integer
                    - type: object
                attachment_file:
                  description: Certain behaviors may require a file, for instance, the "watermark" behavior requires a watermark image
                  format: binary
                  type: string
                  x-ms-summary: Certain behaviors may require a file, for instance, the "watermark" behavior requires a watermark image
                behavior:
                  description: Behavior type.
                  example: webhook
                  type: string
                  x-ms-summary: Behavior type.
                description:
                  description: Description for this behavior.
                  example: example
                  type: string
                  x-ms-summary: Description for this behavior.
                name:
                  description: Name for this behavior.
                  example: example
                  type: string
                  x-ms-summary: Name for this behavior.
                path:
                  description: Folder behaviors path.
                  type: string
                  x-ms-summary: Folder behaviors path.
                value:
                  description: The value of the folder behavior.  Can be a integer, array, or hash depending on the type of folder behavior. See The Behavior Types section for example values for each type of behavior.
                  example: '{"method": "GET"}'
                  type: string
                  x-ms-summary: The value of the folder behavior.  Can be a integer, array, or hash depending on the type of folder behavior. See The Behavior Types section for example values for each type of behavior.
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BehaviorEntity"
          description: The Behaviors object.
          x-ms-summary: The Behaviors object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update Behavior
      tags:
        - behaviors
      x-authentication: []
  /bundle_downloads:
    get:
      description: List Bundle Downloads
      operationId: GetBundleDownloads
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[created_at]=desc`). Valid fields are `created_at`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[created_at]=desc`). Valid fields are `created_at`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `created_at`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is greater than the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_gt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_gteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is less than the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_lt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_lteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `created_at`.
        - description: Bundle ID
          in: query
          name: bundle_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: Bundle ID
        - description: BundleRegistration ID
          in: query
          name: bundle_registration_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: BundleRegistration ID
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/BundleDownloadEntity"
                type: array
          description: A list of BundleDownloads objects.
          x-ms-summary: A list of BundleDownloads objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Bundle Downloads
      tags:
        - bundle_downloads
      x-authentication: []
  /bundle_notifications:
    get:
      description: List Bundle Notifications
      operationId: GetBundleNotifications
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[bundle_id]=desc`). Valid fields are `bundle_id`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[bundle_id]=desc`). Valid fields are `bundle_id`.
        - description: If set, return records where the specified field is equal to the supplied value.
          in: query
          name: bundle_id
          required: false
          schema:
            type: string
          x-ms-summary: If set, return records where the specified field is equal to the supplied value.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `bundle_id`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `bundle_id`.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/BundleNotificationEntity"
                type: array
          description: A list of BundleNotifications objects.
          x-ms-summary: A list of BundleNotifications objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Bundle Notifications
      tags:
        - bundle_notifications
      x-authentication: []
    post:
      description: Create Bundle Notification
      operationId: PostBundleNotifications
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                bundle_id:
                  description: Bundle ID to notify on
                  example: 1
                  format: int32
                  type: integer
                  x-ms-summary: Bundle ID to notify on
                notify_on_registration:
                  description: Triggers bundle notification when a registration action occurs for it.
                  example: true
                  type: boolean
                  x-ms-summary: Triggers bundle notification when a registration action occurs for it.
                notify_on_upload:
                  description: Triggers bundle notification when a upload action occurs for it.
                  example: true
                  type: boolean
                  x-ms-summary: Triggers bundle notification when a upload action occurs for it.
                user_id:
                  description: The id of the user to notify.
                  example: 1
                  format: int32
                  type: integer
                  x-ms-summary: The id of the user to notify.
              required:
                - bundle_id
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BundleNotificationEntity"
          description: The BundleNotifications object.
          x-ms-summary: The BundleNotifications object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Bundle Notification
      tags:
        - bundle_notifications
      x-authentication: []
  "/bundle_notifications/{id}":
    delete:
      description: Delete Bundle Notification
      operationId: DeleteBundleNotificationsId
      parameters:
        - description: Bundle Notification ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Bundle Notification ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Bundle Notification
      tags:
        - bundle_notifications
      x-authentication: []
    get:
      description: Show Bundle Notification
      operationId: GetBundleNotificationsId
      parameters:
        - description: Bundle Notification ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Bundle Notification ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BundleNotificationEntity"
          description: The BundleNotifications object.
          x-ms-summary: The BundleNotifications object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Bundle Notification
      tags:
        - bundle_notifications
      x-authentication: []
    patch:
      description: Update Bundle Notification
      operationId: PatchBundleNotificationsId
      parameters:
        - description: Bundle Notification ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Bundle Notification ID.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                notify_on_registration:
                  description: Triggers bundle notification when a registration action occurs for it.
                  example: true
                  type: boolean
                  x-ms-summary: Triggers bundle notification when a registration action occurs for it.
                notify_on_upload:
                  description: Triggers bundle notification when a upload action occurs for it.
                  example: true
                  type: boolean
                  x-ms-summary: Triggers bundle notification when a upload action occurs for it.
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BundleNotificationEntity"
          description: The BundleNotifications object.
          x-ms-summary: The BundleNotifications object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update Bundle Notification
      tags:
        - bundle_notifications
      x-authentication: []
  /bundle_recipients:
    get:
      description: List Bundle Recipients
      operationId: GetBundleRecipients
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[has_registrations]=desc`). Valid fields are `has_registrations`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[has_registrations]=desc`). Valid fields are `has_registrations`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `has_registrations`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `has_registrations`.
        - description: List recipients for the bundle with this ID.
          in: query
          name: bundle_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: List recipients for the bundle with this ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/BundleRecipientEntity"
                type: array
          description: A list of BundleRecipients objects.
          x-ms-summary: A list of BundleRecipients objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Bundle Recipients
      tags:
        - bundle_recipients
      x-authentication: []
    post:
      description: Create Bundle Recipient
      operationId: PostBundleRecipients
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                bundle_id:
                  description: Bundle to share.
                  format: int32
                  type: integer
                  x-ms-summary: Bundle to share.
                company:
                  description: Company of recipient.
                  example: Acme Ltd
                  type: string
                  x-ms-summary: Company of recipient.
                name:
                  description: Name of recipient.
                  example: John Smith
                  type: string
                  x-ms-summary: Name of recipient.
                note:
                  description: Note to include in email.
                  example: Just a note.
                  type: string
                  x-ms-summary: Note to include in email.
                recipient:
                  description: Email addresses to share this bundle with.
                  example: johndoe@gmail.com
                  type: string
                  x-ms-summary: Email addresses to share this bundle with.
                share_after_create:
                  description: Set to true to share the link with the recipient upon creation.
                  type: boolean
                  x-ms-summary: Set to true to share the link with the recipient upon creation.
                user_id:
                  description: User ID.  Provide a value of `0` to operate the current session's user.
                  format: int32
                  type: integer
                  x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
              required:
                - bundle_id
                - recipient
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BundleRecipientEntity"
          description: The BundleRecipients object.
          x-ms-summary: The BundleRecipients object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Bundle Recipient
      tags:
        - bundle_recipients
      x-authentication: []
  /bundle_registrations:
    get:
      description: List Bundle Registrations
      operationId: GetBundleRegistrations
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: ID of the associated Bundle
          in: query
          name: bundle_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: ID of the associated Bundle
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/BundleRegistrationEntity"
                type: array
          description: A list of BundleRegistrations objects.
          x-ms-summary: A list of BundleRegistrations objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Bundle Registrations
      tags:
        - bundle_registrations
      x-authentication: []
  /bundles:
    get:
      description: List Bundles
      operationId: GetBundles
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[created_at]=desc`). Valid fields are `created_at` and `code`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[created_at]=desc`). Valid fields are `created_at` and `code`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `created_at`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is greater than the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_gt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_gteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is less than the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_lt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_lteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `created_at`.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/BundleEntity"
                type: array
          description: A list of Bundles objects.
          x-ms-summary: A list of Bundles objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Bundles
      tags:
        - bundles
      x-authentication: []
    post:
      description: Create Bundle
      operationId: PostBundles
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                clickwrap_id:
                  description: ID of the clickwrap to use with this bundle.
                  example: 1
                  format: int32
                  type: integer
                  x-ms-summary: ID of the clickwrap to use with this bundle.
                code:
                  description: Bundle code.  This code forms the end part of the Public URL.
                  example: abc123
                  type: string
                  x-ms-summary: Bundle code.  This code forms the end part of the Public URL.
                description:
                  description: Public description
                  example: The public description of the bundle.
                  type: string
                  x-ms-summary: Public description
                dont_separate_submissions_by_folder:
                  description: "Do not create subfolders for files uploaded to this share. Note: there are subtle security pitfalls with allowing anonymous uploads from multiple users to live in the same folder. We strongly discourage use of this option unless absolutely required."
                  example: true
                  type: boolean
                  x-ms-summary: "Do not create subfolders for files uploaded to this share. Note: there are subtle security pitfalls with allowing anonymous uploads from multiple users to live in the same folder. We strongly discourage use of this option unless absolutely required."
                expires_at:
                  description: Bundle expiration date/time
                  example: 2000-01-01T01:00:00Z
                  format: date-time
                  type: string
                  x-ms-summary: Bundle expiration date/time
                form_field_set_id:
                  description: Id of Form Field Set to use with this bundle
                  format: int32
                  type: integer
                  x-ms-summary: Id of Form Field Set to use with this bundle
                inbox_id:
                  description: ID of the associated inbox, if available.
                  example: 1
                  format: int32
                  type: integer
                  x-ms-summary: ID of the associated inbox, if available.
                max_uses:
                  description: Maximum number of times bundle can be accessed
                  example: 1
                  format: int32
                  type: integer
                  x-ms-summary: Maximum number of times bundle can be accessed
                note:
                  description: Bundle internal note
                  example: The internal note on the bundle.
                  type: string
                  x-ms-summary: Bundle internal note
                password:
                  description: Password for this bundle.
                  example: Password
                  type: string
                  x-ms-summary: Password for this bundle.
                path_template:
                  description: Template for creating submission subfolders. Can use the uploader's name, email address, ip, company, and any custom form data.
                  example: "{{name}}_{{ip}}"
                  type: string
                  x-ms-summary: Template for creating submission subfolders. Can use the uploader's name, email address, ip, company, and any custom form data.
                paths:
                  description: A list of paths to include in this bundle.
                  example:
                    - file.txt
                  items:
                    type: string
                  type: array
                  x-ms-summary: A list of paths to include in this bundle.
                permissions:
                  description: Permissions that apply to Folders in this Share Link.
                  enum:
                    - read
                    - write
                    - read_write
                    - full
                    - none
                    - preview_only
                  example: read
                  type: string
                  x-ms-summary: Permissions that apply to Folders in this Share Link.
                preview_only:
                  description: Restrict users to previewing files only?
                  type: boolean
                  x-ms-summary: Restrict users to previewing files only?
                require_registration:
                  description: Show a registration page that captures the downloader's name and email address?
                  type: boolean
                  x-ms-summary: Show a registration page that captures the downloader's name and email address?
                require_share_recipient:
                  description: Only allow access to recipients who have explicitly received the share via an email sent through the Files.com UI?
                  type: boolean
                  x-ms-summary: Only allow access to recipients who have explicitly received the share via an email sent through the Files.com UI?
                send_email_receipt_to_uploader:
                  description: "Send delivery receipt to the uploader. Note: For writable share only"
                  example: true
                  type: boolean
                  x-ms-summary: "Send delivery receipt to the uploader. Note: For writable share only"
                skip_company:
                  description: BundleRegistrations can be saved without providing company?
                  example: true
                  type: boolean
                  x-ms-summary: BundleRegistrations can be saved without providing company?
                skip_email:
                  description: BundleRegistrations can be saved without providing email?
                  example: true
                  type: boolean
                  x-ms-summary: BundleRegistrations can be saved without providing email?
                skip_name:
                  description: BundleRegistrations can be saved without providing name?
                  example: true
                  type: boolean
                  x-ms-summary: BundleRegistrations can be saved without providing name?
                user_id:
                  description: User ID.  Provide a value of `0` to operate the current session's user.
                  format: int32
                  type: integer
                  x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
                watermark_attachment_file:
                  description: Preview watermark image applied to all bundle items.
                  format: binary
                  type: string
                  x-ms-summary: Preview watermark image applied to all bundle items.
              required:
                - paths
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BundleEntity"
          description: The Bundles object.
          x-ms-summary: The Bundles object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Bundle
      tags:
        - bundles
      x-authentication:
        - native_app
  "/bundles/{id}":
    delete:
      description: Delete Bundle
      operationId: DeleteBundlesId
      parameters:
        - description: Bundle ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Bundle ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Bundle
      tags:
        - bundles
      x-authentication: []
    get:
      description: Show Bundle
      operationId: GetBundlesId
      parameters:
        - description: Bundle ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Bundle ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BundleEntity"
          description: The Bundles object.
          x-ms-summary: The Bundles object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Bundle
      tags:
        - bundles
      x-authentication: []
    patch:
      description: Update Bundle
      operationId: PatchBundlesId
      parameters:
        - description: Bundle ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Bundle ID.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                clickwrap_id:
                  description: ID of the clickwrap to use with this bundle.
                  example: 1
                  format: int32
                  type: integer
                  x-ms-summary: ID of the clickwrap to use with this bundle.
                code:
                  description: Bundle code.  This code forms the end part of the Public URL.
                  example: abc123
                  type: string
                  x-ms-summary: Bundle code.  This code forms the end part of the Public URL.
                description:
                  description: Public description
                  example: The public description of the bundle.
                  type: string
                  x-ms-summary: Public description
                dont_separate_submissions_by_folder:
                  description: "Do not create subfolders for files uploaded to this share. Note: there are subtle security pitfalls with allowing anonymous uploads from multiple users to live in the same folder. We strongly discourage use of this option unless absolutely required."
                  example: true
                  type: boolean
                  x-ms-summary: "Do not create subfolders for files uploaded to this share. Note: there are subtle security pitfalls with allowing anonymous uploads from multiple users to live in the same folder. We strongly discourage use of this option unless absolutely required."
                expires_at:
                  description: Bundle expiration date/time
                  example: 2000-01-01T01:00:00Z
                  format: date-time
                  type: string
                  x-ms-summary: Bundle expiration date/time
                form_field_set_id:
                  description: Id of Form Field Set to use with this bundle
                  format: int32
                  type: integer
                  x-ms-summary: Id of Form Field Set to use with this bundle
                inbox_id:
                  description: ID of the associated inbox, if available.
                  example: 1
                  format: int32
                  type: integer
                  x-ms-summary: ID of the associated inbox, if available.
                max_uses:
                  description: Maximum number of times bundle can be accessed
                  example: 1
                  format: int32
                  type: integer
                  x-ms-summary: Maximum number of times bundle can be accessed
                note:
                  description: Bundle internal note
                  example: The internal note on the bundle.
                  type: string
                  x-ms-summary: Bundle internal note
                password:
                  description: Password for this bundle.
                  example: Password
                  type: string
                  x-ms-summary: Password for this bundle.
                path_template:
                  description: Template for creating submission subfolders. Can use the uploader's name, email address, ip, company, and any custom form data.
                  example: "{{name}}_{{ip}}"
                  type: string
                  x-ms-summary: Template for creating submission subfolders. Can use the uploader's name, email address, ip, company, and any custom form data.
                paths:
                  description: A list of paths to include in this bundle.
                  example:
                    - file.txt
                  items:
                    type: string
                  type: array
                  x-ms-summary: A list of paths to include in this bundle.
                permissions:
                  description: Permissions that apply to Folders in this Share Link.
                  enum:
                    - read
                    - write
                    - read_write
                    - full
                    - none
                    - preview_only
                  example: read
                  type: string
                  x-ms-summary: Permissions that apply to Folders in this Share Link.
                preview_only:
                  description: Restrict users to previewing files only?
                  type: boolean
                  x-ms-summary: Restrict users to previewing files only?
                require_registration:
                  description: Show a registration page that captures the downloader's name and email address?
                  type: boolean
                  x-ms-summary: Show a registration page that captures the downloader's name and email address?
                require_share_recipient:
                  description: Only allow access to recipients who have explicitly received the share via an email sent through the Files.com UI?
                  type: boolean
                  x-ms-summary: Only allow access to recipients who have explicitly received the share via an email sent through the Files.com UI?
                send_email_receipt_to_uploader:
                  description: "Send delivery receipt to the uploader. Note: For writable share only"
                  example: true
                  type: boolean
                  x-ms-summary: "Send delivery receipt to the uploader. Note: For writable share only"
                skip_company:
                  description: BundleRegistrations can be saved without providing company?
                  example: true
                  type: boolean
                  x-ms-summary: BundleRegistrations can be saved without providing company?
                skip_email:
                  description: BundleRegistrations can be saved without providing email?
                  example: true
                  type: boolean
                  x-ms-summary: BundleRegistrations can be saved without providing email?
                skip_name:
                  description: BundleRegistrations can be saved without providing name?
                  example: true
                  type: boolean
                  x-ms-summary: BundleRegistrations can be saved without providing name?
                watermark_attachment_delete:
                  description: If true, will delete the file stored in watermark_attachment
                  type: boolean
                  x-ms-summary: If true, will delete the file stored in watermark_attachment
                watermark_attachment_file:
                  description: Preview watermark image applied to all bundle items.
                  format: binary
                  type: string
                  x-ms-summary: Preview watermark image applied to all bundle items.
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BundleEntity"
          description: The Bundles object.
          x-ms-summary: The Bundles object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update Bundle
      tags:
        - bundles
      x-authentication: []
  "/bundles/{id}/share":
    post:
      description: Send email(s) with a link to bundle
      operationId: PostBundlesIdShare
      parameters:
        - description: Bundle ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Bundle ID.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                note:
                  description: Note to include in email.
                  example: Just a note.
                  type: string
                  x-ms-summary: Note to include in email.
                recipients:
                  description: A list of recipients to share this bundle with. Required unless `to` is used.
                  example:
                    - company: Acme Ltd
                      name: John Doe
                      recipient: johndoe@gmail.com
                  items:
                    type: object
                  type: array
                  x-ms-summary: A list of recipients to share this bundle with. Required unless `to` is used.
                to:
                  description: A list of email addresses to share this bundle with. Required unless `recipients` is used.
                  example:
                    - johndoe@gmail.com
                  items:
                    type: string
                  type: array
                  x-ms-summary: A list of email addresses to share this bundle with. Required unless `recipients` is used.
              type: object
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Send email(s) with a link to bundle
      tags:
        - bundles
      x-authentication: []
  /clickwraps:
    get:
      description: List Clickwraps
      operationId: GetClickwraps
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ClickwrapEntity"
                type: array
          description: A list of Clickwraps objects.
          x-ms-summary: A list of Clickwraps objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Clickwraps
      tags:
        - clickwraps
      x-authentication: []
    post:
      description: Create Clickwrap
      operationId: PostClickwraps
      requestBody:
        $ref: "#/components/requestBodies/PostClickwraps"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClickwrapEntity"
          description: The Clickwraps object.
          x-ms-summary: The Clickwraps object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Clickwrap
      tags:
        - clickwraps
      x-authentication:
        - site
  "/clickwraps/{id}":
    delete:
      description: Delete Clickwrap
      operationId: DeleteClickwrapsId
      parameters:
        - description: Clickwrap ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Clickwrap ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Clickwrap
      tags:
        - clickwraps
      x-authentication:
        - site
    get:
      description: Show Clickwrap
      operationId: GetClickwrapsId
      parameters:
        - description: Clickwrap ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Clickwrap ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClickwrapEntity"
          description: The Clickwraps object.
          x-ms-summary: The Clickwraps object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Clickwrap
      tags:
        - clickwraps
      x-authentication:
        - site
    patch:
      description: Update Clickwrap
      operationId: PatchClickwrapsId
      parameters:
        - description: Clickwrap ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Clickwrap ID.
      requestBody:
        $ref: "#/components/requestBodies/PostClickwraps"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClickwrapEntity"
          description: The Clickwraps object.
          x-ms-summary: The Clickwraps object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update Clickwrap
      tags:
        - clickwraps
      x-authentication:
        - site
  /dns_records:
    get:
      description: Show site DNS configuration.
      operationId: GetDnsRecords
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/DnsRecordEntity"
                type: array
          description: A list of DnsRecords objects.
          x-ms-summary: A list of DnsRecords objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show site DNS configuration.
      tags:
        - dns_records
      x-authentication:
        - site
        - overdue_ok
      x-path_aliases:
        - site/dns_records
  /external_events:
    get:
      description: List External Events
      operationId: GetExternalEvents
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[remote_server_type]=desc`). Valid fields are `remote_server_type`, `site_id`, `folder_behavior_id`, `event_type`, `created_at` or `status`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[remote_server_type]=desc`). Valid fields are `remote_server_type`, `site_id`, `folder_behavior_id`, `event_type`, `created_at` or `status`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `created_at`, `event_type`, `remote_server_type`, `status` or `folder_behavior_id`. Valid field combinations are `[ event_type, status, created_at ]`, `[ event_type, created_at ]` or `[ status, created_at ]`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `created_at`, `event_type`, `remote_server_type`, `status` or `folder_behavior_id`. Valid field combinations are `[ event_type, status, created_at ]`, `[ event_type, created_at ]` or `[ status, created_at ]`.
        - description: If set, return records where the specified field is greater than the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_gt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_gteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `remote_server_type`.
          in: query
          name: filter_prefix
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `remote_server_type`.
        - description: If set, return records where the specified field is less than the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_lt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_lteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `created_at`.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ExternalEventEntity"
                type: array
          description: A list of ExternalEvents objects.
          x-ms-summary: A list of ExternalEvents objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List External Events
      tags:
        - external_events
      x-authentication:
        - site
    post:
      description: Create External Event
      operationId: PostExternalEvents
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                body:
                  description: Event body
                  example: example
                  type: string
                  x-ms-summary: Event body
                status:
                  description: Status of event.
                  enum:
                    - success
                    - failure
                    - partial_failure
                    - in_progress
                    - skipped
                  example: example
                  type: string
                  x-ms-summary: Status of event.
              required:
                - status
                - body
              type: object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExternalEventEntity"
          description: The ExternalEvents object.
          x-ms-summary: The ExternalEvents object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create External Event
      tags:
        - external_events
      x-authentication: []
  "/external_events/{id}":
    get:
      description: Show External Event
      operationId: GetExternalEventsId
      parameters:
        - description: External Event ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: External Event ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExternalEventEntity"
          description: The ExternalEvents object.
          x-ms-summary: The ExternalEvents object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show External Event
      tags:
        - external_events
      x-authentication:
        - site
  "/file_actions/begin_upload/{path}":
    post:
      description: Begin file upload
      operationId: FileActionBeginUpload
      parameters:
        - description: Path to operate on.
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Path to operate on.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                mkdir_parents:
                  description: Create parent directories if they do not exist?
                  type: boolean
                  x-ms-summary: Create parent directories if they do not exist?
                part:
                  description: Part if uploading a part.
                  format: int32
                  type: integer
                  x-ms-summary: Part if uploading a part.
                parts:
                  description: How many parts to fetch?
                  format: int32
                  type: integer
                  x-ms-summary: How many parts to fetch?
                ref:
                  type: string
                  x-ms-summary: ""
                restart:
                  description: File byte offset to restart from.
                  format: int32
                  type: integer
                  x-ms-summary: File byte offset to restart from.
                size:
                  description: Total bytes of file being uploaded (include bytes being retained if appending/restarting).
                  format: int32
                  type: integer
                  x-ms-summary: Total bytes of file being uploaded (include bytes being retained if appending/restarting).
                with_rename:
                  description: Allow file rename instead of overwrite?
                  type: boolean
                  x-ms-summary: Allow file rename instead of overwrite?
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/FileUploadPartEntity"
                type: array
          description: The FileActions object.
          x-ms-summary: The FileActions object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Begin file upload
      tags:
        - file_actions
      x-authentication:
        - native_app
        - office_integration
        - inbox
        - bundle_allowed
  "/file_actions/copy/{path}":
    post:
      description: Copy file/folder
      operationId: FileActionCopy
      parameters:
        - description: Path to operate on.
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Path to operate on.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                destination:
                  description: Copy destination path.
                  type: string
                  x-ms-summary: Copy destination path.
                structure:
                  description: Copy structure only?
                  type: boolean
                  x-ms-summary: Copy structure only?
              required:
                - destination
              type: object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FileActionEntity"
          description: The FileActions object.
          x-ms-summary: The FileActions object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Copy file/folder
      tags:
        - file_actions
      x-authentication:
        - native_app
        - office_integration
        - bundle_allowed
  "/file_actions/metadata/{path}":
    get:
      description: Find file/folder by path
      operationId: FileActionFind
      parameters:
        - description: Path to operate on.
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Path to operate on.
        - description: Request a preview size.  Can be `small` (default), `large`, `xlarge`, or `pdf`.
          in: query
          name: preview_size
          required: false
          schema:
            type: string
          x-ms-summary: Request a preview size.  Can be `small` (default), `large`, `xlarge`, or `pdf`.
        - description: Include file preview information?
          in: query
          name: with_previews
          required: false
          schema:
            type: boolean
          x-ms-summary: Include file preview information?
        - description: Include file priority color information?
          in: query
          name: with_priority_color
          required: false
          schema:
            type: boolean
          x-ms-summary: Include file priority color information?
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FileEntity"
          description: The FileActions object.
          x-ms-summary: The FileActions object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Find file/folder by path
      tags:
        - file_actions
      x-authentication:
        - native_app
        - office_integration
  "/file_actions/move/{path}":
    post:
      description: Move file/folder
      operationId: FileActionMove
      parameters:
        - description: Path to operate on.
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Path to operate on.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                destination:
                  description: Move destination path.
                  type: string
                  x-ms-summary: Move destination path.
              required:
                - destination
              type: object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FileActionEntity"
          description: The FileActions object.
          x-ms-summary: The FileActions object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Move file/folder
      tags:
        - file_actions
      x-authentication:
        - native_app
        - office_integration
        - bundle_allowed
  /file_comment_reactions:
    post:
      description: Create File Comment Reaction
      operationId: PostFileCommentReactions
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                emoji:
                  description: Emoji to react with.
                  type: string
                  x-ms-summary: Emoji to react with.
                file_comment_id:
                  description: ID of file comment to attach reaction to.
                  format: int32
                  type: integer
                  x-ms-summary: ID of file comment to attach reaction to.
                user_id:
                  description: User ID.  Provide a value of `0` to operate the current session's user.
                  format: int32
                  type: integer
                  x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
              required:
                - file_comment_id
                - emoji
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FileCommentReactionEntity"
          description: The FileCommentReactions object.
          x-ms-summary: The FileCommentReactions object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create File Comment Reaction
      tags:
        - file_comment_reactions
      x-authentication: []
  "/file_comment_reactions/{id}":
    delete:
      description: Delete File Comment Reaction
      operationId: DeleteFileCommentReactionsId
      parameters:
        - description: File Comment Reaction ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: File Comment Reaction ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete File Comment Reaction
      tags:
        - file_comment_reactions
      x-authentication: []
  /file_comments:
    post:
      description: Create File Comment
      operationId: PostFileComments
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                body:
                  description: Comment body.
                  type: string
                  x-ms-summary: Comment body.
                path:
                  description: File path.
                  type: string
                  x-ms-summary: File path.
              required:
                - body
                - path
              type: object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FileCommentEntity"
          description: The FileComments object.
          x-ms-summary: The FileComments object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create File Comment
      tags:
        - file_comments
      x-authentication: []
  "/file_comments/files/{path}":
    get:
      description: List File Comments by path
      operationId: FileCommentListForPath
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: Path to operate on.
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Path to operate on.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/FileCommentEntity"
                type: array
          description: A list of FileComments objects.
          x-ms-summary: A list of FileComments objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List File Comments by path
      tags:
        - file_comments
      x-authentication: []
  "/file_comments/{id}":
    delete:
      description: Delete File Comment
      operationId: DeleteFileCommentsId
      parameters:
        - description: File Comment ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: File Comment ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete File Comment
      tags:
        - file_comments
      x-authentication: []
    patch:
      description: Update File Comment
      operationId: PatchFileCommentsId
      parameters:
        - description: File Comment ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: File Comment ID.
      requestBody:
        $ref: "#/components/requestBodies/PatchFileCommentsId"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FileCommentEntity"
          description: The FileComments object.
          x-ms-summary: The FileComments object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update File Comment
      tags:
        - file_comments
      x-authentication: []
  "/file_migrations/{id}":
    get:
      description: Show File Migration
      operationId: GetFileMigrationsId
      parameters:
        - description: File Migration ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: File Migration ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FileMigrationEntity"
          description: The FileMigrations object.
          x-ms-summary: The FileMigrations object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show File Migration
      tags:
        - file_migrations
      x-authentication:
        - native_app
  "/files/{path}":
    delete:
      description: Delete file/folder
      operationId: DeleteFilesPath
      parameters:
        - description: Path to operate on.
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Path to operate on.
        - description: If true, will recursively delete folers.  Otherwise, will error on non-empty folders.
          in: query
          name: recursive
          required: false
          schema:
            type: boolean
          x-ms-summary: If true, will recursively delete folers.  Otherwise, will error on non-empty folders.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete file/folder
      tags:
        - files
      x-authentication:
        - native_app
        - office_integration
        - no_readonly
        - bundle_allowed
    get:
      description: Download file
      operationId: FileDownload
      parameters:
        - description: Path to operate on.
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Path to operate on.
        - description: Can be blank, `redirect` or `stat`.  If set to `stat`, we will return file information but without a download URL, and without logging a download.  If set to `redirect` we will serve a 302 redirect directly to the file.  This is used for integrations with Zapier, and is not recommended for most integrations.
          in: query
          name: action
          required: false
          schema:
            type: string
          x-ms-summary: Can be blank, `redirect` or `stat`.  If set to `stat`, we will return file information but without a download URL, and without logging a download.  If set to `redirect` we will serve a 302 redirect directly to the file.  This is used for integrations with Zapier, and is not recommended for most integrations.
        - description: Request a preview size.  Can be `small` (default), `large`, `xlarge`, or `pdf`.
          in: query
          name: preview_size
          required: false
          schema:
            type: string
          x-ms-summary: Request a preview size.  Can be `small` (default), `large`, `xlarge`, or `pdf`.
        - description: Include file preview information?
          in: query
          name: with_previews
          required: false
          schema:
            type: boolean
          x-ms-summary: Include file preview information?
        - description: Include file priority color information?
          in: query
          name: with_priority_color
          required: false
          schema:
            type: boolean
          x-ms-summary: Include file priority color information?
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FileEntity"
          description: The Files object.
          x-ms-summary: The Files object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Download file
      tags:
        - files
      x-authentication:
        - native_app
        - office_integration
        - no_readonly
        - bundle_allowed
    patch:
      description: Update file/folder metadata
      operationId: PatchFilesPath
      parameters:
        - description: Path to operate on.
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Path to operate on.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                priority_color:
                  description: Priority/Bookmark color of file.
                  example: red
                  type: string
                  x-ms-summary: Priority/Bookmark color of file.
                provided_mtime:
                  description: Modified time of file.
                  format: date-time
                  type: string
                  x-ms-summary: Modified time of file.
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FileEntity"
          description: The Files object.
          x-ms-summary: The Files object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update file/folder metadata
      tags:
        - files
      x-authentication:
        - native_app
        - office_integration
        - no_readonly
    post:
      description: Upload file
      operationId: PostFilesPath
      parameters:
        - description: Path to operate on.
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Path to operate on.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                action:
                  description: The action to perform.  Can be `append`, `attachment`, `end`, `upload`, `put`, or may not exist
                  type: string
                  x-ms-summary: The action to perform.  Can be `append`, `attachment`, `end`, `upload`, `put`, or may not exist
                "etags[etag]":
                  description: etag identifier.
                  items:
                    type: string
                  type: array
                  x-ms-summary: etag identifier.
                "etags[part]":
                  description: Part number.
                  items:
                    format: int32
                    type: integer
                  type: array
                  x-ms-summary: Part number.
                length:
                  description: Length of file.
                  format: int32
                  type: integer
                  x-ms-summary: Length of file.
                mkdir_parents:
                  description: Create parent directories if they do not exist?
                  type: boolean
                  x-ms-summary: Create parent directories if they do not exist?
                part:
                  description: Part if uploading a part.
                  format: int32
                  type: integer
                  x-ms-summary: Part if uploading a part.
                parts:
                  description: How many parts to fetch?
                  format: int32
                  type: integer
                  x-ms-summary: How many parts to fetch?
                provided_mtime:
                  description: User provided modification time.
                  format: date-time
                  type: string
                  x-ms-summary: User provided modification time.
                ref:
                  type: string
                  x-ms-summary: ""
                restart:
                  description: File byte offset to restart from.
                  format: int32
                  type: integer
                  x-ms-summary: File byte offset to restart from.
                size:
                  description: Size of file.
                  format: int32
                  type: integer
                  x-ms-summary: Size of file.
                structure:
                  description: If copying folder, copy just the structure?
                  type: string
                  x-ms-summary: If copying folder, copy just the structure?
                with_rename:
                  description: Allow file rename instead of overwrite?
                  type: boolean
                  x-ms-summary: Allow file rename instead of overwrite?
              required:
                - etags[etag]
                - etags[part]
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FileEntity"
          description: The Files object.
          x-ms-summary: The Files object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Upload file
      tags:
        - files
      x-authentication:
        - native_app
        - office_integration
        - inbox
        - bundle_allowed
  "/folders/{path}":
    get:
      description: List Folders by path
      operationId: FolderListForPath
      parameters:
        - description: Send cursor to resume an existing list from the point at which you left off.  Get a cursor from an existing list via the X-Files-Cursor-Next header or the X-Files-Cursor-Prev header.
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: Send cursor to resume an existing list from the point at which you left off.  Get a cursor from an existing list via the X-Files-Cursor-Next header or the X-Files-Cursor-Prev header.
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: Path to operate on.
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Path to operate on.
        - description: If specified, will filter folders/files list by this string.  Wildcards of `*` and `?` are acceptable here.
          in: query
          name: filter
          required: false
          schema:
            type: string
          x-ms-summary: If specified, will filter folders/files list by this string.  Wildcards of `*` and `?` are acceptable here.
        - description: Request a preview size.  Can be `small` (default), `large`, `xlarge`, or `pdf`.
          in: query
          name: preview_size
          required: false
          schema:
            type: string
          x-ms-summary: Request a preview size.  Can be `small` (default), `large`, `xlarge`, or `pdf`.
        - description: Search by field and direction. Valid fields are `path`, `size`, `modified_at_datetime`, `provided_modified_at`.  Valid directions are `asc` and `desc`.  Defaults to `{"path":"asc"}`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: Search by field and direction. Valid fields are `path`, `size`, `modified_at_datetime`, `provided_modified_at`.  Valid directions are `asc` and `desc`.  Defaults to `{"path":"asc"}`.
        - description: If `search_all` is `true`, provide the search string here.  Otherwise, this parameter acts like an alias of `filter`.
          in: query
          name: search
          required: false
          schema:
            type: string
          x-ms-summary: If `search_all` is `true`, provide the search string here.  Otherwise, this parameter acts like an alias of `filter`.
        - description: Search entire site?  If set, we will ignore the folder path provided and search the entire site.  This is the same API used by the search bar in the UI.  Search results are a best effort, not real time, and not guaranteed to match every file.  This field should only be used for ad-hoc (human) searching, and not as part of an automated process.
          in: query
          name: search_all
          required: false
          schema:
            type: boolean
          x-ms-summary: Search entire site?  If set, we will ignore the folder path provided and search the entire site.  This is the same API used by the search bar in the UI.  Search results are a best effort, not real time, and not guaranteed to match every file.  This field should only be used for ad-hoc (human) searching, and not as part of an automated process.
        - description: Include file previews?
          in: query
          name: with_previews
          required: false
          schema:
            type: boolean
          x-ms-summary: Include file previews?
        - description: Include file priority color information?
          in: query
          name: with_priority_color
          required: false
          schema:
            type: boolean
          x-ms-summary: Include file priority color information?
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/FileEntity"
                type: array
          description: A list of Folders objects.
          x-ms-summary: A list of Folders objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Folders by path
      tags:
        - folders
      x-authentication:
        - native_app
        - bundle_allowed
    post:
      description: Create folder
      operationId: PostFoldersPath
      parameters:
        - description: Path to operate on.
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Path to operate on.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                mkdir_parents:
                  description: Create parent directories if they do not exist?
                  type: boolean
                  x-ms-summary: Create parent directories if they do not exist?
                provided_mtime:
                  description: User provided modification time.
                  format: date-time
                  type: string
                  x-ms-summary: User provided modification time.
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FileEntity"
          description: The Folders object.
          x-ms-summary: The Folders object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create folder
      tags:
        - folders
      x-authentication:
        - native_app
        - bundle_allowed
  /form_field_sets:
    get:
      description: List Form Field Sets
      operationId: GetFormFieldSets
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/FormFieldSetEntity"
                type: array
          description: A list of FormFieldSets objects.
          x-ms-summary: A list of FormFieldSets objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Form Field Sets
      tags:
        - form_field_sets
      x-authentication: []
    post:
      description: Create Form Field Set
      operationId: PostFormFieldSets
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/postFormFieldSets"
          application/x-www-form-urlencoded:
            schema:
              $ref: "#/components/schemas/postFormFieldSets"
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/postFormFieldSets"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FormFieldSetEntity"
          description: The FormFieldSets object.
          x-ms-summary: The FormFieldSets object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Form Field Set
      tags:
        - form_field_sets
      x-authentication: []
  "/form_field_sets/{id}":
    delete:
      description: Delete Form Field Set
      operationId: DeleteFormFieldSetsId
      parameters:
        - description: Form Field Set ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Form Field Set ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Form Field Set
      tags:
        - form_field_sets
      x-authentication: []
    get:
      description: Show Form Field Set
      operationId: GetFormFieldSetsId
      parameters:
        - description: Form Field Set ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Form Field Set ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FormFieldSetEntity"
          description: The FormFieldSets object.
          x-ms-summary: The FormFieldSets object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Form Field Set
      tags:
        - form_field_sets
      x-authentication: []
    patch:
      description: Update Form Field Set
      operationId: PatchFormFieldSetsId
      parameters:
        - description: Form Field Set ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Form Field Set ID.
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/patchFormFieldSets"
          application/x-www-form-urlencoded:
            schema:
              $ref: "#/components/schemas/patchFormFieldSets"
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/patchFormFieldSets"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FormFieldSetEntity"
          description: The FormFieldSets object.
          x-ms-summary: The FormFieldSets object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update Form Field Set
      tags:
        - form_field_sets
      x-authentication: []
  /group_users:
    get:
      description: List Group Users
      operationId: GetGroupUsers
      parameters:
        - description: User ID.  If provided, will return group_users of this user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  If provided, will return group_users of this user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: Group ID.  If provided, will return group_users of this group.
          in: query
          name: group_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: Group ID.  If provided, will return group_users of this group.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/GroupUserEntity"
                type: array
          description: A list of GroupUsers objects.
          x-ms-summary: A list of GroupUsers objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Group Users
      tags:
        - group_users
      x-authentication: []
      x-path_aliases:
        - user/groups
        - users/:user_id/groups
        - groups/:group_id/users
    post:
      description: Create Group User
      operationId: PostGroupUsers
      requestBody:
        $ref: "#/components/requestBodies/PatchGroupUsersId"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GroupUserEntity"
          description: The GroupUsers object.
          x-ms-summary: The GroupUsers object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Group User
      tags:
        - group_users
      x-authentication:
        - site
  "/group_users/{id}":
    delete:
      description: Delete Group User
      operationId: DeleteGroupUsersId
      parameters:
        - description: Group User ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Group User ID.
        - description: Group ID from which to remove user.
          in: query
          name: group_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Group ID from which to remove user.
        - description: User ID to remove from group.
          in: query
          name: user_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID to remove from group.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Group User
      tags:
        - group_users
      x-authentication:
        - site
      x-path_aliases:
        - groups/:group_id/memberships/:user_id
    patch:
      description: Update Group User
      operationId: PatchGroupUsersId
      parameters:
        - description: Group User ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Group User ID.
      requestBody:
        $ref: "#/components/requestBodies/PatchGroupUsersId"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GroupUserEntity"
          description: The GroupUsers object.
          x-ms-summary: The GroupUsers object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update Group User
      tags:
        - group_users
      x-authentication:
        - site
      x-path_aliases:
        - groups/:group_id/memberships/:user_id
  /groups:
    get:
      description: List Groups
      operationId: GetGroups
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[name]=desc`). Valid fields are `name`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[name]=desc`). Valid fields are `name`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `name`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `name`.
        - description: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `name`.
          in: query
          name: filter_prefix
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `name`.
        - description: Comma-separated list of group ids to include in results.
          in: query
          name: ids
          required: false
          schema:
            type: string
          x-ms-summary: Comma-separated list of group ids to include in results.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/GroupEntity"
                type: array
          description: A list of Groups objects.
          x-ms-summary: A list of Groups objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Groups
      tags:
        - groups
      x-authentication:
        - folder_admin
    post:
      description: Create Group
      operationId: PostGroups
      requestBody:
        $ref: "#/components/requestBodies/PatchGroupsId"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GroupEntity"
          description: The Groups object.
          x-ms-summary: The Groups object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Group
      tags:
        - groups
      x-authentication:
        - site
  "/groups/{group_id}/memberships/{user_id}":
    delete:
      description: Delete Group User
      operationId: DeleteGroupsGroupIdMembershipsUserId
      parameters:
        - description: Group ID from which to remove user.
          in: path
          name: group_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Group ID from which to remove user.
        - description: User ID to remove from group.
          in: path
          name: user_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID to remove from group.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Group User
      tags:
        - groups
      x-authentication:
        - site
      x-path_aliases:
        - groups/:group_id/memberships/:user_id
    patch:
      description: Update Group User
      operationId: PatchGroupsGroupIdMembershipsUserId
      parameters:
        - description: Group ID to add user to.
          in: path
          name: group_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Group ID to add user to.
        - description: User ID to add to group.
          in: path
          name: user_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID to add to group.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                admin:
                  description: Is the user a group administrator?
                  type: boolean
                  x-ms-summary: Is the user a group administrator?
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GroupUserEntity"
          description: The GroupUsers object.
          x-ms-summary: The GroupUsers object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update Group User
      tags:
        - groups
      x-authentication:
        - site
      x-path_aliases:
        - groups/:group_id/memberships/:user_id
  "/groups/{group_id}/permissions":
    get:
      description: List Permissions
      operationId: GetGroupsGroupIdPermissions
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[group_id]=desc`). Valid fields are `group_id`, `path`, `user_id` or `permission`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[group_id]=desc`). Valid fields are `group_id`, `path`, `user_id` or `permission`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `group_id`, `user_id` or `path`. Valid field combinations are `[ group_id, path ]` and `[ user_id, path ]`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `group_id`, `user_id` or `path`. Valid field combinations are `[ group_id, path ]` and `[ user_id, path ]`.
        - description: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `path`.
          in: query
          name: filter_prefix
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `path`.
        - description: "DEPRECATED: Permission path.  If provided, will scope permissions to this path. Use `filter[path]` instead."
          in: query
          name: path
          required: false
          schema:
            type: string
          x-ms-summary: "DEPRECATED: Permission path.  If provided, will scope permissions to this path. Use `filter[path]` instead."
        - description: "DEPRECATED: Group ID.  If provided, will scope permissions to this group. Use `filter[group_id]` instead.`"
          in: path
          name: group_id
          required: true
          schema:
            type: string
          x-ms-summary: "DEPRECATED: Group ID.  If provided, will scope permissions to this group. Use `filter[group_id]` instead.`"
        - description: "DEPRECATED: User ID.  If provided, will scope permissions to this user. Use `filter[user_id]` instead.`"
          in: query
          name: user_id
          required: false
          schema:
            type: string
          x-ms-summary: "DEPRECATED: User ID.  If provided, will scope permissions to this user. Use `filter[user_id]` instead.`"
        - description: If searching by user or group, also include user's permissions that are inherited from its groups?
          in: query
          name: include_groups
          required: false
          schema:
            type: boolean
          x-ms-summary: If searching by user or group, also include user's permissions that are inherited from its groups?
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/PermissionEntity"
                type: array
          description: A list of Permissions objects.
          x-ms-summary: A list of Permissions objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Permissions
      tags:
        - groups
      x-authentication: []
      x-path_aliases:
        - groups/:group_id/permissions
        - users/:user_id/permissions
  "/groups/{group_id}/users":
    get:
      description: List Group Users
      operationId: GetGroupsGroupIdUsers
      parameters:
        - description: User ID.  If provided, will return group_users of this user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  If provided, will return group_users of this user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: Group ID.  If provided, will return group_users of this group.
          in: path
          name: group_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Group ID.  If provided, will return group_users of this group.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/GroupUserEntity"
                type: array
          description: A list of GroupUsers objects.
          x-ms-summary: A list of GroupUsers objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Group Users
      tags:
        - groups
      x-authentication: []
      x-path_aliases:
        - user/groups
        - users/:user_id/groups
        - groups/:group_id/users
    post:
      description: Create User
      operationId: PostGroupsGroupIdUsers
      parameters:
        - description: Group ID to associate this user with.
          in: path
          name: group_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Group ID to associate this user with.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                allowed_ips:
                  description: A list of allowed IPs if applicable.  Newline delimited
                  example: 127.0.0.1
                  type: string
                  x-ms-summary: A list of allowed IPs if applicable.  Newline delimited
                announcements_read:
                  description: Signifies that the user has read all the announcements in the UI.
                  type: boolean
                  x-ms-summary: Signifies that the user has read all the announcements in the UI.
                attachments_permission:
                  description: "DEPRECATED: Can the user create Bundles (aka Share Links)? Use the bundle permission instead."
                  example: true
                  type: boolean
                  x-ms-summary: "DEPRECATED: Can the user create Bundles (aka Share Links)? Use the bundle permission instead."
                authenticate_until:
                  description: Scheduled Date/Time at which user will be deactivated
                  example: 2000-01-01T01:00:00Z
                  format: date-time
                  type: string
                  x-ms-summary: Scheduled Date/Time at which user will be deactivated
                authentication_method:
                  description: How is this user authenticated?
                  enum:
                    - password
                    - unused_former_ldap
                    - sso
                    - none
                    - email_signup
                    - password_with_imported_hash
                  example: password
                  type: string
                  x-ms-summary: How is this user authenticated?
                avatar_delete:
                  description: If true, the avatar will be deleted.
                  type: boolean
                  x-ms-summary: If true, the avatar will be deleted.
                avatar_file:
                  description: An image file for your user avatar.
                  format: binary
                  type: string
                  x-ms-summary: An image file for your user avatar.
                billing_permission:
                  description: Allow this user to perform operations on the account, payments, and invoices?
                  type: boolean
                  x-ms-summary: Allow this user to perform operations on the account, payments, and invoices?
                bypass_inactive_disable:
                  description: Exempt this user from being disabled based on inactivity?
                  type: boolean
                  x-ms-summary: Exempt this user from being disabled based on inactivity?
                bypass_site_allowed_ips:
                  description: Allow this user to skip site-wide IP blacklists?
                  type: boolean
                  x-ms-summary: Allow this user to skip site-wide IP blacklists?
                change_password:
                  description: Used for changing a password on an existing user.
                  type: string
                  x-ms-summary: Used for changing a password on an existing user.
                change_password_confirmation:
                  description: Optional, but if provided, we will ensure that it matches the value sent in `change_password`.
                  type: string
                  x-ms-summary: Optional, but if provided, we will ensure that it matches the value sent in `change_password`.
                company:
                  description: User's company
                  example: ACME Corp.
                  type: string
                  x-ms-summary: User's company
                dav_permission:
                  description: Can the user connect with WebDAV?
                  example: true
                  type: boolean
                  x-ms-summary: Can the user connect with WebDAV?
                disabled:
                  description: Is user disabled? Disabled users cannot log in, and do not count for billing purposes.  Users can be automatically disabled after an inactivity period via a Site setting.
                  example: true
                  type: boolean
                  x-ms-summary: Is user disabled? Disabled users cannot log in, and do not count for billing purposes.  Users can be automatically disabled after an inactivity period via a Site setting.
                email:
                  description: User's email.
                  type: string
                  x-ms-summary: User's email.
                ftp_permission:
                  description: Can the user access with FTP/FTPS?
                  example: true
                  type: boolean
                  x-ms-summary: Can the user access with FTP/FTPS?
                grant_permission:
                  description: Permission to grant on the user root.  Can be blank or `full`, `read`, `write`, `list`, `read+write`, or `list+write`
                  type: string
                  x-ms-summary: Permission to grant on the user root.  Can be blank or `full`, `read`, `write`, `list`, `read+write`, or `list+write`
                group_ids:
                  description: A list of group ids to associate this user with.  Comma delimited.
                  type: string
                  x-ms-summary: A list of group ids to associate this user with.  Comma delimited.
                header_text:
                  description: Text to display to the user in the header of the UI
                  example: User-specific message.
                  type: string
                  x-ms-summary: Text to display to the user in the header of the UI
                imported_password_hash:
                  description: Pre-calculated hash of the user's password. If supplied, this will be used to authenticate the user on first login. Supported hash menthods are MD5, SHA1, and SHA256.
                  type: string
                  x-ms-summary: Pre-calculated hash of the user's password. If supplied, this will be used to authenticate the user on first login. Supported hash menthods are MD5, SHA1, and SHA256.
                language:
                  description: Preferred language
                  example: en
                  type: string
                  x-ms-summary: Preferred language
                name:
                  description: User's full name
                  example: John Doe
                  type: string
                  x-ms-summary: User's full name
                notes:
                  description: Any internal notes on the user
                  example: Internal notes on this user.
                  type: string
                  x-ms-summary: Any internal notes on the user
                notification_daily_send_time:
                  description: Hour of the day at which daily notifications should be sent. Can be in range 0 to 23
                  example: 18
                  format: int32
                  type: integer
                  x-ms-summary: Hour of the day at which daily notifications should be sent. Can be in range 0 to 23
                office_integration_enabled:
                  description: Enable integration with Office for the web?
                  example: true
                  type: boolean
                  x-ms-summary: Enable integration with Office for the web?
                password:
                  description: User password.
                  type: string
                  x-ms-summary: User password.
                password_confirmation:
                  description: Optional, but if provided, we will ensure that it matches the value sent in `password`.
                  type: string
                  x-ms-summary: Optional, but if provided, we will ensure that it matches the value sent in `password`.
                password_validity_days:
                  description: Number of days to allow user to use the same password
                  example: 1
                  format: int32
                  type: integer
                  x-ms-summary: Number of days to allow user to use the same password
                receive_admin_alerts:
                  description: Should the user receive admin alerts such a certificate expiration notifications and overages?
                  example: true
                  type: boolean
                  x-ms-summary: Should the user receive admin alerts such a certificate expiration notifications and overages?
                require_2fa:
                  description: 2FA required setting
                  enum:
                    - use_system_setting
                    - always_require
                    - never_require
                  example: always_require
                  type: string
                  x-ms-summary: 2FA required setting
                require_password_change:
                  description: Is a password change required upon next user login?
                  example: true
                  type: boolean
                  x-ms-summary: Is a password change required upon next user login?
                restapi_permission:
                  description: Can this user access the REST API?
                  example: true
                  type: boolean
                  x-ms-summary: Can this user access the REST API?
                self_managed:
                  description: Does this user manage it's own credentials or is it a shared/bot user?
                  example: true
                  type: boolean
                  x-ms-summary: Does this user manage it's own credentials or is it a shared/bot user?
                sftp_permission:
                  description: Can the user access with SFTP?
                  example: true
                  type: boolean
                  x-ms-summary: Can the user access with SFTP?
                site_admin:
                  description: Is the user an administrator for this site?
                  example: true
                  type: boolean
                  x-ms-summary: Is the user an administrator for this site?
                skip_welcome_screen:
                  description: Skip Welcome page in the UI?
                  example: true
                  type: boolean
                  x-ms-summary: Skip Welcome page in the UI?
                ssl_required:
                  description: SSL required setting
                  enum:
                    - use_system_setting
                    - always_require
                    - never_require
                  example: always_require
                  type: string
                  x-ms-summary: SSL required setting
                sso_strategy_id:
                  description: SSO (Single Sign On) strategy ID for the user, if applicable.
                  example: 1
                  format: int32
                  type: integer
                  x-ms-summary: SSO (Single Sign On) strategy ID for the user, if applicable.
                subscribe_to_newsletter:
                  description: Is the user subscribed to the newsletter?
                  example: true
                  type: boolean
                  x-ms-summary: Is the user subscribed to the newsletter?
                time_zone:
                  description: User time zone
                  example: Pacific Time (US & Canada)
                  type: string
                  x-ms-summary: User time zone
                user_root:
                  description: Root folder for FTP (and optionally SFTP if the appropriate site-wide setting is set.)  Note that this is not used for API, Desktop, or Web interface.
                  example: example
                  type: string
                  x-ms-summary: Root folder for FTP (and optionally SFTP if the appropriate site-wide setting is set.)  Note that this is not used for API, Desktop, or Web interface.
                username:
                  description: User's username
                  example: user
                  type: string
                  x-ms-summary: User's username
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserEntity"
          description: The Users object.
          x-ms-summary: The Users object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create User
      tags:
        - groups
      x-authentication: []
      x-path_aliases:
        - groups/:group_id/users
  "/groups/{id}":
    delete:
      description: Delete Group
      operationId: DeleteGroupsId
      parameters:
        - description: Group ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Group ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Group
      tags:
        - groups
      x-authentication:
        - site
    get:
      description: Show Group
      operationId: GetGroupsId
      parameters:
        - description: Group ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Group ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GroupEntity"
          description: The Groups object.
          x-ms-summary: The Groups object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Group
      tags:
        - groups
      x-authentication:
        - folder_admin
    patch:
      description: Update Group
      operationId: PatchGroupsId
      parameters:
        - description: Group ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Group ID.
      requestBody:
        $ref: "#/components/requestBodies/PatchGroupsId"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GroupEntity"
          description: The Groups object.
          x-ms-summary: The Groups object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update Group
      tags:
        - groups
      x-authentication:
        - site
  /history:
    get:
      description: List site full action history.
      operationId: HistoryList
      parameters:
        - description: Leave blank or set to a date/time to filter earlier entries.
          in: query
          name: start_at
          required: false
          schema:
            format: date-time
            type: string
          x-ms-summary: Leave blank or set to a date/time to filter earlier entries.
        - description: Leave blank or set to a date/time to filter later entries.
          in: query
          name: end_at
          required: false
          schema:
            format: date-time
            type: string
          x-ms-summary: Leave blank or set to a date/time to filter later entries.
        - description: Display format. Leave blank or set to `full` or `parent`.
          in: query
          name: display
          required: false
          schema:
            type: string
          x-ms-summary: Display format. Leave blank or set to `full` or `parent`.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[path]=desc`). Valid fields are `path`, `folder`, `user_id` or `created_at`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[path]=desc`). Valid fields are `path`, `folder`, `user_id` or `created_at`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `user_id`, `folder` or `path`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `user_id`, `folder` or `path`.
        - description: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `path`.
          in: query
          name: filter_prefix
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `path`.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ActionEntity"
                type: array
          description: A list of History objects.
          x-ms-summary: A list of History objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List site full action history.
      tags:
        - history
      x-authentication:
        - site
  "/history/files/{path}":
    get:
      description: List history for specific file.
      operationId: HistoryListForFile
      parameters:
        - description: Leave blank or set to a date/time to filter earlier entries.
          in: query
          name: start_at
          required: false
          schema:
            format: date-time
            type: string
          x-ms-summary: Leave blank or set to a date/time to filter earlier entries.
        - description: Leave blank or set to a date/time to filter later entries.
          in: query
          name: end_at
          required: false
          schema:
            format: date-time
            type: string
          x-ms-summary: Leave blank or set to a date/time to filter later entries.
        - description: Display format. Leave blank or set to `full` or `parent`.
          in: query
          name: display
          required: false
          schema:
            type: string
          x-ms-summary: Display format. Leave blank or set to `full` or `parent`.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[user_id]=desc`). Valid fields are `user_id` and `created_at`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[user_id]=desc`). Valid fields are `user_id` and `created_at`.
        - description: Path to operate on.
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Path to operate on.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ActionEntity"
                type: array
          description: A list of History objects.
          x-ms-summary: A list of History objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List history for specific file.
      tags:
        - history
      x-authentication: []
  "/history/folders/{path}":
    get:
      description: List history for specific folder.
      operationId: HistoryListForFolder
      parameters:
        - description: Leave blank or set to a date/time to filter earlier entries.
          in: query
          name: start_at
          required: false
          schema:
            format: date-time
            type: string
          x-ms-summary: Leave blank or set to a date/time to filter earlier entries.
        - description: Leave blank or set to a date/time to filter later entries.
          in: query
          name: end_at
          required: false
          schema:
            format: date-time
            type: string
          x-ms-summary: Leave blank or set to a date/time to filter later entries.
        - description: Display format. Leave blank or set to `full` or `parent`.
          in: query
          name: display
          required: false
          schema:
            type: string
          x-ms-summary: Display format. Leave blank or set to `full` or `parent`.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[user_id]=desc`). Valid fields are `user_id` and `created_at`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[user_id]=desc`). Valid fields are `user_id` and `created_at`.
        - description: Path to operate on.
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Path to operate on.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ActionEntity"
                type: array
          description: A list of History objects.
          x-ms-summary: A list of History objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List history for specific folder.
      tags:
        - history
      x-authentication: []
  /history/login:
    get:
      description: List site login history.
      operationId: HistoryListLogins
      parameters:
        - description: Leave blank or set to a date/time to filter earlier entries.
          in: query
          name: start_at
          required: false
          schema:
            format: date-time
            type: string
          x-ms-summary: Leave blank or set to a date/time to filter earlier entries.
        - description: Leave blank or set to a date/time to filter later entries.
          in: query
          name: end_at
          required: false
          schema:
            format: date-time
            type: string
          x-ms-summary: Leave blank or set to a date/time to filter later entries.
        - description: Display format. Leave blank or set to `full` or `parent`.
          in: query
          name: display
          required: false
          schema:
            type: string
          x-ms-summary: Display format. Leave blank or set to `full` or `parent`.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[user_id]=desc`). Valid fields are `user_id` and `created_at`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[user_id]=desc`). Valid fields are `user_id` and `created_at`.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ActionEntity"
                type: array
          description: A list of History objects.
          x-ms-summary: A list of History objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List site login history.
      tags:
        - history
      x-authentication:
        - site
  "/history/users/{user_id}":
    get:
      description: List history for specific user.
      operationId: HistoryListForUser
      parameters:
        - description: Leave blank or set to a date/time to filter earlier entries.
          in: query
          name: start_at
          required: false
          schema:
            format: date-time
            type: string
          x-ms-summary: Leave blank or set to a date/time to filter earlier entries.
        - description: Leave blank or set to a date/time to filter later entries.
          in: query
          name: end_at
          required: false
          schema:
            format: date-time
            type: string
          x-ms-summary: Leave blank or set to a date/time to filter later entries.
        - description: Display format. Leave blank or set to `full` or `parent`.
          in: query
          name: display
          required: false
          schema:
            type: string
          x-ms-summary: Display format. Leave blank or set to `full` or `parent`.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[user_id]=desc`). Valid fields are `user_id` and `created_at`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[user_id]=desc`). Valid fields are `user_id` and `created_at`.
        - description: User ID.
          in: path
          name: user_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ActionEntity"
                type: array
          description: A list of History objects.
          x-ms-summary: A list of History objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List history for specific user.
      tags:
        - history
      x-authentication:
        - site
  /history_export_results:
    get:
      description: List History Export Results
      operationId: GetHistoryExportResults
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: ID of the associated history export.
          in: query
          name: history_export_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: ID of the associated history export.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/HistoryExportResultEntity"
                type: array
          description: A list of HistoryExportResults objects.
          x-ms-summary: A list of HistoryExportResults objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List History Export Results
      tags:
        - history_export_results
      x-authentication: []
  /history_exports:
    post:
      description: Create History Export
      operationId: PostHistoryExports
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                end_at:
                  description: End date/time of export range.
                  example: 2000-01-01T01:00:00Z
                  format: date-time
                  type: string
                  x-ms-summary: End date/time of export range.
                query_action:
                  description: "Filter results by this this action type. Valid values: `create`, `read`, `update`, `destroy`, `move`, `login`, `failedlogin`, `copy`, `user_create`, `user_update`, `user_destroy`, `group_create`, `group_update`, `group_destroy`, `permission_create`, `permission_destroy`, `api_key_create`, `api_key_update`, `api_key_destroy`"
                  example: read
                  type: string
                  x-ms-summary: "Filter results by this this action type. Valid values: `create`, `read`, `update`, `destroy`, `move`, `login`, `failedlogin`, `copy`, `user_create`, `user_update`, `user_destroy`, `group_create`, `group_update`, `group_destroy`, `permission_create`, `permission_destroy`, `api_key_create`, `api_key_update`, `api_key_destroy`"
                query_destination:
                  description: Return results that are file moves with this path as destination.
                  example: DestFolder
                  type: string
                  x-ms-summary: Return results that are file moves with this path as destination.
                query_failure_type:
                  description: "If searching for Histories about login failures, this parameter restricts results to failures of this specific type.  Valid values: `expired_trial`, `account_overdue`, `locked_out`, `ip_mismatch`, `password_mismatch`, `site_mismatch`, `username_not_found`, `none`, `no_ftp_permission`, `no_web_permission`, `no_directory`, `errno_enoent`, `no_sftp_permission`, `no_dav_permission`, `no_restapi_permission`, `key_mismatch`, `region_mismatch`, `expired_access`, `desktop_ip_mismatch`, `desktop_api_key_not_used_quickly_enough`, `disabled`, `country_mismatch`"
                  example: bad_password
                  type: string
                  x-ms-summary: "If searching for Histories about login failures, this parameter restricts results to failures of this specific type.  Valid values: `expired_trial`, `account_overdue`, `locked_out`, `ip_mismatch`, `password_mismatch`, `site_mismatch`, `username_not_found`, `none`, `no_ftp_permission`, `no_web_permission`, `no_directory`, `errno_enoent`, `no_sftp_permission`, `no_dav_permission`, `no_restapi_permission`, `key_mismatch`, `region_mismatch`, `expired_access`, `desktop_ip_mismatch`, `desktop_api_key_not_used_quickly_enough`, `disabled`, `country_mismatch`"
                query_file_id:
                  description: Return results that are file actions related to the file indicated by this File ID
                  example: "1"
                  type: string
                  x-ms-summary: Return results that are file actions related to the file indicated by this File ID
                query_folder:
                  description: Return results that are file actions related to files or folders inside this folder path.
                  example: Folder
                  type: string
                  x-ms-summary: Return results that are file actions related to files or folders inside this folder path.
                query_interface:
                  description: "Filter results by this this interface type. Valid values: `web`, `ftp`, `robot`, `jsapi`, `webdesktopapi`, `sftp`, `dav`, `desktop`, `restapi`, `scim`, `office`, `mobile`, `as2`, `inbound_email`, `remote`"
                  example: ftp
                  type: string
                  x-ms-summary: "Filter results by this this interface type. Valid values: `web`, `ftp`, `robot`, `jsapi`, `webdesktopapi`, `sftp`, `dav`, `desktop`, `restapi`, `scim`, `office`, `mobile`, `as2`, `inbound_email`, `remote`"
                query_ip:
                  description: Filter results by this IP address.
                  example: 127.0.0.1
                  type: string
                  x-ms-summary: Filter results by this IP address.
                query_parent_id:
                  description: Return results that are file actions inside the parent folder specified by this folder ID
                  example: "1"
                  type: string
                  x-ms-summary: Return results that are file actions inside the parent folder specified by this folder ID
                query_path:
                  description: Return results that are file actions related to this path.
                  example: MyFile.txt
                  type: string
                  x-ms-summary: Return results that are file actions related to this path.
                query_src:
                  description: Return results that are file moves originating from this path.
                  example: SrcFolder
                  type: string
                  x-ms-summary: Return results that are file moves originating from this path.
                query_target_id:
                  description: If searching for Histories about specific objects (such as Users, or API Keys), this paremeter restricts results to objects that match this ID.
                  example: "1"
                  type: string
                  x-ms-summary: If searching for Histories about specific objects (such as Users, or API Keys), this paremeter restricts results to objects that match this ID.
                query_target_name:
                  description: If searching for Histories about Users, Groups or other objects with names, this parameter restricts results to objects with this name/username.
                  example: full
                  type: string
                  x-ms-summary: If searching for Histories about Users, Groups or other objects with names, this parameter restricts results to objects with this name/username.
                query_target_permission:
                  description: If searching for Histories about Permisisons, this parameter restricts results to permissions of this level.
                  example: full
                  type: string
                  x-ms-summary: If searching for Histories about Permisisons, this parameter restricts results to permissions of this level.
                query_target_permission_set:
                  description: If searching for Histories about API keys, this parameter restricts results to API keys with this permission set.
                  example: desktop_app
                  type: string
                  x-ms-summary: If searching for Histories about API keys, this parameter restricts results to API keys with this permission set.
                query_target_platform:
                  description: If searching for Histories about API keys, this parameter restricts results to API keys associated with this platform.
                  example: windows
                  type: string
                  x-ms-summary: If searching for Histories about API keys, this parameter restricts results to API keys associated with this platform.
                query_target_user_id:
                  description: If searching for Histories about API keys, this parameter restricts results to API keys created by/for this user ID.
                  example: "1"
                  type: string
                  x-ms-summary: If searching for Histories about API keys, this parameter restricts results to API keys created by/for this user ID.
                query_target_username:
                  description: If searching for Histories about API keys, this parameter restricts results to API keys created by/for this username.
                  example: jerry
                  type: string
                  x-ms-summary: If searching for Histories about API keys, this parameter restricts results to API keys created by/for this username.
                query_user_id:
                  description: Return results that are actions performed by the user indiciated by this User ID
                  example: "1"
                  type: string
                  x-ms-summary: Return results that are actions performed by the user indiciated by this User ID
                query_username:
                  description: Filter results by this username.
                  example: jerry
                  type: string
                  x-ms-summary: Filter results by this username.
                start_at:
                  description: Start date/time of export range.
                  example: 2000-01-01T01:00:00Z
                  format: date-time
                  type: string
                  x-ms-summary: Start date/time of export range.
                user_id:
                  description: User ID.  Provide a value of `0` to operate the current session's user.
                  format: int32
                  type: integer
                  x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HistoryExportEntity"
          description: The HistoryExports object.
          x-ms-summary: The HistoryExports object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create History Export
      tags:
        - history_exports
      x-authentication:
        - readonly_ok
  "/history_exports/{id}":
    get:
      description: Show History Export
      operationId: GetHistoryExportsId
      parameters:
        - description: History Export ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: History Export ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HistoryExportEntity"
          description: The HistoryExports object.
          x-ms-summary: The HistoryExports object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show History Export
      tags:
        - history_exports
      x-authentication:
        - readonly_ok
  /inbox_recipients:
    get:
      description: List Inbox Recipients
      operationId: GetInboxRecipients
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[has_registrations]=desc`). Valid fields are `has_registrations`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[has_registrations]=desc`). Valid fields are `has_registrations`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `has_registrations`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `has_registrations`.
        - description: List recipients for the inbox with this ID.
          in: query
          name: inbox_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: List recipients for the inbox with this ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/InboxRecipientEntity"
                type: array
          description: A list of InboxRecipients objects.
          x-ms-summary: A list of InboxRecipients objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Inbox Recipients
      tags:
        - inbox_recipients
      x-authentication: []
    post:
      description: Create Inbox Recipient
      operationId: PostInboxRecipients
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                company:
                  description: Company of recipient.
                  example: Acme Ltd
                  type: string
                  x-ms-summary: Company of recipient.
                inbox_id:
                  description: Inbox to share.
                  format: int32
                  type: integer
                  x-ms-summary: Inbox to share.
                name:
                  description: Name of recipient.
                  example: John Smith
                  type: string
                  x-ms-summary: Name of recipient.
                note:
                  description: Note to include in email.
                  example: Just a note.
                  type: string
                  x-ms-summary: Note to include in email.
                recipient:
                  description: Email address to share this inbox with.
                  example: johndoe@gmail.com
                  type: string
                  x-ms-summary: Email address to share this inbox with.
                share_after_create:
                  description: Set to true to share the link with the recipient upon creation.
                  type: boolean
                  x-ms-summary: Set to true to share the link with the recipient upon creation.
              required:
                - inbox_id
                - recipient
              type: object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InboxRecipientEntity"
          description: The InboxRecipients object.
          x-ms-summary: The InboxRecipients object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Inbox Recipient
      tags:
        - inbox_recipients
      x-authentication: []
  /inbox_registrations:
    get:
      description: List Inbox Registrations
      operationId: GetInboxRegistrations
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: ID of the associated Inbox.
          in: query
          name: folder_behavior_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: ID of the associated Inbox.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/InboxRegistrationEntity"
                type: array
          description: A list of InboxRegistrations objects.
          x-ms-summary: A list of InboxRegistrations objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Inbox Registrations
      tags:
        - inbox_registrations
      x-authentication:
        - folder_admin
  /inbox_uploads:
    get:
      description: List Inbox Uploads
      operationId: GetInboxUploads
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[created_at]=desc`). Valid fields are `created_at`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[created_at]=desc`). Valid fields are `created_at`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `created_at`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is greater than the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_gt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_gteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is less than the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_lt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than the supplied value. Valid fields are `created_at`.
        - description: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `created_at`.
          in: query
          name: filter_lteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `created_at`.
        - description: InboxRegistration ID
          in: query
          name: inbox_registration_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: InboxRegistration ID
        - description: Inbox ID
          in: query
          name: inbox_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: Inbox ID
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/InboxUploadEntity"
                type: array
          description: A list of InboxUploads objects.
          x-ms-summary: A list of InboxUploads objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Inbox Uploads
      tags:
        - inbox_uploads
      x-authentication:
        - folder_admin
  /invoices:
    get:
      description: List Invoices
      operationId: GetInvoices
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/AccountLineItemEntity"
                type: array
          description: A list of Invoices objects.
          x-ms-summary: A list of Invoices objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Invoices
      tags:
        - invoices
      x-authentication:
        - overdue_ok
        - billing
  "/invoices/{id}":
    get:
      description: Show Invoice
      operationId: GetInvoicesId
      parameters:
        - description: Invoice ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Invoice ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccountLineItemEntity"
          description: The Invoices object.
          x-ms-summary: The Invoices object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Invoice
      tags:
        - invoices
      x-authentication:
        - overdue_ok
        - billing
  /ip_addresses:
    get:
      description: List IP Addresses associated with the current site
      operationId: GetIpAddresses
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/IpAddressEntity"
                type: array
          description: A list of IpAddresses objects.
          x-ms-summary: A list of IpAddresses objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List IP Addresses associated with the current site
      tags:
        - ip_addresses
      x-authentication:
        - site
        - overdue_ok
      x-path_aliases:
        - site/ip_addresses
  /ip_addresses/exavault-reserved:
    get:
      description: List all possible public ExaVault IP addresses
      operationId: GetIpAddressesExavaultReserved
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/PublicIpAddressEntity"
                type: array
          description: A list of IpAddresses objects.
          x-ms-summary: A list of IpAddresses objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List all possible public ExaVault IP addresses
      tags:
        - ip_addresses
      x-authentication:
        - none
  /ip_addresses/reserved:
    get:
      description: List all possible public IP addresses
      operationId: GetIpAddressesReserved
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/PublicIpAddressEntity"
                type: array
          description: A list of IpAddresses objects.
          x-ms-summary: A list of IpAddresses objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List all possible public IP addresses
      tags:
        - ip_addresses
      x-authentication:
        - none
  "/locks/{path}":
    delete:
      description: Delete Lock
      operationId: DeleteLocksPath
      parameters:
        - description: Path
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Path
        - description: Lock token
          in: query
          name: token
          required: true
          schema:
            type: string
          x-ms-summary: Lock token
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Lock
      tags:
        - locks
      x-authentication:
        - native_app
        - office_integration
    get:
      description: List Locks by path
      operationId: LockListForPath
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: Path to operate on.
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Path to operate on.
        - description: Include locks from children objects?
          in: query
          name: include_children
          required: false
          schema:
            type: boolean
          x-ms-summary: Include locks from children objects?
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/LockEntity"
                type: array
          description: A list of Locks objects.
          x-ms-summary: A list of Locks objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Locks by path
      tags:
        - locks
      x-authentication:
        - native_app
        - office_integration
    post:
      description: Create Lock
      operationId: PostLocksPath
      parameters:
        - description: Path
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Path
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                allow_access_by_any_user:
                  description: Allow lock to be updated by any user?
                  type: boolean
                  x-ms-summary: Allow lock to be updated by any user?
                exclusive:
                  description: Is lock exclusive?
                  type: boolean
                  x-ms-summary: Is lock exclusive?
                recursive:
                  description: Does lock apply to subfolders?
                  type: string
                  x-ms-summary: Does lock apply to subfolders?
                timeout:
                  description: Lock timeout length
                  format: int32
                  type: integer
                  x-ms-summary: Lock timeout length
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LockEntity"
          description: The Locks object.
          x-ms-summary: The Locks object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Lock
      tags:
        - locks
      x-authentication:
        - native_app
        - office_integration
  /message_comment_reactions:
    get:
      description: List Message Comment Reactions
      operationId: GetMessageCommentReactions
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: Message comment to return reactions for.
          in: query
          name: message_comment_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Message comment to return reactions for.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/MessageCommentReactionEntity"
                type: array
          description: A list of MessageCommentReactions objects.
          x-ms-summary: A list of MessageCommentReactions objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Message Comment Reactions
      tags:
        - message_comment_reactions
      x-authentication: []
    post:
      description: Create Message Comment Reaction
      operationId: PostMessageCommentReactions
      requestBody:
        $ref: "#/components/requestBodies/PostMessageCommentReactions"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MessageCommentReactionEntity"
          description: The MessageCommentReactions object.
          x-ms-summary: The MessageCommentReactions object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Message Comment Reaction
      tags:
        - message_comment_reactions
      x-authentication: []
  "/message_comment_reactions/{id}":
    delete:
      description: Delete Message Comment Reaction
      operationId: DeleteMessageCommentReactionsId
      parameters:
        - description: Message Comment Reaction ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Message Comment Reaction ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Message Comment Reaction
      tags:
        - message_comment_reactions
      x-authentication: []
    get:
      description: Show Message Comment Reaction
      operationId: GetMessageCommentReactionsId
      parameters:
        - description: Message Comment Reaction ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Message Comment Reaction ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MessageCommentReactionEntity"
          description: The MessageCommentReactions object.
          x-ms-summary: The MessageCommentReactions object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Message Comment Reaction
      tags:
        - message_comment_reactions
      x-authentication: []
  /message_comments:
    get:
      description: List Message Comments
      operationId: GetMessageComments
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: Message comment to return comments for.
          in: query
          name: message_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Message comment to return comments for.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/MessageCommentEntity"
                type: array
          description: A list of MessageComments objects.
          x-ms-summary: A list of MessageComments objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Message Comments
      tags:
        - message_comments
      x-authentication: []
    post:
      description: Create Message Comment
      operationId: PostMessageComments
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                body:
                  description: Comment body.
                  type: string
                  x-ms-summary: Comment body.
                user_id:
                  description: User ID.  Provide a value of `0` to operate the current session's user.
                  format: int32
                  type: integer
                  x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
              required:
                - body
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MessageCommentEntity"
          description: The MessageComments object.
          x-ms-summary: The MessageComments object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Message Comment
      tags:
        - message_comments
      x-authentication: []
  "/message_comments/{id}":
    delete:
      description: Delete Message Comment
      operationId: DeleteMessageCommentsId
      parameters:
        - description: Message Comment ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Message Comment ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Message Comment
      tags:
        - message_comments
      x-authentication: []
    get:
      description: Show Message Comment
      operationId: GetMessageCommentsId
      parameters:
        - description: Message Comment ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Message Comment ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MessageCommentEntity"
          description: The MessageComments object.
          x-ms-summary: The MessageComments object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Message Comment
      tags:
        - message_comments
      x-authentication: []
    patch:
      description: Update Message Comment
      operationId: PatchMessageCommentsId
      parameters:
        - description: Message Comment ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Message Comment ID.
      requestBody:
        $ref: "#/components/requestBodies/PatchFileCommentsId"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MessageCommentEntity"
          description: The MessageComments object.
          x-ms-summary: The MessageComments object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update Message Comment
      tags:
        - message_comments
      x-authentication: []
  /message_reactions:
    get:
      description: List Message Reactions
      operationId: GetMessageReactions
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: Message to return reactions for.
          in: query
          name: message_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Message to return reactions for.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/MessageReactionEntity"
                type: array
          description: A list of MessageReactions objects.
          x-ms-summary: A list of MessageReactions objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Message Reactions
      tags:
        - message_reactions
      x-authentication: []
    post:
      description: Create Message Reaction
      operationId: PostMessageReactions
      requestBody:
        $ref: "#/components/requestBodies/PostMessageCommentReactions"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MessageReactionEntity"
          description: The MessageReactions object.
          x-ms-summary: The MessageReactions object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Message Reaction
      tags:
        - message_reactions
      x-authentication: []
  "/message_reactions/{id}":
    delete:
      description: Delete Message Reaction
      operationId: DeleteMessageReactionsId
      parameters:
        - description: Message Reaction ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Message Reaction ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Message Reaction
      tags:
        - message_reactions
      x-authentication: []
    get:
      description: Show Message Reaction
      operationId: GetMessageReactionsId
      parameters:
        - description: Message Reaction ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Message Reaction ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MessageReactionEntity"
          description: The MessageReactions object.
          x-ms-summary: The MessageReactions object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Message Reaction
      tags:
        - message_reactions
      x-authentication: []
  /messages:
    get:
      description: List Messages
      operationId: GetMessages
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: Project for which to return messages.
          in: query
          name: project_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Project for which to return messages.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/MessageEntity"
                type: array
          description: A list of Messages objects.
          x-ms-summary: A list of Messages objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Messages
      tags:
        - messages
      x-authentication: []
    post:
      description: Create Message
      operationId: PostMessages
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                body:
                  description: Message body.
                  example: We should upgrade our Files.com account!
                  type: string
                  x-ms-summary: Message body.
                project_id:
                  description: Project to which the message should be attached.
                  format: int32
                  type: integer
                  x-ms-summary: Project to which the message should be attached.
                subject:
                  description: Message subject.
                  example: Files.com Account Upgrade
                  type: string
                  x-ms-summary: Message subject.
                user_id:
                  description: User ID.  Provide a value of `0` to operate the current session's user.
                  format: int32
                  type: integer
                  x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
              required:
                - project_id
                - subject
                - body
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MessageEntity"
          description: The Messages object.
          x-ms-summary: The Messages object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Message
      tags:
        - messages
      x-authentication: []
  "/messages/{id}":
    delete:
      description: Delete Message
      operationId: DeleteMessagesId
      parameters:
        - description: Message ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Message ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Message
      tags:
        - messages
      x-authentication: []
    get:
      description: Show Message
      operationId: GetMessagesId
      parameters:
        - description: Message ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Message ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MessageEntity"
          description: The Messages object.
          x-ms-summary: The Messages object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Message
      tags:
        - messages
      x-authentication: []
    patch:
      description: Update Message
      operationId: PatchMessagesId
      parameters:
        - description: Message ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Message ID.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                body:
                  description: Message body.
                  example: We should upgrade our Files.com account!
                  type: string
                  x-ms-summary: Message body.
                project_id:
                  description: Project to which the message should be attached.
                  format: int32
                  type: integer
                  x-ms-summary: Project to which the message should be attached.
                subject:
                  description: Message subject.
                  example: Files.com Account Upgrade
                  type: string
                  x-ms-summary: Message subject.
              required:
                - project_id
                - subject
                - body
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MessageEntity"
          description: The Messages object.
          x-ms-summary: The Messages object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update Message
      tags:
        - messages
      x-authentication: []
  /notifications:
    get:
      description: List Notifications
      operationId: GetNotifications
      parameters:
        - description: "DEPRECATED: Show notifications for this User ID. Use `filter[user_id]` instead."
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "DEPRECATED: Show notifications for this User ID. Use `filter[user_id]` instead."
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[path]=desc`). Valid fields are `path`, `user_id` or `group_id`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[path]=desc`). Valid fields are `path`, `user_id` or `group_id`.
        - description: If set, return records where the specified field is equal to the supplied value.
          in: query
          name: group_id
          required: false
          schema:
            type: string
          x-ms-summary: If set, return records where the specified field is equal to the supplied value.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `path`, `user_id` or `group_id`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `path`, `user_id` or `group_id`.
        - description: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `path`.
          in: query
          name: filter_prefix
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `path`.
        - description: Show notifications for this Path.
          in: query
          name: path
          required: false
          schema:
            type: string
          x-ms-summary: Show notifications for this Path.
        - description: If `include_ancestors` is `true` and `path` is specified, include notifications for any parent paths. Ignored if `path` is not specified.
          in: query
          name: include_ancestors
          required: false
          schema:
            type: boolean
          x-ms-summary: If `include_ancestors` is `true` and `path` is specified, include notifications for any parent paths. Ignored if `path` is not specified.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/NotificationEntity"
                type: array
          description: A list of Notifications objects.
          x-ms-summary: A list of Notifications objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Notifications
      tags:
        - notifications
      x-authentication: []
    post:
      description: Create Notification
      operationId: PostNotifications
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                group_id:
                  description: The ID of the group to notify.  Provide `user_id`, `username` or `group_id`.
                  format: int32
                  type: integer
                  x-ms-summary: The ID of the group to notify.  Provide `user_id`, `username` or `group_id`.
                message:
                  description: Custom message to include in notification emails.
                  example: custom notification email message
                  type: string
                  x-ms-summary: Custom message to include in notification emails.
                notify_on_copy:
                  description: If `true`, copying or moving resources into this path will trigger a notification, in addition to just uploads.
                  type: boolean
                  x-ms-summary: If `true`, copying or moving resources into this path will trigger a notification, in addition to just uploads.
                notify_on_delete:
                  description: Triggers notification when deleting files from this path
                  example: true
                  type: boolean
                  x-ms-summary: Triggers notification when deleting files from this path
                notify_on_download:
                  description: Triggers notification when downloading files from this path
                  example: true
                  type: boolean
                  x-ms-summary: Triggers notification when downloading files from this path
                notify_on_move:
                  description: Triggers notification when moving files to this path
                  example: true
                  type: boolean
                  x-ms-summary: Triggers notification when moving files to this path
                notify_on_upload:
                  description: Triggers notification when uploading new files to this path
                  example: true
                  type: boolean
                  x-ms-summary: Triggers notification when uploading new files to this path
                notify_user_actions:
                  description: If `true` actions initiated by the user will still result in a notification
                  type: boolean
                  x-ms-summary: If `true` actions initiated by the user will still result in a notification
                path:
                  description: Path
                  type: string
                  x-ms-summary: Path
                recursive:
                  description: If `true`, enable notifications for each subfolder in this path
                  type: boolean
                  x-ms-summary: If `true`, enable notifications for each subfolder in this path
                send_interval:
                  description: The time interval that notifications are aggregated by.  Can be `five_minutes`, `fifteen_minutes`, `hourly`, or `daily`.
                  example: daily
                  type: string
                  x-ms-summary: The time interval that notifications are aggregated by.  Can be `five_minutes`, `fifteen_minutes`, `hourly`, or `daily`.
                trigger_by_share_recipients:
                  description: Notify when actions are performed by a share recipient?
                  example: true
                  type: boolean
                  x-ms-summary: Notify when actions are performed by a share recipient?
                triggering_filenames:
                  description: Array of filenames (possibly with wildcards) to match for action path
                  example:
                    - "*.jpg"
                    - notify_file.txt
                  items:
                    type: string
                  type: array
                  x-ms-summary: Array of filenames (possibly with wildcards) to match for action path
                triggering_group_ids:
                  description: Only notify on actions made by a member of one of the specified groups
                  example:
                    - 1
                  items:
                    format: int32
                    type: integer
                  type: array
                  x-ms-summary: Only notify on actions made by a member of one of the specified groups
                triggering_user_ids:
                  description: Only notify on actions made one of the specified users
                  example:
                    - 1
                  items:
                    format: int32
                    type: integer
                  type: array
                  x-ms-summary: Only notify on actions made one of the specified users
                user_id:
                  description: The id of the user to notify. Provide `user_id`, `username` or `group_id`.
                  format: int32
                  type: integer
                  x-ms-summary: The id of the user to notify. Provide `user_id`, `username` or `group_id`.
                username:
                  description: The username of the user to notify.  Provide `user_id`, `username` or `group_id`.
                  type: string
                  x-ms-summary: The username of the user to notify.  Provide `user_id`, `username` or `group_id`.
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NotificationEntity"
          description: The Notifications object.
          x-ms-summary: The Notifications object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Notification
      tags:
        - notifications
      x-authentication: []
  "/notifications/{id}":
    delete:
      description: Delete Notification
      operationId: DeleteNotificationsId
      parameters:
        - description: Notification ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Notification ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Notification
      tags:
        - notifications
      x-authentication: []
    get:
      description: Show Notification
      operationId: GetNotificationsId
      parameters:
        - description: Notification ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Notification ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NotificationEntity"
          description: The Notifications object.
          x-ms-summary: The Notifications object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Notification
      tags:
        - notifications
      x-authentication: []
    patch:
      description: Update Notification
      operationId: PatchNotificationsId
      parameters:
        - description: Notification ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Notification ID.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                message:
                  description: Custom message to include in notification emails.
                  example: custom notification email message
                  type: string
                  x-ms-summary: Custom message to include in notification emails.
                notify_on_copy:
                  description: If `true`, copying or moving resources into this path will trigger a notification, in addition to just uploads.
                  type: boolean
                  x-ms-summary: If `true`, copying or moving resources into this path will trigger a notification, in addition to just uploads.
                notify_on_delete:
                  description: Triggers notification when deleting files from this path
                  example: true
                  type: boolean
                  x-ms-summary: Triggers notification when deleting files from this path
                notify_on_download:
                  description: Triggers notification when downloading files from this path
                  example: true
                  type: boolean
                  x-ms-summary: Triggers notification when downloading files from this path
                notify_on_move:
                  description: Triggers notification when moving files to this path
                  example: true
                  type: boolean
                  x-ms-summary: Triggers notification when moving files to this path
                notify_on_upload:
                  description: Triggers notification when uploading new files to this path
                  example: true
                  type: boolean
                  x-ms-summary: Triggers notification when uploading new files to this path
                notify_user_actions:
                  description: If `true` actions initiated by the user will still result in a notification
                  type: boolean
                  x-ms-summary: If `true` actions initiated by the user will still result in a notification
                recursive:
                  description: If `true`, enable notifications for each subfolder in this path
                  type: boolean
                  x-ms-summary: If `true`, enable notifications for each subfolder in this path
                send_interval:
                  description: The time interval that notifications are aggregated by.  Can be `five_minutes`, `fifteen_minutes`, `hourly`, or `daily`.
                  example: daily
                  type: string
                  x-ms-summary: The time interval that notifications are aggregated by.  Can be `five_minutes`, `fifteen_minutes`, `hourly`, or `daily`.
                trigger_by_share_recipients:
                  description: Notify when actions are performed by a share recipient?
                  example: true
                  type: boolean
                  x-ms-summary: Notify when actions are performed by a share recipient?
                triggering_filenames:
                  description: Array of filenames (possibly with wildcards) to match for action path
                  example:
                    - "*.jpg"
                    - notify_file.txt
                  items:
                    type: string
                  type: array
                  x-ms-summary: Array of filenames (possibly with wildcards) to match for action path
                triggering_group_ids:
                  description: Only notify on actions made by a member of one of the specified groups
                  example:
                    - 1
                  items:
                    format: int32
                    type: integer
                  type: array
                  x-ms-summary: Only notify on actions made by a member of one of the specified groups
                triggering_user_ids:
                  description: Only notify on actions made one of the specified users
                  example:
                    - 1
                  items:
                    format: int32
                    type: integer
                  type: array
                  x-ms-summary: Only notify on actions made one of the specified users
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NotificationEntity"
          description: The Notifications object.
          x-ms-summary: The Notifications object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update Notification
      tags:
        - notifications
      x-authentication: []
  /payments:
    get:
      description: List Payments
      operationId: GetPayments
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/AccountLineItemEntity"
                type: array
          description: A list of Payments objects.
          x-ms-summary: A list of Payments objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Payments
      tags:
        - payments
      x-authentication:
        - overdue_ok
        - billing
  "/payments/{id}":
    get:
      description: Show Payment
      operationId: GetPaymentsId
      parameters:
        - description: Payment ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Payment ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccountLineItemEntity"
          description: The Payments object.
          x-ms-summary: The Payments object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Payment
      tags:
        - payments
      x-authentication:
        - overdue_ok
        - billing
  /permissions:
    get:
      description: List Permissions
      operationId: GetPermissions
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[group_id]=desc`). Valid fields are `group_id`, `path`, `user_id` or `permission`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[group_id]=desc`). Valid fields are `group_id`, `path`, `user_id` or `permission`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `group_id`, `user_id` or `path`. Valid field combinations are `[ group_id, path ]` and `[ user_id, path ]`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `group_id`, `user_id` or `path`. Valid field combinations are `[ group_id, path ]` and `[ user_id, path ]`.
        - description: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `path`.
          in: query
          name: filter_prefix
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `path`.
        - description: "DEPRECATED: Permission path.  If provided, will scope permissions to this path. Use `filter[path]` instead."
          in: query
          name: path
          required: false
          schema:
            type: string
          x-ms-summary: "DEPRECATED: Permission path.  If provided, will scope permissions to this path. Use `filter[path]` instead."
        - description: "DEPRECATED: Group ID.  If provided, will scope permissions to this group. Use `filter[group_id]` instead.`"
          in: query
          name: group_id
          required: false
          schema:
            type: string
          x-ms-summary: "DEPRECATED: Group ID.  If provided, will scope permissions to this group. Use `filter[group_id]` instead.`"
        - description: "DEPRECATED: User ID.  If provided, will scope permissions to this user. Use `filter[user_id]` instead.`"
          in: query
          name: user_id
          required: false
          schema:
            type: string
          x-ms-summary: "DEPRECATED: User ID.  If provided, will scope permissions to this user. Use `filter[user_id]` instead.`"
        - description: If searching by user or group, also include user's permissions that are inherited from its groups?
          in: query
          name: include_groups
          required: false
          schema:
            type: boolean
          x-ms-summary: If searching by user or group, also include user's permissions that are inherited from its groups?
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/PermissionEntity"
                type: array
          description: A list of Permissions objects.
          x-ms-summary: A list of Permissions objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Permissions
      tags:
        - permissions
      x-authentication: []
      x-path_aliases:
        - groups/:group_id/permissions
        - users/:user_id/permissions
    post:
      description: Create Permission
      operationId: PostPermissions
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                group_id:
                  description: Group ID
                  format: int32
                  type: integer
                  x-ms-summary: Group ID
                path:
                  description: Folder path
                  type: string
                  x-ms-summary: Folder path
                permission:
                  description: " Permission type.  Can be `admin`, `full`, `readonly`, `writeonly`, `list`, or `history`"
                  type: string
                  x-ms-summary: " Permission type.  Can be `admin`, `full`, `readonly`, `writeonly`, `list`, or `history`"
                recursive:
                  description: Apply to subfolders recursively?
                  type: boolean
                  x-ms-summary: Apply to subfolders recursively?
                user_id:
                  description: User ID.  Provide `username` or `user_id`
                  format: int32
                  type: integer
                  x-ms-summary: User ID.  Provide `username` or `user_id`
                username:
                  description: User username.  Provide `username` or `user_id`
                  type: string
                  x-ms-summary: User username.  Provide `username` or `user_id`
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PermissionEntity"
          description: The Permissions object.
          x-ms-summary: The Permissions object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Permission
      tags:
        - permissions
      x-authentication: []
  "/permissions/{id}":
    delete:
      description: Delete Permission
      operationId: DeletePermissionsId
      parameters:
        - description: Permission ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Permission ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Permission
      tags:
        - permissions
      x-authentication: []
  /priorities:
    get:
      description: List Priorities
      operationId: GetPriorities
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: The path to query for priorities
          in: query
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: The path to query for priorities
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/PriorityEntity"
                type: array
          description: A list of Priorities objects.
          x-ms-summary: A list of Priorities objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Priorities
      tags:
        - priorities
      x-authentication: []
  /projects:
    get:
      description: List Projects
      operationId: GetProjects
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ProjectEntity"
                type: array
          description: A list of Projects objects.
          x-ms-summary: A list of Projects objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Projects
      tags:
        - projects
      x-authentication:
        - site
    post:
      description: Create Project
      operationId: PostProjects
      requestBody:
        $ref: "#/components/requestBodies/PatchProjectsId"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectEntity"
          description: The Projects object.
          x-ms-summary: The Projects object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Project
      tags:
        - projects
      x-authentication:
        - site
  "/projects/{id}":
    delete:
      description: Delete Project
      operationId: DeleteProjectsId
      parameters:
        - description: Project ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Project ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Project
      tags:
        - projects
      x-authentication:
        - site
    get:
      description: Show Project
      operationId: GetProjectsId
      parameters:
        - description: Project ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Project ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectEntity"
          description: The Projects object.
          x-ms-summary: The Projects object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Project
      tags:
        - projects
      x-authentication:
        - site
    patch:
      description: Update Project
      operationId: PatchProjectsId
      parameters:
        - description: Project ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Project ID.
      requestBody:
        $ref: "#/components/requestBodies/PatchProjectsId"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectEntity"
          description: The Projects object.
          x-ms-summary: The Projects object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update Project
      tags:
        - projects
      x-authentication:
        - site
  /public_keys:
    get:
      description: List Public Keys
      operationId: GetPublicKeys
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/PublicKeyEntity"
                type: array
          description: A list of PublicKeys objects.
          x-ms-summary: A list of PublicKeys objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Public Keys
      tags:
        - public_keys
      x-authentication:
        - self_managed
      x-path_aliases:
        - user/public_keys
        - users/:user_id/public_keys
    post:
      description: Create Public Key
      operationId: PostPublicKeys
      requestBody:
        $ref: "#/components/requestBodies/PostUserPublicKeys"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublicKeyEntity"
          description: The PublicKeys object.
          x-ms-summary: The PublicKeys object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Public Key
      tags:
        - public_keys
      x-authentication:
        - self_managed
      x-path_aliases:
        - user/public_keys
        - users/:user_id/public_keys
  "/public_keys/{id}":
    delete:
      description: Delete Public Key
      operationId: DeletePublicKeysId
      parameters:
        - description: Public Key ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Public Key ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Public Key
      tags:
        - public_keys
      x-authentication:
        - self_managed
    get:
      description: Show Public Key
      operationId: GetPublicKeysId
      parameters:
        - description: Public Key ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Public Key ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublicKeyEntity"
          description: The PublicKeys object.
          x-ms-summary: The PublicKeys object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Public Key
      tags:
        - public_keys
      x-authentication:
        - self_managed
    patch:
      description: Update Public Key
      operationId: PatchPublicKeysId
      parameters:
        - description: Public Key ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Public Key ID.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                title:
                  description: Internal reference for key.
                  example: My Main Key
                  type: string
                  x-ms-summary: Internal reference for key.
              required:
                - title
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublicKeyEntity"
          description: The PublicKeys object.
          x-ms-summary: The PublicKeys object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update Public Key
      tags:
        - public_keys
      x-authentication:
        - self_managed
  /remote_bandwidth_snapshots:
    get:
      description: List Remote Bandwidth Snapshots
      operationId: GetRemoteBandwidthSnapshots
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[logged_at]=desc`). Valid fields are `logged_at`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[logged_at]=desc`). Valid fields are `logged_at`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `logged_at`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `logged_at`.
        - description: If set, return records where the specified field is greater than the supplied value. Valid fields are `logged_at`.
          in: query
          name: filter_gt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than the supplied value. Valid fields are `logged_at`.
        - description: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `logged_at`.
          in: query
          name: filter_gteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `logged_at`.
        - description: If set, return records where the specified field is less than the supplied value. Valid fields are `logged_at`.
          in: query
          name: filter_lt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than the supplied value. Valid fields are `logged_at`.
        - description: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `logged_at`.
          in: query
          name: filter_lteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `logged_at`.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/RemoteBandwidthSnapshotEntity"
                type: array
          description: A list of RemoteBandwidthSnapshots objects.
          x-ms-summary: A list of RemoteBandwidthSnapshots objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Remote Bandwidth Snapshots
      tags:
        - remote_bandwidth_snapshots
      x-authentication:
        - site
  /remote_servers:
    get:
      description: List Remote Servers
      operationId: GetRemoteServers
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/RemoteServerEntity"
                type: array
          description: A list of RemoteServers objects.
          x-ms-summary: A list of RemoteServers objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Remote Servers
      tags:
        - remote_servers
      x-authentication:
        - site
    post:
      description: Create Remote Server
      operationId: PostRemoteServers
      requestBody:
        $ref: "#/components/requestBodies/PostRemoteServers"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RemoteServerEntity"
          description: The RemoteServers object.
          x-ms-summary: The RemoteServers object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Remote Server
      tags:
        - remote_servers
      x-authentication:
        - site
  "/remote_servers/{id}":
    delete:
      description: Delete Remote Server
      operationId: DeleteRemoteServersId
      parameters:
        - description: Remote Server ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Remote Server ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Remote Server
      tags:
        - remote_servers
      x-authentication:
        - site
    get:
      description: Show Remote Server
      operationId: GetRemoteServersId
      parameters:
        - description: Remote Server ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Remote Server ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RemoteServerEntity"
          description: The RemoteServers object.
          x-ms-summary: The RemoteServers object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Remote Server
      tags:
        - remote_servers
      x-authentication:
        - site
    patch:
      description: Update Remote Server
      operationId: PatchRemoteServersId
      parameters:
        - description: Remote Server ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Remote Server ID.
      requestBody:
        $ref: "#/components/requestBodies/PostRemoteServers"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RemoteServerEntity"
          description: The RemoteServers object.
          x-ms-summary: The RemoteServers object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update Remote Server
      tags:
        - remote_servers
      x-authentication:
        - site
  "/remote_servers/{id}/configuration_file":
    get:
      description: Download configuration file (required for some Remote Server integrations, such as the Files.com Agent)
      operationId: GetRemoteServersIdConfigurationFile
      parameters:
        - description: Remote Server ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Remote Server ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RemoteServerConfigurationFileEntity"
          description: The RemoteServers object.
          x-ms-summary: The RemoteServers object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Download configuration file (required for some Remote Server integrations, such as the Files.com Agent)
      tags:
        - remote_servers
      x-authentication:
        - site
    post:
      description: Post local changes, check in, and download configuration file (used by some Remote Server integrations, such as the Files.com Agent)
      operationId: PostRemoteServersIdConfigurationFile
      parameters:
        - description: Remote Server ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Remote Server ID.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                api_token:
                  description: Files Agent API Token
                  example: example
                  type: string
                  x-ms-summary: Files Agent API Token
                config_version:
                  description: agent config version
                  example: example
                  type: string
                  x-ms-summary: agent config version
                hostname:
                  example: example
                  type: string
                  x-ms-summary: null
                permission_set:
                  example: full
                  type: string
                  x-ms-summary: ""
                port:
                  description: Incoming port for files agent connections
                  example: 1
                  format: int32
                  type: integer
                  x-ms-summary: Incoming port for files agent connections
                private_key:
                  description: private key
                  example: example
                  type: string
                  x-ms-summary: private key
                public_key:
                  description: public key
                  example: example
                  type: string
                  x-ms-summary: public key
                root:
                  description: Agent local root path
                  example: example
                  type: string
                  x-ms-summary: Agent local root path
                server_host_key:
                  example: example
                  type: string
                  x-ms-summary: null
                status:
                  description: either running or shutdown
                  example: example
                  type: string
                  x-ms-summary: either running or shutdown
                subdomain:
                  example: example
                  type: string
                  x-ms-summary: null
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RemoteServerConfigurationFileEntity"
          description: The RemoteServers object.
          x-ms-summary: The RemoteServers object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Post local changes, check in, and download configuration file (used by some Remote Server integrations, such as the Files.com Agent)
      tags:
        - remote_servers
      x-authentication:
        - none
  /requests:
    get:
      description: List Requests
      operationId: GetRequests
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[destination]=desc`). Valid fields are `destination`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[destination]=desc`). Valid fields are `destination`.
        - description: Only show requests of the current user?  (Defaults to true if current user is not a site admin.)
          in: query
          name: mine
          required: false
          schema:
            type: boolean
          x-ms-summary: Only show requests of the current user?  (Defaults to true if current user is not a site admin.)
        - description: Path to show requests for.  If omitted, shows all paths. Send `/` to represent the root directory.
          in: query
          name: path
          required: false
          schema:
            type: string
          x-ms-summary: Path to show requests for.  If omitted, shows all paths. Send `/` to represent the root directory.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/RequestEntity"
                type: array
          description: A list of Requests objects.
          x-ms-summary: A list of Requests objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Requests
      tags:
        - requests
      x-authentication: []
      x-path_aliases:
        - requests/folders/*path
    post:
      description: Create Request
      operationId: PostRequests
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                destination:
                  description: Destination filename (without extension) to request.
                  type: string
                  x-ms-summary: Destination filename (without extension) to request.
                group_ids:
                  description: A list of group IDs to request the file from. If sent as a string, it should be comma-delimited.
                  type: string
                  x-ms-summary: A list of group IDs to request the file from. If sent as a string, it should be comma-delimited.
                path:
                  description: Folder path on which to request the file.
                  type: string
                  x-ms-summary: Folder path on which to request the file.
                user_ids:
                  description: A list of user IDs to request the file from. If sent as a string, it should be comma-delimited.
                  type: string
                  x-ms-summary: A list of user IDs to request the file from. If sent as a string, it should be comma-delimited.
              required:
                - path
                - destination
              type: object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RequestEntity"
          description: The Requests object.
          x-ms-summary: The Requests object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Request
      tags:
        - requests
      x-authentication: []
  "/requests/folders/{path}":
    get:
      description: List Requests
      operationId: GetRequestsFoldersPath
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[destination]=desc`). Valid fields are `destination`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[destination]=desc`). Valid fields are `destination`.
        - description: Only show requests of the current user?  (Defaults to true if current user is not a site admin.)
          in: query
          name: mine
          required: false
          schema:
            type: boolean
          x-ms-summary: Only show requests of the current user?  (Defaults to true if current user is not a site admin.)
        - description: Path to show requests for.  If omitted, shows all paths. Send `/` to represent the root directory.
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Path to show requests for.  If omitted, shows all paths. Send `/` to represent the root directory.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/RequestEntity"
                type: array
          description: A list of Requests objects.
          x-ms-summary: A list of Requests objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Requests
      tags:
        - requests
      x-authentication: []
      x-path_aliases:
        - requests/folders/*path
  "/requests/{id}":
    delete:
      description: Delete Request
      operationId: DeleteRequestsId
      parameters:
        - description: Request ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Request ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Request
      tags:
        - requests
      x-authentication: []
  /sessions:
    delete:
      description: Delete user session (log out)
      operationId: DeleteSessions
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete user session (log out)
      tags:
        - sessions
      x-authentication: []
    post:
      description: Create user session (log in)
      operationId: PostSessions
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                otp:
                  description: If this user has a 2FA device, provide its OTP or code here.
                  example: "123456"
                  type: string
                  x-ms-summary: If this user has a 2FA device, provide its OTP or code here.
                partial_session_id:
                  description: Identifier for a partially-completed login
                  type: string
                  x-ms-summary: Identifier for a partially-completed login
                password:
                  description: Password for sign in
                  example: password
                  type: string
                  x-ms-summary: Password for sign in
                username:
                  description: Username to sign in as
                  example: username
                  type: string
                  x-ms-summary: Username to sign in as
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SessionEntity"
          description: The Sessions object.
          x-ms-summary: The Sessions object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create user session (log in)
      tags:
        - sessions
      x-authentication: []
  /settings_changes:
    get:
      description: List Settings Changes
      operationId: GetSettingsChanges
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[api_key_id]=desc`). Valid fields are `api_key_id`, `created_at` or `user_id`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[api_key_id]=desc`). Valid fields are `api_key_id`, `created_at` or `user_id`.
        - description: If set, return records where the specified field is equal to the supplied value.
          in: query
          name: api_key_id
          required: false
          schema:
            type: string
          x-ms-summary: If set, return records where the specified field is equal to the supplied value.
        - description: If set, return records where the specified field is equal to the supplied value.
          in: query
          name: user_id
          required: false
          schema:
            type: string
          x-ms-summary: If set, return records where the specified field is equal to the supplied value.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `api_key_id` and `user_id`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `api_key_id` and `user_id`.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/SettingsChangeEntity"
                type: array
          description: A list of SettingsChanges objects.
          x-ms-summary: A list of SettingsChanges objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Settings Changes
      tags:
        - settings_changes
      x-authentication:
        - site
  /sftp_host_keys:
    get:
      description: List Sftp Host Keys
      operationId: GetSftpHostKeys
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/SftpHostKeyEntity"
                type: array
          description: A list of SftpHostKeys objects.
          x-ms-summary: A list of SftpHostKeys objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Sftp Host Keys
      tags:
        - sftp_host_keys
      x-authentication:
        - site
    post:
      description: Create Sftp Host Key
      operationId: PostSftpHostKeys
      requestBody:
        $ref: "#/components/requestBodies/PostSftpHostKeys"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SftpHostKeyEntity"
          description: The SftpHostKeys object.
          x-ms-summary: The SftpHostKeys object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Sftp Host Key
      tags:
        - sftp_host_keys
      x-authentication:
        - site
  "/sftp_host_keys/{id}":
    delete:
      description: Delete Sftp Host Key
      operationId: DeleteSftpHostKeysId
      parameters:
        - description: Sftp Host Key ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Sftp Host Key ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Sftp Host Key
      tags:
        - sftp_host_keys
      x-authentication:
        - site
    get:
      description: Show Sftp Host Key
      operationId: GetSftpHostKeysId
      parameters:
        - description: Sftp Host Key ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Sftp Host Key ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SftpHostKeyEntity"
          description: The SftpHostKeys object.
          x-ms-summary: The SftpHostKeys object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Sftp Host Key
      tags:
        - sftp_host_keys
      x-authentication:
        - site
    patch:
      description: Update Sftp Host Key
      operationId: PatchSftpHostKeysId
      parameters:
        - description: Sftp Host Key ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Sftp Host Key ID.
      requestBody:
        $ref: "#/components/requestBodies/PostSftpHostKeys"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SftpHostKeyEntity"
          description: The SftpHostKeys object.
          x-ms-summary: The SftpHostKeys object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update Sftp Host Key
      tags:
        - sftp_host_keys
      x-authentication:
        - site
  /site:
    get:
      description: Show site settings
      operationId: GetSite
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SiteEntity"
          description: The Site object.
          x-ms-summary: The Site object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show site settings
      tags:
        - site
      x-authentication:
        - site
        - overdue_ok
    patch:
      description: Update site settings.
      operationId: PatchSite
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                active_sftp_host_key_id:
                  description: Id of the currently selected custom SFTP Host Key
                  format: int32
                  type: integer
                  x-ms-summary: Id of the currently selected custom SFTP Host Key
                allow_bundle_names:
                  description: Are manual Bundle names allowed?
                  type: boolean
                  x-ms-summary: Are manual Bundle names allowed?
                allowed_2fa_method_bypass_for_ftp_sftp_dav:
                  description: Are users allowed to configure their two factor authentication to be bypassed for FTP/SFTP/WebDAV?
                  type: boolean
                  x-ms-summary: Are users allowed to configure their two factor authentication to be bypassed for FTP/SFTP/WebDAV?
                allowed_2fa_method_sms:
                  description: Is SMS two factor authentication allowed?
                  type: boolean
                  x-ms-summary: Is SMS two factor authentication allowed?
                allowed_2fa_method_totp:
                  description: Is TOTP two factor authentication allowed?
                  type: boolean
                  x-ms-summary: Is TOTP two factor authentication allowed?
                allowed_2fa_method_u2f:
                  description: Is U2F two factor authentication allowed?
                  type: boolean
                  x-ms-summary: Is U2F two factor authentication allowed?
                allowed_2fa_method_webauthn:
                  description: Is WebAuthn two factor authentication allowed?
                  type: boolean
                  x-ms-summary: Is WebAuthn two factor authentication allowed?
                allowed_2fa_method_yubi:
                  description: Is yubikey two factor authentication allowed?
                  type: boolean
                  x-ms-summary: Is yubikey two factor authentication allowed?
                allowed_countries:
                  description: Comma seperated list of allowed Country codes
                  type: string
                  x-ms-summary: Comma seperated list of allowed Country codes
                allowed_ips:
                  description: List of allowed IP addresses
                  type: string
                  x-ms-summary: List of allowed IP addresses
                ask_about_overwrites:
                  description: If false, rename conflicting files instead of asking for overwrite confirmation.  Only applies to web interface.
                  type: boolean
                  x-ms-summary: If false, rename conflicting files instead of asking for overwrite confirmation.  Only applies to web interface.
                bundle_activity_notifications:
                  description: Do Bundle owners receive activity notifications?
                  type: string
                  x-ms-summary: Do Bundle owners receive activity notifications?
                bundle_expiration:
                  description: Site-wide Bundle expiration in days
                  format: int32
                  type: integer
                  x-ms-summary: Site-wide Bundle expiration in days
                bundle_password_required:
                  description: Do Bundles require password protection?
                  type: boolean
                  x-ms-summary: Do Bundles require password protection?
                bundle_registration_notifications:
                  description: Do Bundle owners receive registration notification?
                  type: string
                  x-ms-summary: Do Bundle owners receive registration notification?
                bundle_require_share_recipient:
                  description: Do Bundles require recipients for sharing?
                  type: boolean
                  x-ms-summary: Do Bundles require recipients for sharing?
                bundle_upload_receipt_notifications:
                  description: Do Bundle uploaders receive upload confirmation notifications?
                  type: string
                  x-ms-summary: Do Bundle uploaders receive upload confirmation notifications?
                bundle_watermark_attachment_delete:
                  description: If true, will delete the file stored in bundle_watermark_attachment
                  type: boolean
                  x-ms-summary: If true, will delete the file stored in bundle_watermark_attachment
                bundle_watermark_attachment_file:
                  format: binary
                  type: string
                  x-ms-summary: null
                bundle_watermark_value:
                  description: Preview watermark settings applied to all bundle items. Uses the same keys as Behavior.value
                  type: object
                  x-ms-summary: Preview watermark settings applied to all bundle items. Uses the same keys as Behavior.value
                color2_left:
                  description: Page link and button color
                  type: string
                  x-ms-summary: Page link and button color
                color2_link:
                  description: Top bar link color
                  type: string
                  x-ms-summary: Top bar link color
                color2_text:
                  description: Page link and button color
                  type: string
                  x-ms-summary: Page link and button color
                color2_top:
                  description: Top bar background color
                  type: string
                  x-ms-summary: Top bar background color
                color2_top_text:
                  description: Top bar text color
                  type: string
                  x-ms-summary: Top bar text color
                custom_namespace:
                  description: Is this site using a custom namespace for users?
                  type: boolean
                  x-ms-summary: Is this site using a custom namespace for users?
                days_to_retain_backups:
                  description: Number of days to keep deleted files
                  format: int32
                  type: integer
                  x-ms-summary: Number of days to keep deleted files
                default_time_zone:
                  description: Site default time zone
                  type: string
                  x-ms-summary: Site default time zone
                desktop_app:
                  description: Is the desktop app enabled?
                  type: boolean
                  x-ms-summary: Is the desktop app enabled?
                desktop_app_session_ip_pinning:
                  description: Is desktop app session IP pinning enabled?
                  type: boolean
                  x-ms-summary: Is desktop app session IP pinning enabled?
                desktop_app_session_lifetime:
                  description: Desktop app session lifetime (in hours)
                  format: int32
                  type: integer
                  x-ms-summary: Desktop app session lifetime (in hours)
                disable_2fa_with_delay:
                  description: If set to true, we will begin the process of disabling 2FA on this site.
                  type: boolean
                  x-ms-summary: If set to true, we will begin the process of disabling 2FA on this site.
                disable_files_certificate_generation:
                  description: If set, Files.com will not set the CAA records required to generate future SSL certificates for this domain.
                  type: boolean
                  x-ms-summary: If set, Files.com will not set the CAA records required to generate future SSL certificates for this domain.
                disable_password_reset:
                  description: Is password reset disabled?
                  type: boolean
                  x-ms-summary: Is password reset disabled?
                disable_users_from_inactivity_period_days:
                  description: If greater than zero, users will unable to login if they do not show activity within this number of days.
                  format: int32
                  type: integer
                  x-ms-summary: If greater than zero, users will unable to login if they do not show activity within this number of days.
                disallowed_countries:
                  description: Comma seperated list of disallowed Country codes
                  type: string
                  x-ms-summary: Comma seperated list of disallowed Country codes
                domain:
                  description: Custom domain
                  type: string
                  x-ms-summary: Custom domain
                domain_hsts_header:
                  description: Send HSTS (HTTP Strict Transport Security) header when visitors access the site via a custom domain?
                  type: boolean
                  x-ms-summary: Send HSTS (HTTP Strict Transport Security) header when visitors access the site via a custom domain?
                domain_letsencrypt_chain:
                  description: Letsencrypt chain to use when registering SSL Certificate for domain.
                  type: string
                  x-ms-summary: Letsencrypt chain to use when registering SSL Certificate for domain.
                email:
                  description: Main email for this site
                  type: string
                  x-ms-summary: Main email for this site
                folder_permissions_groups_only:
                  description: If true, permissions for this site must be bound to a group (not a user). Otherwise, permissions must be bound to a user.
                  type: boolean
                  x-ms-summary: If true, permissions for this site must be bound to a group (not a user). Otherwise, permissions must be bound to a user.
                ftp_enabled:
                  description: Is FTP enabled?
                  type: boolean
                  x-ms-summary: Is FTP enabled?
                icon128_delete:
                  description: If true, will delete the file stored in icon128
                  type: boolean
                  x-ms-summary: If true, will delete the file stored in icon128
                icon128_file:
                  format: binary
                  type: string
                  x-ms-summary: null
                icon16_delete:
                  description: If true, will delete the file stored in icon16
                  type: boolean
                  x-ms-summary: If true, will delete the file stored in icon16
                icon16_file:
                  format: binary
                  type: string
                  x-ms-summary: null
                icon32_delete:
                  description: If true, will delete the file stored in icon32
                  type: boolean
                  x-ms-summary: If true, will delete the file stored in icon32
                icon32_file:
                  format: binary
                  type: string
                  x-ms-summary: null
                icon48_delete:
                  description: If true, will delete the file stored in icon48
                  type: boolean
                  x-ms-summary: If true, will delete the file stored in icon48
                icon48_file:
                  format: binary
                  type: string
                  x-ms-summary: null
                immutable_files:
                  description: Are files protected from modification?
                  type: boolean
                  x-ms-summary: Are files protected from modification?
                include_password_in_welcome_email:
                  description: Include password in emails to new users?
                  type: boolean
                  x-ms-summary: Include password in emails to new users?
                language:
                  description: Site default language
                  type: string
                  x-ms-summary: Site default language
                ldap_base_dn:
                  description: Base DN for looking up users in LDAP server
                  type: string
                  x-ms-summary: Base DN for looking up users in LDAP server
                ldap_domain:
                  description: Domain name that will be appended to usernames
                  type: string
                  x-ms-summary: Domain name that will be appended to usernames
                ldap_enabled:
                  description: "Main LDAP setting: is LDAP enabled?"
                  type: boolean
                  x-ms-summary: "Main LDAP setting: is LDAP enabled?"
                ldap_group_action:
                  description: Should we sync groups from LDAP server?
                  type: string
                  x-ms-summary: Should we sync groups from LDAP server?
                ldap_group_exclusion:
                  description: Comma or newline separated list of group names (with optional wildcards) to exclude when syncing.
                  type: string
                  x-ms-summary: Comma or newline separated list of group names (with optional wildcards) to exclude when syncing.
                ldap_group_inclusion:
                  description: Comma or newline separated list of group names (with optional wildcards) to include when syncing.
                  type: string
                  x-ms-summary: Comma or newline separated list of group names (with optional wildcards) to include when syncing.
                ldap_host:
                  description: LDAP host
                  type: string
                  x-ms-summary: LDAP host
                ldap_host_2:
                  description: LDAP backup host
                  type: string
                  x-ms-summary: LDAP backup host
                ldap_host_3:
                  description: LDAP backup host
                  type: string
                  x-ms-summary: LDAP backup host
                ldap_password_change:
                  description: New LDAP password.
                  type: string
                  x-ms-summary: New LDAP password.
                ldap_password_change_confirmation:
                  description: Confirm new LDAP password.
                  type: string
                  x-ms-summary: Confirm new LDAP password.
                ldap_port:
                  description: LDAP port
                  format: int32
                  type: integer
                  x-ms-summary: LDAP port
                ldap_secure:
                  description: Use secure LDAP?
                  type: boolean
                  x-ms-summary: Use secure LDAP?
                ldap_type:
                  description: LDAP type
                  type: string
                  x-ms-summary: LDAP type
                ldap_user_action:
                  description: Should we sync users from LDAP server?
                  type: string
                  x-ms-summary: Should we sync users from LDAP server?
                ldap_user_include_groups:
                  description: Comma or newline separated list of group names (with optional wildcards) - if provided, only users in these groups will be added or synced.
                  type: string
                  x-ms-summary: Comma or newline separated list of group names (with optional wildcards) - if provided, only users in these groups will be added or synced.
                ldap_username:
                  description: Username for signing in to LDAP server.
                  type: string
                  x-ms-summary: Username for signing in to LDAP server.
                ldap_username_field:
                  description: LDAP username field
                  type: string
                  x-ms-summary: LDAP username field
                login_help_text:
                  description: Login help text
                  type: string
                  x-ms-summary: Login help text
                logo_delete:
                  description: If true, will delete the file stored in logo
                  type: boolean
                  x-ms-summary: If true, will delete the file stored in logo
                logo_file:
                  format: binary
                  type: string
                  x-ms-summary: null
                max_prior_passwords:
                  description: Number of prior passwords to disallow
                  format: int32
                  type: integer
                  x-ms-summary: Number of prior passwords to disallow
                mobile_app:
                  description: Is the mobile app enabled?
                  type: boolean
                  x-ms-summary: Is the mobile app enabled?
                mobile_app_session_ip_pinning:
                  description: Is mobile app session IP pinning enabled?
                  type: boolean
                  x-ms-summary: Is mobile app session IP pinning enabled?
                mobile_app_session_lifetime:
                  description: Mobile app session lifetime (in hours)
                  format: int32
                  type: integer
                  x-ms-summary: Mobile app session lifetime (in hours)
                motd_text:
                  description: A message to show users when they connect via FTP or SFTP.
                  type: string
                  x-ms-summary: A message to show users when they connect via FTP or SFTP.
                motd_use_for_ftp:
                  description: Show message to users connecting via FTP
                  type: boolean
                  x-ms-summary: Show message to users connecting via FTP
                motd_use_for_sftp:
                  description: Show message to users connecting via SFTP
                  type: boolean
                  x-ms-summary: Show message to users connecting via SFTP
                name:
                  description: Site name
                  type: string
                  x-ms-summary: Site name
                non_sso_groups_allowed:
                  description: If true, groups can be manually created / modified / deleted by Site Admins. Otherwise, groups can only be managed via your SSO provider.
                  type: boolean
                  x-ms-summary: If true, groups can be manually created / modified / deleted by Site Admins. Otherwise, groups can only be managed via your SSO provider.
                non_sso_users_allowed:
                  description: If true, users can be manually created / modified / deleted by Site Admins. Otherwise, users can only be managed via your SSO provider.
                  type: boolean
                  x-ms-summary: If true, users can be manually created / modified / deleted by Site Admins. Otherwise, users can only be managed via your SSO provider.
                office_integration_available:
                  description: Allow users to use Office for the web?
                  type: boolean
                  x-ms-summary: Allow users to use Office for the web?
                office_integration_type:
                  description: Office integration application used to edit and view the MS Office documents
                  type: string
                  x-ms-summary: Office integration application used to edit and view the MS Office documents
                opt_out_global:
                  description: Use servers in the USA only?
                  type: boolean
                  x-ms-summary: Use servers in the USA only?
                password_min_length:
                  description: Shortest password length for users
                  format: int32
                  type: integer
                  x-ms-summary: Shortest password length for users
                password_require_letter:
                  description: Require a letter in passwords?
                  type: boolean
                  x-ms-summary: Require a letter in passwords?
                password_require_mixed:
                  description: Require lower and upper case letters in passwords?
                  type: boolean
                  x-ms-summary: Require lower and upper case letters in passwords?
                password_require_number:
                  description: Require a number in passwords?
                  type: boolean
                  x-ms-summary: Require a number in passwords?
                password_require_special:
                  description: Require special characters in password?
                  type: boolean
                  x-ms-summary: Require special characters in password?
                password_require_unbreached:
                  description: Require passwords that have not been previously breached? (see https://haveibeenpwned.com/)
                  type: boolean
                  x-ms-summary: Require passwords that have not been previously breached? (see https://haveibeenpwned.com/)
                password_requirements_apply_to_bundles:
                  description: Require bundles' passwords, and passwords for other items (inboxes, public shares, etc.) to conform to the same requirements as users' passwords?
                  type: boolean
                  x-ms-summary: Require bundles' passwords, and passwords for other items (inboxes, public shares, etc.) to conform to the same requirements as users' passwords?
                password_validity_days:
                  description: Number of days password is valid
                  format: int32
                  type: integer
                  x-ms-summary: Number of days password is valid
                pin_all_remote_servers_to_site_region:
                  description: If true, we will ensure that all internal communications with any remote server are made through the primary region of the site. This setting overrides individual remote server settings.
                  type: boolean
                  x-ms-summary: If true, we will ensure that all internal communications with any remote server are made through the primary region of the site. This setting overrides individual remote server settings.
                reply_to_email:
                  description: Reply-to email for this site
                  type: string
                  x-ms-summary: Reply-to email for this site
                require_2fa:
                  description: Require two-factor authentication for all users?
                  type: boolean
                  x-ms-summary: Require two-factor authentication for all users?
                require_2fa_user_type:
                  description: What type of user is required to use two-factor authentication (when require_2fa is set to `true` for this site)?
                  type: string
                  x-ms-summary: What type of user is required to use two-factor authentication (when require_2fa is set to `true` for this site)?
                session_expiry:
                  description: Session expiry in hours
                  format: double
                  type: number
                  x-ms-summary: Session expiry in hours
                session_expiry_minutes:
                  description: Session expiry in minutes
                  format: int32
                  type: integer
                  x-ms-summary: Session expiry in minutes
                session_pinned_by_ip:
                  description: Are sessions locked to the same IP? (i.e. do users need to log in again if they change IPs?)
                  type: boolean
                  x-ms-summary: Are sessions locked to the same IP? (i.e. do users need to log in again if they change IPs?)
                sftp_enabled:
                  description: Is SFTP enabled?
                  type: boolean
                  x-ms-summary: Is SFTP enabled?
                sftp_host_key_type:
                  description: Sftp Host Key Type
                  type: string
                  x-ms-summary: Sftp Host Key Type
                sftp_insecure_ciphers:
                  description: "Are Insecure Ciphers allowed for SFTP?  Note:  Settting TLS Disabled -> True will always allow insecure ciphers for SFTP as well.  Enabling this is insecure."
                  type: boolean
                  x-ms-summary: "Are Insecure Ciphers allowed for SFTP?  Note:  Settting TLS Disabled -> True will always allow insecure ciphers for SFTP as well.  Enabling this is insecure."
                sftp_user_root_enabled:
                  description: Use user FTP roots also for SFTP?
                  type: boolean
                  x-ms-summary: Use user FTP roots also for SFTP?
                sharing_enabled:
                  description: Allow bundle creation
                  type: boolean
                  x-ms-summary: Allow bundle creation
                show_request_access_link:
                  description: Show request access link for users without access?  Currently unused.
                  type: boolean
                  x-ms-summary: Show request access link for users without access?  Currently unused.
                site_footer:
                  description: Custom site footer text
                  type: string
                  x-ms-summary: Custom site footer text
                site_header:
                  description: Custom site header text
                  type: string
                  x-ms-summary: Custom site header text
                smtp_address:
                  description: SMTP server hostname or IP
                  type: string
                  x-ms-summary: SMTP server hostname or IP
                smtp_authentication:
                  description: SMTP server authentication type
                  type: string
                  x-ms-summary: SMTP server authentication type
                smtp_from:
                  description: From address to use when mailing through custom SMTP
                  type: string
                  x-ms-summary: From address to use when mailing through custom SMTP
                smtp_password:
                  description: Password for SMTP server.
                  type: string
                  x-ms-summary: Password for SMTP server.
                smtp_port:
                  description: SMTP server port
                  format: int32
                  type: integer
                  x-ms-summary: SMTP server port
                smtp_username:
                  description: SMTP server username
                  type: string
                  x-ms-summary: SMTP server username
                ssl_required:
                  description: Is SSL required?  Disabling this is insecure.
                  type: boolean
                  x-ms-summary: Is SSL required?  Disabling this is insecure.
                subdomain:
                  description: Site subdomain
                  type: string
                  x-ms-summary: Site subdomain
                tls_disabled:
                  description: Are Insecure TLS and SFTP Ciphers allowed?  Enabling this is insecure.
                  type: boolean
                  x-ms-summary: Are Insecure TLS and SFTP Ciphers allowed?  Enabling this is insecure.
                uploads_via_email_authentication:
                  description: Do incoming emails in the Inboxes require checking for SPF/DKIM/DMARC?
                  type: boolean
                  x-ms-summary: Do incoming emails in the Inboxes require checking for SPF/DKIM/DMARC?
                use_provided_modified_at:
                  description: Allow uploaders to set `provided_modified_at` for uploaded files?
                  type: boolean
                  x-ms-summary: Allow uploaders to set `provided_modified_at` for uploaded files?
                user_lockout:
                  description: Will users be locked out after incorrect login attempts?
                  type: boolean
                  x-ms-summary: Will users be locked out after incorrect login attempts?
                user_lockout_lock_period:
                  description: How many hours to lock user out for failed password?
                  format: int32
                  type: integer
                  x-ms-summary: How many hours to lock user out for failed password?
                user_lockout_tries:
                  description: Number of login tries within `user_lockout_within` hours before users are locked out
                  format: int32
                  type: integer
                  x-ms-summary: Number of login tries within `user_lockout_within` hours before users are locked out
                user_lockout_within:
                  description: Number of hours for user lockout window
                  format: int32
                  type: integer
                  x-ms-summary: Number of hours for user lockout window
                user_requests_enabled:
                  description: Enable User Requests feature
                  type: boolean
                  x-ms-summary: Enable User Requests feature
                user_requests_notify_admins:
                  description: Send email to site admins when a user request is received?
                  type: boolean
                  x-ms-summary: Send email to site admins when a user request is received?
                welcome_custom_text:
                  description: Custom text send in user welcome email
                  type: string
                  x-ms-summary: Custom text send in user welcome email
                welcome_email_cc:
                  description: Include this email in welcome emails if enabled
                  type: string
                  x-ms-summary: Include this email in welcome emails if enabled
                welcome_email_enabled:
                  description: Will the welcome email be sent to new users?
                  type: boolean
                  x-ms-summary: Will the welcome email be sent to new users?
                welcome_email_subject:
                  description: Include this email subject in welcome emails if enabled
                  type: string
                  x-ms-summary: Include this email subject in welcome emails if enabled
                welcome_screen:
                  description: Does the welcome screen appear?
                  type: string
                  x-ms-summary: Does the welcome screen appear?
                windows_mode_ftp:
                  description: Does FTP user Windows emulation mode?
                  type: boolean
                  x-ms-summary: Does FTP user Windows emulation mode?
              type: object
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SiteEntity"
          description: The Site object.
          x-ms-summary: The Site object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update site settings.
      tags:
        - site
      x-authentication:
        - site
        - overdue_ok
      x-reauthentication:
        params:
          - email
          - require_2fa
          - require_2fa_user_type
          - disable_2fa_with_delay
        required: true
  /site/api_keys:
    get:
      description: List Api Keys
      operationId: GetSiteApiKeys
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[expires_at]=desc`). Valid fields are `expires_at`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[expires_at]=desc`). Valid fields are `expires_at`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `expires_at`.
        - description: If set, return records where the specified field is greater than the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter_gt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than the supplied value. Valid fields are `expires_at`.
        - description: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter_gteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `expires_at`.
        - description: If set, return records where the specified field is less than the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter_lt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than the supplied value. Valid fields are `expires_at`.
        - description: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter_lteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `expires_at`.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ApiKeyEntity"
                type: array
          description: A list of ApiKeys objects.
          x-ms-summary: A list of ApiKeys objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Api Keys
      tags:
        - site
      x-authentication:
        - self_managed
      x-path_aliases:
        - site/api_keys
        - user/api_keys
        - users/:user_id/api_keys
    post:
      description: Create Api Key
      operationId: PostSiteApiKeys
      requestBody:
        $ref: "#/components/requestBodies/PostApiKeys"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKeyEntity"
          description: The ApiKeys object.
          x-ms-summary: The ApiKeys object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Api Key
      tags:
        - site
      x-authentication: []
      x-path_aliases:
        - site/api_keys
        - user/api_keys
        - users/:user_id/api_keys
  /site/dns_records:
    get:
      description: Show site DNS configuration.
      operationId: GetSiteDnsRecords
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/DnsRecordEntity"
                type: array
          description: A list of DnsRecords objects.
          x-ms-summary: A list of DnsRecords objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show site DNS configuration.
      tags:
        - site
      x-authentication:
        - site
        - overdue_ok
      x-path_aliases:
        - site/dns_records
  /site/ip_addresses:
    get:
      description: List IP Addresses associated with the current site
      operationId: GetSiteIpAddresses
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/IpAddressEntity"
                type: array
          description: A list of IpAddresses objects.
          x-ms-summary: A list of IpAddresses objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List IP Addresses associated with the current site
      tags:
        - site
      x-authentication:
        - site
        - overdue_ok
      x-path_aliases:
        - site/ip_addresses
  /site/test-webhook:
    post:
      description: Test webhook.
      operationId: PostSiteTestWebhook
      requestBody:
        $ref: "#/components/requestBodies/PostSiteTestWebhook"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StatusEntity"
          description: The Behaviors object.
          x-ms-summary: The Behaviors object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Test webhook.
      tags:
        - site
      x-authentication:
        - folder_admin
      x-path_aliases:
        - site/test-webhook
  /site/usage:
    get:
      description: Get the most recent usage snapshot (usage data for billing purposes) for a Site.
      operationId: GetSiteUsage
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UsageSnapshotEntity"
          description: The Site object.
          x-ms-summary: The Site object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Get the most recent usage snapshot (usage data for billing purposes) for a Site.
      tags:
        - site
      x-authentication:
        - site
        - overdue_ok
        - billing
  /sso_strategies:
    get:
      description: List Sso Strategies
      operationId: GetSsoStrategies
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/SsoStrategyEntity"
                type: array
          description: A list of SsoStrategies objects.
          x-ms-summary: A list of SsoStrategies objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Sso Strategies
      tags:
        - sso_strategies
      x-authentication:
        - site
  "/sso_strategies/{id}":
    get:
      description: Show Sso Strategy
      operationId: GetSsoStrategiesId
      parameters:
        - description: Sso Strategy ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Sso Strategy ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SsoStrategyEntity"
          description: The SsoStrategies object.
          x-ms-summary: The SsoStrategies object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Sso Strategy
      tags:
        - sso_strategies
      x-authentication:
        - site
  "/sso_strategies/{id}/sync":
    post:
      description: Synchronize provisioning data with the SSO remote server.
      operationId: PostSsoStrategiesIdSync
      parameters:
        - description: Sso Strategy ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: Sso Strategy ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Synchronize provisioning data with the SSO remote server.
      tags:
        - sso_strategies
      x-authentication:
        - site
  "/styles/{path}":
    delete:
      description: Delete Style
      operationId: DeleteStylesPath
      parameters:
        - description: Style path.
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Style path.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete Style
      tags:
        - styles
      x-authentication:
        - site
    get:
      description: Show Style
      operationId: GetStylesPath
      parameters:
        - description: Style path.
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Style path.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StyleEntity"
          description: The Styles object.
          x-ms-summary: The Styles object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show Style
      tags:
        - styles
      x-authentication: []
    patch:
      description: Update Style
      operationId: PatchStylesPath
      parameters:
        - description: Style path.
          in: path
          name: path
          required: true
          schema:
            type: string
          x-ms-summary: Style path.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  description: Logo for custom branding.
                  format: binary
                  type: string
                  x-ms-summary: Logo for custom branding.
              required:
                - file
              type: object
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StyleEntity"
          description: The Styles object.
          x-ms-summary: The Styles object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update Style
      tags:
        - styles
      x-authentication:
        - site
  /usage_daily_snapshots:
    get:
      description: List Usage Daily Snapshots
      operationId: GetUsageDailySnapshots
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[date]=desc`). Valid fields are `date` and `usage_snapshot_id`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[date]=desc`). Valid fields are `date` and `usage_snapshot_id`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `date` and `usage_snapshot_id`. Valid field combinations are `[ usage_snapshot_id, date ]`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `date` and `usage_snapshot_id`. Valid field combinations are `[ usage_snapshot_id, date ]`.
        - description: If set, return records where the specified field is greater than the supplied value. Valid fields are `date`.
          in: query
          name: filter_gt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than the supplied value. Valid fields are `date`.
        - description: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `date`.
          in: query
          name: filter_gteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `date`.
        - description: If set, return records where the specified field is less than the supplied value. Valid fields are `date`.
          in: query
          name: filter_lt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than the supplied value. Valid fields are `date`.
        - description: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `date`.
          in: query
          name: filter_lteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `date`.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/UsageDailySnapshotEntity"
                type: array
          description: A list of UsageDailySnapshots objects.
          x-ms-summary: A list of UsageDailySnapshots objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Usage Daily Snapshots
      tags:
        - usage_daily_snapshots
      x-authentication:
        - site
  /usage_snapshots:
    get:
      description: List Usage Snapshots
      operationId: GetUsageSnapshots
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/UsageSnapshotEntity"
                type: array
          description: A list of UsageSnapshots objects.
          x-ms-summary: A list of UsageSnapshots objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Usage Snapshots
      tags:
        - usage_snapshots
      x-authentication:
        - site
  /user:
    patch:
      description: Update User
      operationId: PatchUser
      requestBody:
        $ref: "#/components/requestBodies/PatchUser"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserEntity"
          description: The Users object.
          x-ms-summary: The Users object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update User
      tags:
        - user
      x-authentication:
        - self_managed
      x-path_aliases:
        - user
      x-reauthentication:
        params:
          - password
          - change_password
          - email
          - site_admin
        required: true
  /user/api_keys:
    get:
      description: List Api Keys
      operationId: GetUserApiKeys
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[expires_at]=desc`). Valid fields are `expires_at`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[expires_at]=desc`). Valid fields are `expires_at`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `expires_at`.
        - description: If set, return records where the specified field is greater than the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter_gt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than the supplied value. Valid fields are `expires_at`.
        - description: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter_gteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `expires_at`.
        - description: If set, return records where the specified field is less than the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter_lt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than the supplied value. Valid fields are `expires_at`.
        - description: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter_lteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `expires_at`.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ApiKeyEntity"
                type: array
          description: A list of ApiKeys objects.
          x-ms-summary: A list of ApiKeys objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Api Keys
      tags:
        - user
      x-authentication:
        - self_managed
      x-path_aliases:
        - site/api_keys
        - user/api_keys
        - users/:user_id/api_keys
    post:
      description: Create Api Key
      operationId: PostUserApiKeys
      requestBody:
        $ref: "#/components/requestBodies/PostApiKeys"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKeyEntity"
          description: The ApiKeys object.
          x-ms-summary: The ApiKeys object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Api Key
      tags:
        - user
      x-authentication: []
      x-path_aliases:
        - site/api_keys
        - user/api_keys
        - users/:user_id/api_keys
  /user/groups:
    get:
      description: List Group Users
      operationId: GetUserGroups
      parameters:
        - description: User ID.  If provided, will return group_users of this user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  If provided, will return group_users of this user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: Group ID.  If provided, will return group_users of this group.
          in: query
          name: group_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: Group ID.  If provided, will return group_users of this group.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/GroupUserEntity"
                type: array
          description: A list of GroupUsers objects.
          x-ms-summary: A list of GroupUsers objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Group Users
      tags:
        - user
      x-authentication: []
      x-path_aliases:
        - user/groups
        - users/:user_id/groups
        - groups/:group_id/users
  /user/public_keys:
    get:
      description: List Public Keys
      operationId: GetUserPublicKeys
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/PublicKeyEntity"
                type: array
          description: A list of PublicKeys objects.
          x-ms-summary: A list of PublicKeys objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Public Keys
      tags:
        - user
      x-authentication:
        - self_managed
      x-path_aliases:
        - user/public_keys
        - users/:user_id/public_keys
    post:
      description: Create Public Key
      operationId: PostUserPublicKeys
      requestBody:
        $ref: "#/components/requestBodies/PostUserPublicKeys"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublicKeyEntity"
          description: The PublicKeys object.
          x-ms-summary: The PublicKeys object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Public Key
      tags:
        - user
      x-authentication:
        - self_managed
      x-path_aliases:
        - user/public_keys
        - users/:user_id/public_keys
  /user_cipher_uses:
    get:
      description: List User Cipher Uses
      operationId: GetUserCipherUses
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: query
          name: user_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/UserCipherUseEntity"
                type: array
          description: A list of UserCipherUses objects.
          x-ms-summary: A list of UserCipherUses objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List User Cipher Uses
      tags:
        - user_cipher_uses
      x-authentication:
        - self_managed
      x-path_aliases:
        - users/:user_id/cipher_uses
  /user_requests:
    get:
      description: List User Requests
      operationId: GetUserRequests
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/UserRequestEntity"
                type: array
          description: A list of UserRequests objects.
          x-ms-summary: A list of UserRequests objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List User Requests
      tags:
        - user_requests
      x-authentication:
        - site
    post:
      description: Create User Request
      operationId: PostUserRequests
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                details:
                  description: Details of the user request
                  type: string
                  x-ms-summary: Details of the user request
                email:
                  description: Email of user requested
                  type: string
                  x-ms-summary: Email of user requested
                name:
                  description: Name of user requested
                  type: string
                  x-ms-summary: Name of user requested
              required:
                - name
                - email
                - details
              type: object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserRequestEntity"
          description: The UserRequests object.
          x-ms-summary: The UserRequests object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create User Request
      tags:
        - user_requests
      x-authentication:
        - none
  "/user_requests/{id}":
    delete:
      description: Delete User Request
      operationId: DeleteUserRequestsId
      parameters:
        - description: User Request ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: User Request ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete User Request
      tags:
        - user_requests
      x-authentication:
        - site
    get:
      description: Show User Request
      operationId: GetUserRequestsId
      parameters:
        - description: User Request ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: User Request ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserRequestEntity"
          description: The UserRequests object.
          x-ms-summary: The UserRequests object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show User Request
      tags:
        - user_requests
      x-authentication:
        - site
  /users:
    get:
      description: List Users
      operationId: GetUsers
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[authenticate_until]=desc`). Valid fields are `authenticate_until`, `active`, `email`, `last_desktop_login_at`, `last_login_at`, `username`, `company`, `name`, `site_admin`, `receive_admin_alerts`, `password_validity_days`, `ssl_required` or `not_site_admin`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[authenticate_until]=desc`). Valid fields are `authenticate_until`, `active`, `email`, `last_desktop_login_at`, `last_login_at`, `username`, `company`, `name`, `site_admin`, `receive_admin_alerts`, `password_validity_days`, `ssl_required` or `not_site_admin`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `username`, `email`, `company`, `site_admin`, `password_validity_days`, `ssl_required`, `last_login_at`, `authenticate_until` or `not_site_admin`. Valid field combinations are `[ not_site_admin, username ]`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `username`, `email`, `company`, `site_admin`, `password_validity_days`, `ssl_required`, `last_login_at`, `authenticate_until` or `not_site_admin`. Valid field combinations are `[ not_site_admin, username ]`.
        - description: If set, return records where the specified field is greater than the supplied value. Valid fields are `password_validity_days`, `last_login_at` or `authenticate_until`.
          in: query
          name: filter_gt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than the supplied value. Valid fields are `password_validity_days`, `last_login_at` or `authenticate_until`.
        - description: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `password_validity_days`, `last_login_at` or `authenticate_until`.
          in: query
          name: filter_gteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `password_validity_days`, `last_login_at` or `authenticate_until`.
        - description: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `username`, `email` or `company`.
          in: query
          name: filter_prefix
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `username`, `email` or `company`.
        - description: If set, return records where the specified field is less than the supplied value. Valid fields are `password_validity_days`, `last_login_at` or `authenticate_until`.
          in: query
          name: filter_lt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than the supplied value. Valid fields are `password_validity_days`, `last_login_at` or `authenticate_until`.
        - description: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `password_validity_days`, `last_login_at` or `authenticate_until`.
          in: query
          name: filter_lteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `password_validity_days`, `last_login_at` or `authenticate_until`.
        - description: comma-separated list of User IDs
          in: query
          name: ids
          required: false
          schema:
            type: string
          x-ms-summary: comma-separated list of User IDs
        - description: List users matching username.
          in: query
          name: q[username]
          required: false
          schema:
            type: string
          x-ms-summary: List users matching username.
        - description: List users matching email.
          in: query
          name: q[email]
          required: false
          schema:
            type: string
          x-ms-summary: List users matching email.
        - description: List users matching notes field.
          in: query
          name: q[notes]
          required: false
          schema:
            type: string
          x-ms-summary: List users matching notes field.
        - description: If `true`, list only admin users.
          in: query
          name: q[admin]
          required: false
          schema:
            type: string
          x-ms-summary: If `true`, list only admin users.
        - description: If set, list only users with overridden allowed IP setting.
          in: query
          name: q[allowed_ips]
          required: false
          schema:
            type: string
          x-ms-summary: If set, list only users with overridden allowed IP setting.
        - description: If set, list only users with overridden password validity days setting.
          in: query
          name: q[password_validity_days]
          required: false
          schema:
            type: string
          x-ms-summary: If set, list only users with overridden password validity days setting.
        - description: If set, list only users with overridden SSL required setting.
          in: query
          name: q[ssl_required]
          required: false
          schema:
            type: string
          x-ms-summary: If set, list only users with overridden SSL required setting.
        - description: Searches for partial matches of name, username, or email.
          in: query
          name: search
          required: false
          schema:
            type: string
          x-ms-summary: Searches for partial matches of name, username, or email.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/UserEntity"
                type: array
          description: A list of Users objects.
          x-ms-summary: A list of Users objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Users
      tags:
        - users
      x-authentication:
        - folder_admin
        - overdue_ok
    post:
      description: Create User
      operationId: PostUsers
      requestBody:
        $ref: "#/components/requestBodies/PatchUser"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserEntity"
          description: The Users object.
          x-ms-summary: The Users object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create User
      tags:
        - users
      x-authentication: []
      x-path_aliases:
        - groups/:group_id/users
  "/users/{id}":
    delete:
      description: Delete User
      operationId: DeleteUsersId
      parameters:
        - description: User ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Delete User
      tags:
        - users
      x-authentication:
        - site
        - overdue_ok
      x-reauthentication:
        always: true
        required: true
    get:
      description: Show User
      operationId: GetUsersId
      parameters:
        - description: User ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserEntity"
          description: The Users object.
          x-ms-summary: The Users object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Show User
      tags:
        - users
      x-authentication:
        - folder_admin
        - overdue_ok
    patch:
      description: Update User
      operationId: PatchUsersId
      parameters:
        - description: User ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.
      requestBody:
        $ref: "#/components/requestBodies/PatchUser"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserEntity"
          description: The Users object.
          x-ms-summary: The Users object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Update User
      tags:
        - users
      x-authentication:
        - self_managed
      x-path_aliases:
        - user
      x-reauthentication:
        params:
          - password
          - change_password
          - email
          - site_admin
        required: true
  "/users/{id}/2fa/reset":
    post:
      description: Trigger 2FA Reset process for user who has lost access to their existing 2FA methods.
      operationId: PostUsersId2faReset
      parameters:
        - description: User ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Trigger 2FA Reset process for user who has lost access to their existing 2FA methods.
      tags:
        - users
      x-authentication:
        - site
        - overdue_ok
      x-reauthentication:
        always: true
        required: true
  "/users/{id}/resend_welcome_email":
    post:
      description: Resend user welcome email
      operationId: PostUsersIdResendWelcomeEmail
      parameters:
        - description: User ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Resend user welcome email
      tags:
        - users
      x-authentication:
        - site
        - overdue_ok
  "/users/{id}/unlock":
    post:
      description: Unlock user who has been locked out due to failed logins.
      operationId: PostUsersIdUnlock
      parameters:
        - description: User ID.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.
      responses:
        "204":
          description: No body.
          x-ms-summary: No body.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Unlock user who has been locked out due to failed logins.
      tags:
        - users
      x-authentication:
        - site
        - overdue_ok
  "/users/{user_id}/api_keys":
    get:
      description: List Api Keys
      operationId: GetUsersUserIdApiKeys
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: path
          name: user_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[expires_at]=desc`). Valid fields are `expires_at`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[expires_at]=desc`). Valid fields are `expires_at`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `expires_at`.
        - description: If set, return records where the specified field is greater than the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter_gt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than the supplied value. Valid fields are `expires_at`.
        - description: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter_gteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `expires_at`.
        - description: If set, return records where the specified field is less than the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter_lt
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than the supplied value. Valid fields are `expires_at`.
        - description: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `expires_at`.
          in: query
          name: filter_lteq
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is less than or equal the supplied value. Valid fields are `expires_at`.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/ApiKeyEntity"
                type: array
          description: A list of ApiKeys objects.
          x-ms-summary: A list of ApiKeys objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Api Keys
      tags:
        - users
      x-authentication:
        - self_managed
      x-path_aliases:
        - site/api_keys
        - user/api_keys
        - users/:user_id/api_keys
    post:
      description: Create Api Key
      operationId: PostUsersUserIdApiKeys
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: path
          name: user_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                description:
                  description: User-supplied description of API key.
                  example: example
                  type: string
                  x-ms-summary: User-supplied description of API key.
                expires_at:
                  description: API Key expiration date
                  example: 2000-01-01T01:00:00Z
                  format: date-time
                  type: string
                  x-ms-summary: API Key expiration date
                name:
                  description: Internal name for the API Key.  For your use.
                  example: My Main API Key
                  type: string
                  x-ms-summary: Internal name for the API Key.  For your use.
                path:
                  description: Folder path restriction for this api key.
                  example: shared/docs
                  type: string
                  x-ms-summary: Folder path restriction for this api key.
                permission_set:
                  default: full
                  description: Permissions for this API Key.  Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations).  Additional permission sets may become available in the future, such as for a Site Admin to give a key with no administrator privileges.  If you have ideas for permission sets, please let us know.
                  enum:
                    - none
                    - full
                    - desktop_app
                    - sync_app
                    - office_integration
                    - mobile_app
                  example: full
                  type: string
                  x-ms-summary: Permissions for this API Key.  Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations).  Additional permission sets may become available in the future, such as for a Site Admin to give a key with no administrator privileges.  If you have ideas for permission sets, please let us know.
              type: object
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiKeyEntity"
          description: The ApiKeys object.
          x-ms-summary: The ApiKeys object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Api Key
      tags:
        - users
      x-authentication: []
      x-path_aliases:
        - site/api_keys
        - user/api_keys
        - users/:user_id/api_keys
  "/users/{user_id}/cipher_uses":
    get:
      description: List User Cipher Uses
      operationId: GetUsersUserIdCipherUses
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: path
          name: user_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/UserCipherUseEntity"
                type: array
          description: A list of UserCipherUses objects.
          x-ms-summary: A list of UserCipherUses objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List User Cipher Uses
      tags:
        - users
      x-authentication:
        - self_managed
      x-path_aliases:
        - users/:user_id/cipher_uses
  "/users/{user_id}/groups":
    get:
      description: List Group Users
      operationId: GetUsersUserIdGroups
      parameters:
        - description: User ID.  If provided, will return group_users of this user.
          in: path
          name: user_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  If provided, will return group_users of this user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: Group ID.  If provided, will return group_users of this group.
          in: query
          name: group_id
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: Group ID.  If provided, will return group_users of this group.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/GroupUserEntity"
                type: array
          description: A list of GroupUsers objects.
          x-ms-summary: A list of GroupUsers objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Group Users
      tags:
        - users
      x-authentication: []
      x-path_aliases:
        - user/groups
        - users/:user_id/groups
        - groups/:group_id/users
  "/users/{user_id}/permissions":
    get:
      description: List Permissions
      operationId: GetUsersUserIdPermissions
      parameters:
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
        - description: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[group_id]=desc`). Valid fields are `group_id`, `path`, `user_id` or `permission`.
          in: query
          name: sort_by
          required: false
          schema:
            type: object
          x-ms-summary: If set, sort records by the specified field in either `asc` or `desc` direction (e.g. `sort_by[group_id]=desc`). Valid fields are `group_id`, `path`, `user_id` or `permission`.
        - description: If set, return records where the specified field is equal to the supplied value. Valid fields are `group_id`, `user_id` or `path`. Valid field combinations are `[ group_id, path ]` and `[ user_id, path ]`.
          in: query
          name: filter
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is equal to the supplied value. Valid fields are `group_id`, `user_id` or `path`. Valid field combinations are `[ group_id, path ]` and `[ user_id, path ]`.
        - description: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `path`.
          in: query
          name: filter_prefix
          required: false
          schema:
            type: object
          x-ms-summary: If set, return records where the specified field is prefixed by the supplied value. Valid fields are `path`.
        - description: "DEPRECATED: Permission path.  If provided, will scope permissions to this path. Use `filter[path]` instead."
          in: query
          name: path
          required: false
          schema:
            type: string
          x-ms-summary: "DEPRECATED: Permission path.  If provided, will scope permissions to this path. Use `filter[path]` instead."
        - description: "DEPRECATED: Group ID.  If provided, will scope permissions to this group. Use `filter[group_id]` instead.`"
          in: query
          name: group_id
          required: false
          schema:
            type: string
          x-ms-summary: "DEPRECATED: Group ID.  If provided, will scope permissions to this group. Use `filter[group_id]` instead.`"
        - description: "DEPRECATED: User ID.  If provided, will scope permissions to this user. Use `filter[user_id]` instead.`"
          in: path
          name: user_id
          required: true
          schema:
            type: string
          x-ms-summary: "DEPRECATED: User ID.  If provided, will scope permissions to this user. Use `filter[user_id]` instead.`"
        - description: If searching by user or group, also include user's permissions that are inherited from its groups?
          in: query
          name: include_groups
          required: false
          schema:
            type: boolean
          x-ms-summary: If searching by user or group, also include user's permissions that are inherited from its groups?
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/PermissionEntity"
                type: array
          description: A list of Permissions objects.
          x-ms-summary: A list of Permissions objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Permissions
      tags:
        - users
      x-authentication: []
      x-path_aliases:
        - groups/:group_id/permissions
        - users/:user_id/permissions
  "/users/{user_id}/public_keys":
    get:
      description: List Public Keys
      operationId: GetUsersUserIdPublicKeys
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: path
          name: user_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
        - description: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
          in: query
          name: cursor
          required: false
          schema:
            type: string
          x-ms-summary: "Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination."
        - description: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
          in: query
          name: per_page
          required: false
          schema:
            format: int32
            type: integer
          x-ms-summary: "Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended)."
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/PublicKeyEntity"
                type: array
          description: A list of PublicKeys objects.
          x-ms-summary: A list of PublicKeys objects.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: List Public Keys
      tags:
        - users
      x-authentication:
        - self_managed
      x-path_aliases:
        - user/public_keys
        - users/:user_id/public_keys
    post:
      description: Create Public Key
      operationId: PostUsersUserIdPublicKeys
      parameters:
        - description: User ID.  Provide a value of `0` to operate the current session's user.
          in: path
          name: user_id
          required: true
          schema:
            format: int32
            type: integer
          x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                public_key:
                  description: Actual contents of SSH key.
                  type: string
                  x-ms-summary: Actual contents of SSH key.
                title:
                  description: Internal reference for key.
                  example: My Main Key
                  type: string
                  x-ms-summary: Internal reference for key.
              required:
                - title
                - public_key
              type: object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublicKeyEntity"
          description: The PublicKeys object.
          x-ms-summary: The PublicKeys object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Public Key
      tags:
        - users
      x-authentication:
        - self_managed
      x-path_aliases:
        - user/public_keys
        - users/:user_id/public_keys
  /webhook_tests:
    post:
      description: Create Webhook Test
      operationId: PostWebhookTests
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                action:
                  description: action for test body
                  example: test
                  type: string
                  x-ms-summary: action for test body
                body:
                  description: Additional body parameters.
                  example:
                    test-param: testvalue
                  type: object
                  x-ms-summary: Additional body parameters.
                encoding:
                  description: HTTP encoding method.  Can be JSON, XML, or RAW (form data).
                  example: RAW
                  type: string
                  x-ms-summary: HTTP encoding method.  Can be JSON, XML, or RAW (form data).
                file_as_body:
                  description: Send the file data as the request body?
                  type: boolean
                  x-ms-summary: Send the file data as the request body?
                file_form_field:
                  description: Send the file data as a named parameter in the request POST body
                  example: upload_file_data
                  type: string
                  x-ms-summary: Send the file data as a named parameter in the request POST body
                headers:
                  description: Additional request headers.
                  example:
                    x-test-header: testvalue
                  type: object
                  x-ms-summary: Additional request headers.
                method:
                  description: HTTP method(GET or POST).
                  example: GET
                  type: string
                  x-ms-summary: HTTP method(GET or POST).
                raw_body:
                  description: raw body text
                  example: test body
                  type: string
                  x-ms-summary: raw body text
                url:
                  description: URL for testing the webhook.
                  example: https://www.site.com/...
                  type: string
                  x-ms-summary: URL for testing the webhook.
              required:
                - url
              type: object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebhookTestEntity"
          description: The WebhookTests object.
          x-ms-summary: The WebhookTests object.
        "400":
          description: Bad Request
          x-ms-summary: Bad Request
        "401":
          description: Unauthorized
          x-ms-summary: Unauthorized
        "403":
          description: Forbidden
          x-ms-summary: Forbidden
        "404":
          description: Not Found
          x-ms-summary: Not Found
        "405":
          description: Method Not Allowed
          x-ms-summary: Method Not Allowed
        "409":
          description: Conflict
          x-ms-summary: Conflict
        "412":
          description: Precondition Failed
          x-ms-summary: Precondition Failed
        "422":
          description: Unprocessable Entity
          x-ms-summary: Unprocessable Entity
        "423":
          description: Locked
          x-ms-summary: Locked
        "429":
          description: Too Many Requests
          x-ms-summary: Too Many Requests
      summary: Create Webhook Test
      tags:
        - webhook_tests
      x-authentication:
        - folder_admin
components:
  requestBodies:
    PatchFileCommentsId:
      content:
        multipart/form-data:
          schema:
            properties:
              body:
                description: Comment body.
                type: string
                x-ms-summary: Comment body.
            required:
              - body
            type: object
      required: true
    PatchGroupUsersId:
      content:
        multipart/form-data:
          schema:
            properties:
              admin:
                description: Is the user a group administrator?
                type: boolean
                x-ms-summary: Is the user a group administrator?
              group_id:
                description: Group ID to add user to.
                format: int32
                type: integer
                x-ms-summary: Group ID to add user to.
              user_id:
                description: User ID to add to group.
                format: int32
                type: integer
                x-ms-summary: User ID to add to group.
            required:
              - group_id
              - user_id
            type: object
      required: true
    PatchGroupsId:
      content:
        multipart/form-data:
          schema:
            properties:
              admin_ids:
                description: A list of group admin user ids. If sent as a string, should be comma-delimited.
                type: string
                x-ms-summary: A list of group admin user ids. If sent as a string, should be comma-delimited.
              name:
                description: Group name.
                type: string
                x-ms-summary: Group name.
              notes:
                description: Group notes.
                type: string
                x-ms-summary: Group notes.
              user_ids:
                description: A list of user ids. If sent as a string, should be comma-delimited.
                type: string
                x-ms-summary: A list of user ids. If sent as a string, should be comma-delimited.
            type: object
    PatchProjectsId:
      content:
        multipart/form-data:
          schema:
            properties:
              global_access:
                description: "Global permissions.  Can be: `none`, `anyone_with_read`, `anyone_with_full`."
                type: string
                x-ms-summary: "Global permissions.  Can be: `none`, `anyone_with_read`, `anyone_with_full`."
            required:
              - global_access
            type: object
      required: true
    PatchUser:
      content:
        multipart/form-data:
          schema:
            properties:
              allowed_ips:
                description: A list of allowed IPs if applicable.  Newline delimited
                example: 127.0.0.1
                type: string
                x-ms-summary: A list of allowed IPs if applicable.  Newline delimited
              announcements_read:
                description: Signifies that the user has read all the announcements in the UI.
                type: boolean
                x-ms-summary: Signifies that the user has read all the announcements in the UI.
              attachments_permission:
                description: "DEPRECATED: Can the user create Bundles (aka Share Links)? Use the bundle permission instead."
                example: true
                type: boolean
                x-ms-summary: "DEPRECATED: Can the user create Bundles (aka Share Links)? Use the bundle permission instead."
              authenticate_until:
                description: Scheduled Date/Time at which user will be deactivated
                example: 2000-01-01T01:00:00Z
                format: date-time
                type: string
                x-ms-summary: Scheduled Date/Time at which user will be deactivated
              authentication_method:
                description: How is this user authenticated?
                enum:
                  - password
                  - unused_former_ldap
                  - sso
                  - none
                  - email_signup
                  - password_with_imported_hash
                example: password
                type: string
                x-ms-summary: How is this user authenticated?
              avatar_delete:
                description: If true, the avatar will be deleted.
                type: boolean
                x-ms-summary: If true, the avatar will be deleted.
              avatar_file:
                description: An image file for your user avatar.
                format: binary
                type: string
                x-ms-summary: An image file for your user avatar.
              billing_permission:
                description: Allow this user to perform operations on the account, payments, and invoices?
                type: boolean
                x-ms-summary: Allow this user to perform operations on the account, payments, and invoices?
              bypass_inactive_disable:
                description: Exempt this user from being disabled based on inactivity?
                type: boolean
                x-ms-summary: Exempt this user from being disabled based on inactivity?
              bypass_site_allowed_ips:
                description: Allow this user to skip site-wide IP blacklists?
                type: boolean
                x-ms-summary: Allow this user to skip site-wide IP blacklists?
              change_password:
                description: Used for changing a password on an existing user.
                type: string
                x-ms-summary: Used for changing a password on an existing user.
              change_password_confirmation:
                description: Optional, but if provided, we will ensure that it matches the value sent in `change_password`.
                type: string
                x-ms-summary: Optional, but if provided, we will ensure that it matches the value sent in `change_password`.
              company:
                description: User's company
                example: ACME Corp.
                type: string
                x-ms-summary: User's company
              dav_permission:
                description: Can the user connect with WebDAV?
                example: true
                type: boolean
                x-ms-summary: Can the user connect with WebDAV?
              disabled:
                description: Is user disabled? Disabled users cannot log in, and do not count for billing purposes.  Users can be automatically disabled after an inactivity period via a Site setting.
                example: true
                type: boolean
                x-ms-summary: Is user disabled? Disabled users cannot log in, and do not count for billing purposes.  Users can be automatically disabled after an inactivity period via a Site setting.
              email:
                description: User's email.
                type: string
                x-ms-summary: User's email.
              ftp_permission:
                description: Can the user access with FTP/FTPS?
                example: true
                type: boolean
                x-ms-summary: Can the user access with FTP/FTPS?
              grant_permission:
                description: Permission to grant on the user root.  Can be blank or `full`, `read`, `write`, `list`, `read+write`, or `list+write`
                type: string
                x-ms-summary: Permission to grant on the user root.  Can be blank or `full`, `read`, `write`, `list`, `read+write`, or `list+write`
              group_id:
                description: Group ID to associate this user with.
                format: int32
                type: integer
                x-ms-summary: Group ID to associate this user with.
              group_ids:
                description: A list of group ids to associate this user with.  Comma delimited.
                type: string
                x-ms-summary: A list of group ids to associate this user with.  Comma delimited.
              header_text:
                description: Text to display to the user in the header of the UI
                example: User-specific message.
                type: string
                x-ms-summary: Text to display to the user in the header of the UI
              imported_password_hash:
                description: Pre-calculated hash of the user's password. If supplied, this will be used to authenticate the user on first login. Supported hash menthods are MD5, SHA1, and SHA256.
                type: string
                x-ms-summary: Pre-calculated hash of the user's password. If supplied, this will be used to authenticate the user on first login. Supported hash menthods are MD5, SHA1, and SHA256.
              language:
                description: Preferred language
                example: en
                type: string
                x-ms-summary: Preferred language
              name:
                description: User's full name
                example: John Doe
                type: string
                x-ms-summary: User's full name
              notes:
                description: Any internal notes on the user
                example: Internal notes on this user.
                type: string
                x-ms-summary: Any internal notes on the user
              notification_daily_send_time:
                description: Hour of the day at which daily notifications should be sent. Can be in range 0 to 23
                example: 18
                format: int32
                type: integer
                x-ms-summary: Hour of the day at which daily notifications should be sent. Can be in range 0 to 23
              office_integration_enabled:
                description: Enable integration with Office for the web?
                example: true
                type: boolean
                x-ms-summary: Enable integration with Office for the web?
              password:
                description: User password.
                type: string
                x-ms-summary: User password.
              password_confirmation:
                description: Optional, but if provided, we will ensure that it matches the value sent in `password`.
                type: string
                x-ms-summary: Optional, but if provided, we will ensure that it matches the value sent in `password`.
              password_validity_days:
                description: Number of days to allow user to use the same password
                example: 1
                format: int32
                type: integer
                x-ms-summary: Number of days to allow user to use the same password
              receive_admin_alerts:
                description: Should the user receive admin alerts such a certificate expiration notifications and overages?
                example: true
                type: boolean
                x-ms-summary: Should the user receive admin alerts such a certificate expiration notifications and overages?
              require_2fa:
                description: 2FA required setting
                enum:
                  - use_system_setting
                  - always_require
                  - never_require
                example: always_require
                type: string
                x-ms-summary: 2FA required setting
              require_password_change:
                description: Is a password change required upon next user login?
                example: true
                type: boolean
                x-ms-summary: Is a password change required upon next user login?
              restapi_permission:
                description: Can this user access the REST API?
                example: true
                type: boolean
                x-ms-summary: Can this user access the REST API?
              self_managed:
                description: Does this user manage it's own credentials or is it a shared/bot user?
                example: true
                type: boolean
                x-ms-summary: Does this user manage it's own credentials or is it a shared/bot user?
              sftp_permission:
                description: Can the user access with SFTP?
                example: true
                type: boolean
                x-ms-summary: Can the user access with SFTP?
              site_admin:
                description: Is the user an administrator for this site?
                example: true
                type: boolean
                x-ms-summary: Is the user an administrator for this site?
              skip_welcome_screen:
                description: Skip Welcome page in the UI?
                example: true
                type: boolean
                x-ms-summary: Skip Welcome page in the UI?
              ssl_required:
                description: SSL required setting
                enum:
                  - use_system_setting
                  - always_require
                  - never_require
                example: always_require
                type: string
                x-ms-summary: SSL required setting
              sso_strategy_id:
                description: SSO (Single Sign On) strategy ID for the user, if applicable.
                example: 1
                format: int32
                type: integer
                x-ms-summary: SSO (Single Sign On) strategy ID for the user, if applicable.
              subscribe_to_newsletter:
                description: Is the user subscribed to the newsletter?
                example: true
                type: boolean
                x-ms-summary: Is the user subscribed to the newsletter?
              time_zone:
                description: User time zone
                example: Pacific Time (US & Canada)
                type: string
                x-ms-summary: User time zone
              user_root:
                description: Root folder for FTP (and optionally SFTP if the appropriate site-wide setting is set.)  Note that this is not used for API, Desktop, or Web interface.
                example: example
                type: string
                x-ms-summary: Root folder for FTP (and optionally SFTP if the appropriate site-wide setting is set.)  Note that this is not used for API, Desktop, or Web interface.
              username:
                description: User's username
                example: user
                type: string
                x-ms-summary: User's username
            type: object
    PostApiKeys:
      content:
        multipart/form-data:
          schema:
            properties:
              description:
                description: User-supplied description of API key.
                example: example
                type: string
                x-ms-summary: User-supplied description of API key.
              expires_at:
                description: API Key expiration date
                example: 2000-01-01T01:00:00Z
                format: date-time
                type: string
                x-ms-summary: API Key expiration date
              name:
                description: Internal name for the API Key.  For your use.
                example: My Main API Key
                type: string
                x-ms-summary: Internal name for the API Key.  For your use.
              path:
                description: Folder path restriction for this api key.
                example: shared/docs
                type: string
                x-ms-summary: Folder path restriction for this api key.
              permission_set:
                default: full
                description: Permissions for this API Key.  Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations).  Additional permission sets may become available in the future, such as for a Site Admin to give a key with no administrator privileges.  If you have ideas for permission sets, please let us know.
                enum:
                  - none
                  - full
                  - desktop_app
                  - sync_app
                  - office_integration
                  - mobile_app
                example: full
                type: string
                x-ms-summary: Permissions for this API Key.  Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations).  Additional permission sets may become available in the future, such as for a Site Admin to give a key with no administrator privileges.  If you have ideas for permission sets, please let us know.
              user_id:
                description: User ID.  Provide a value of `0` to operate the current session's user.
                format: int32
                type: integer
                x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
            type: object
    PostClickwraps:
      content:
        multipart/form-data:
          schema:
            properties:
              body:
                description: Body text of Clickwrap (supports Markdown formatting).
                example: "[Legal body text]"
                type: string
                x-ms-summary: Body text of Clickwrap (supports Markdown formatting).
              name:
                description: Name of the Clickwrap agreement (used when selecting from multiple Clickwrap agreements.)
                example: Example Site NDA for Files.com Use
                type: string
                x-ms-summary: Name of the Clickwrap agreement (used when selecting from multiple Clickwrap agreements.)
              use_with_bundles:
                description: Use this Clickwrap for Bundles?
                enum:
                  - none
                  - available
                  - require
                example: example
                type: string
                x-ms-summary: Use this Clickwrap for Bundles?
              use_with_inboxes:
                description: Use this Clickwrap for Inboxes?
                enum:
                  - none
                  - available
                  - require
                example: example
                type: string
                x-ms-summary: Use this Clickwrap for Inboxes?
              use_with_users:
                description: "Use this Clickwrap for User Registrations?  Note: This only applies to User Registrations where the User is invited to your Files.com site using an E-Mail invitation process where they then set their own password."
                enum:
                  - none
                  - require
                example: example
                type: string
                x-ms-summary: "Use this Clickwrap for User Registrations?  Note: This only applies to User Registrations where the User is invited to your Files.com site using an E-Mail invitation process where they then set their own password."
            type: object
    PostMessageCommentReactions:
      content:
        multipart/form-data:
          schema:
            properties:
              emoji:
                description: Emoji to react with.
                type: string
                x-ms-summary: Emoji to react with.
              user_id:
                description: User ID.  Provide a value of `0` to operate the current session's user.
                format: int32
                type: integer
                x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
            required:
              - emoji
            type: object
    PostRemoteServers:
      content:
        multipart/form-data:
          schema:
            properties:
              aws_access_key:
                description: AWS Access Key.
                example: example
                type: string
                x-ms-summary: AWS Access Key.
              aws_secret_key:
                description: AWS secret key.
                type: string
                x-ms-summary: AWS secret key.
              azure_blob_storage_access_key:
                description: Azure Blob Storage secret key.
                type: string
                x-ms-summary: Azure Blob Storage secret key.
              azure_blob_storage_account:
                description: Azure Blob Storage Account name
                example: storage-account-name
                type: string
                x-ms-summary: Azure Blob Storage Account name
              azure_blob_storage_container:
                description: Azure Blob Storage Container name
                example: container-name
                type: string
                x-ms-summary: Azure Blob Storage Container name
              azure_blob_storage_sas_token:
                description: Shared Access Signature (SAS) token
                example: storage-sas-token
                type: string
                x-ms-summary: Shared Access Signature (SAS) token
              azure_files_storage_access_key:
                description: Azure File Storage access key.
                type: string
                x-ms-summary: Azure File Storage access key.
              azure_files_storage_account:
                description: Azure File Storage Account name
                example: storage-account-name
                type: string
                x-ms-summary: Azure File Storage Account name
              azure_files_storage_sas_token:
                description: Shared Access Signature (SAS) token
                example: storage-sas-token
                type: string
                x-ms-summary: Shared Access Signature (SAS) token
              azure_files_storage_share_name:
                description: Azure File Storage Share name
                example: share-name
                type: string
                x-ms-summary: Azure File Storage Share name
              backblaze_b2_application_key:
                description: Backblaze B2 Cloud Storage applicationKey.
                type: string
                x-ms-summary: Backblaze B2 Cloud Storage applicationKey.
              backblaze_b2_bucket:
                description: Backblaze B2 Cloud Storage Bucket name
                example: my-bucket
                type: string
                x-ms-summary: Backblaze B2 Cloud Storage Bucket name
              backblaze_b2_key_id:
                description: Backblaze B2 Cloud Storage keyID.
                type: string
                x-ms-summary: Backblaze B2 Cloud Storage keyID.
              backblaze_b2_s3_endpoint:
                description: Backblaze B2 Cloud Storage S3 Endpoint
                example: s3.us-west-001.backblazeb2.com
                type: string
                x-ms-summary: Backblaze B2 Cloud Storage S3 Endpoint
              enable_dedicated_ips:
                description: "`true` if remote server only accepts connections from dedicated IPs"
                example: true
                type: boolean
                x-ms-summary: "`true` if remote server only accepts connections from dedicated IPs"
              filebase_access_key:
                description: Filebase Access Key.
                example: example
                type: string
                x-ms-summary: Filebase Access Key.
              filebase_bucket:
                description: Filebase Bucket name
                example: my-bucket
                type: string
                x-ms-summary: Filebase Bucket name
              filebase_secret_key:
                description: Filebase secret key
                type: string
                x-ms-summary: Filebase secret key
              files_agent_permission_set:
                description: Local permissions for files agent. read_only, write_only, or read_write
                enum:
                  - read_write
                  - read_only
                  - write_only
                example: read_write
                type: string
                x-ms-summary: Local permissions for files agent. read_only, write_only, or read_write
              files_agent_root:
                description: Agent local root path
                example: example
                type: string
                x-ms-summary: Agent local root path
              google_cloud_storage_bucket:
                description: Google Cloud Storage bucket name
                example: my-bucket
                type: string
                x-ms-summary: Google Cloud Storage bucket name
              google_cloud_storage_credentials_json:
                description: A JSON file that contains the private key. To generate see https://cloud.google.com/storage/docs/json_api/v1/how-tos/authorizing#APIKey
                type: string
                x-ms-summary: A JSON file that contains the private key. To generate see https://cloud.google.com/storage/docs/json_api/v1/how-tos/authorizing#APIKey
              google_cloud_storage_project_id:
                description: Google Cloud Project ID
                example: my-project
                type: string
                x-ms-summary: Google Cloud Project ID
              hostname:
                description: Hostname or IP address
                example: remote-server.com
                type: string
                x-ms-summary: Hostname or IP address
              max_connections:
                description: Max number of parallel connections.  Ignored for S3 connections (we will parallelize these as much as possible).
                example: 1
                format: int32
                type: integer
                x-ms-summary: Max number of parallel connections.  Ignored for S3 connections (we will parallelize these as much as possible).
              name:
                description: Internal name for your reference
                example: My Remote server
                type: string
                x-ms-summary: Internal name for your reference
              one_drive_account_type:
                description: Either personal or business_other account types
                enum:
                  - personal
                  - business_other
                example: personal
                type: string
                x-ms-summary: Either personal or business_other account types
              password:
                description: Password if needed.
                type: string
                x-ms-summary: Password if needed.
              pin_to_site_region:
                description: If true, we will ensure that all communications with this remote server are made through the primary region of the site.  This setting can also be overridden by a sitewide setting which will force it to true.
                example: true
                type: boolean
                x-ms-summary: If true, we will ensure that all communications with this remote server are made through the primary region of the site.  This setting can also be overridden by a sitewide setting which will force it to true.
              port:
                description: Port for remote server.  Not needed for S3.
                example: 1
                format: int32
                type: integer
                x-ms-summary: Port for remote server.  Not needed for S3.
              private_key:
                description: Private key if needed.
                type: string
                x-ms-summary: Private key if needed.
              private_key_passphrase:
                description: Passphrase for private key if needed.
                type: string
                x-ms-summary: Passphrase for private key if needed.
              rackspace_api_key:
                description: Rackspace API key from the Rackspace Cloud Control Panel.
                type: string
                x-ms-summary: Rackspace API key from the Rackspace Cloud Control Panel.
              rackspace_container:
                description: The name of the container (top level directory) where files will sync.
                example: my-container
                type: string
                x-ms-summary: The name of the container (top level directory) where files will sync.
              rackspace_region:
                description: Three letter airport code for Rackspace region. See https://support.rackspace.com/how-to/about-regions/
                example: dfw
                type: string
                x-ms-summary: Three letter airport code for Rackspace region. See https://support.rackspace.com/how-to/about-regions/
              rackspace_username:
                description: Rackspace username used to login to the Rackspace Cloud Control Panel.
                example: rackspaceuser
                type: string
                x-ms-summary: Rackspace username used to login to the Rackspace Cloud Control Panel.
              reset_authentication:
                description: Reset authenticated account
                type: boolean
                x-ms-summary: Reset authenticated account
              s3_bucket:
                description: S3 bucket name
                example: my-bucket
                type: string
                x-ms-summary: S3 bucket name
              s3_compatible_access_key:
                description: S3-compatible Access Key.
                example: example
                type: string
                x-ms-summary: S3-compatible Access Key.
              s3_compatible_bucket:
                description: S3-compatible Bucket name
                example: my-bucket
                type: string
                x-ms-summary: S3-compatible Bucket name
              s3_compatible_endpoint:
                description: S3-compatible endpoint
                example: mys3platform.com
                type: string
                x-ms-summary: S3-compatible endpoint
              s3_compatible_region:
                description: S3-compatible endpoint
                example: us-east-1
                type: string
                x-ms-summary: S3-compatible endpoint
              s3_compatible_secret_key:
                description: S3-compatible secret key
                type: string
                x-ms-summary: S3-compatible secret key
              s3_region:
                description: S3 region
                example: us-east-1
                type: string
                x-ms-summary: S3 region
              server_certificate:
                description: Remote server certificate
                enum:
                  - require_match
                  - allow_any
                example: require_match
                type: string
                x-ms-summary: Remote server certificate
              server_host_key:
                description: Remote server SSH Host Key. If provided, we will require that the server host key matches the provided key. Uses OpenSSH format similar to what would go into ~/.ssh/known_hosts
                example: "[public key]"
                type: string
                x-ms-summary: Remote server SSH Host Key. If provided, we will require that the server host key matches the provided key. Uses OpenSSH format similar to what would go into ~/.ssh/known_hosts
              server_type:
                description: Remote server type.
                enum:
                  - ftp
                  - sftp
                  - s3
                  - google_cloud_storage
                  - webdav
                  - wasabi
                  - backblaze_b2
                  - one_drive
                  - rackspace
                  - box
                  - dropbox
                  - google_drive
                  - azure
                  - sharepoint
                  - s3_compatible
                  - azure_files
                  - files_agent
                  - filebase
                example: s3
                type: string
                x-ms-summary: Remote server type.
              ssl:
                description: Should we require SSL?
                enum:
                  - if_available
                  - require
                  - require_implicit
                  - never
                example: if_available
                type: string
                x-ms-summary: Should we require SSL?
              ssl_certificate:
                description: SSL client certificate.
                type: string
                x-ms-summary: SSL client certificate.
              username:
                description: Remote server username.  Not needed for S3 buckets.
                example: user
                type: string
                x-ms-summary: Remote server username.  Not needed for S3 buckets.
              wasabi_access_key:
                description: Wasabi access key.
                example: example
                type: string
                x-ms-summary: Wasabi access key.
              wasabi_bucket:
                description: Wasabi Bucket name
                example: my-bucket
                type: string
                x-ms-summary: Wasabi Bucket name
              wasabi_region:
                description: Wasabi region
                example: us-west-1
                type: string
                x-ms-summary: Wasabi region
              wasabi_secret_key:
                description: Wasabi secret key.
                type: string
                x-ms-summary: Wasabi secret key.
            type: object
    PostSftpHostKeys:
      content:
        multipart/form-data:
          schema:
            properties:
              name:
                description: The friendly name of this SFTP Host Key.
                type: string
                x-ms-summary: The friendly name of this SFTP Host Key.
              private_key:
                description: The private key data.
                type: string
                x-ms-summary: The private key data.
            type: object
    PostSiteTestWebhook:
      content:
        multipart/form-data:
          schema:
            properties:
              action:
                description: action for test body
                example: test
                type: string
                x-ms-summary: action for test body
              body:
                description: Additional body parameters.
                example:
                  test-param: testvalue
                type: object
                x-ms-summary: Additional body parameters.
              encoding:
                description: HTTP encoding method.  Can be JSON, XML, or RAW (form data).
                example: RAW
                type: string
                x-ms-summary: HTTP encoding method.  Can be JSON, XML, or RAW (form data).
              headers:
                description: Additional request headers.
                example:
                  x-test-header: testvalue
                type: object
                x-ms-summary: Additional request headers.
              method:
                description: HTTP method(GET or POST).
                example: GET
                type: string
                x-ms-summary: HTTP method(GET or POST).
              url:
                description: URL for testing the webhook.
                example: https://www.site.com/...
                type: string
                x-ms-summary: URL for testing the webhook.
            required:
              - url
            type: object
      required: true
    PostUserPublicKeys:
      content:
        multipart/form-data:
          schema:
            properties:
              public_key:
                description: Actual contents of SSH key.
                type: string
                x-ms-summary: Actual contents of SSH key.
              title:
                description: Internal reference for key.
                example: My Main Key
                type: string
                x-ms-summary: Internal reference for key.
              user_id:
                description: User ID.  Provide a value of `0` to operate the current session's user.
                format: int32
                type: integer
                x-ms-summary: User ID.  Provide a value of `0` to operate the current session's user.
            required:
              - title
              - public_key
            type: object
  schemas:
    AccountLineItemEntity:
      description: List Payments
      properties:
        amount:
          description: Line item amount
          example: 1
          format: double
          type: number
        balance:
          description: Line item balance
          example: 1
          format: double
          type: number
        created_at:
          description: Line item created at
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        currency:
          description: Line item currency
          example: USD
          type: string
        download_uri:
          description: Line item download uri
          example: https://url...
          type: string
        id:
          description: Line item Id
          example: 1
          format: int32
          type: integer
        invoice_line_items:
          description: Associated invoice line items
          example:
            - null
          items:
            $ref: "#/components/schemas/InvoiceLineItemEntity"
          type: array
        method:
          description: Line item payment method
          example: paypal
          type: string
        payment_line_items:
          description: Associated payment line items
          example:
            - null
          items:
            $ref: "#/components/schemas/PaymentLineItemEntity"
          type: array
        payment_reversed_at:
          description: Date/time payment was reversed if applicable
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        payment_type:
          description: Type of payment if applicable
          example: example
          type: string
        site_name:
          description: Site name this line item is for
          example: My Site
          type: string
        type:
          description: Type of line item, either payment or invoice
          example: invoice
          type: string
        updated_at:
          description: Line item updated at
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
      type: object
      x-docs: null
    ActionEntity:
      description: List site full action history.
      properties:
        action:
          description: Type of action
          enum:
            - create
            - read
            - update
            - destroy
            - move
            - login
            - failedlogin
            - copy
            - user_create
            - user_update
            - user_destroy
            - group_create
            - group_update
            - group_destroy
            - permission_create
            - permission_destroy
            - api_key_create
            - api_key_update
            - api_key_destroy
          example: create
          type: string
        destination:
          description: The destination path for this action, if applicable
          example: /to_path
          type: string
        display:
          description: Friendly displayed output
          example: Actual text of the action here.
          type: string
        failure_type:
          description: Failure type.  If action was a user login or session failure, why did it fail?
          enum:
            - expired_trial
            - account_overdue
            - locked_out
            - ip_mismatch
            - password_mismatch
            - site_mismatch
            - username_not_found
            - none
            - no_ftp_permission
            - no_web_permission
            - no_directory
            - errno_enoent
            - no_sftp_permission
            - no_dav_permission
            - no_restapi_permission
            - key_mismatch
            - region_mismatch
            - expired_access
            - desktop_ip_mismatch
            - desktop_api_key_not_used_quickly_enough
            - disabled
            - country_mismatch
          example: none
          type: string
        id:
          description: Action ID
          example: 1
          format: int32
          type: integer
        interface:
          description: Interface on which this action occurred.
          enum:
            - web
            - ftp
            - robot
            - jsapi
            - webdesktopapi
            - sftp
            - dav
            - desktop
            - restapi
            - scim
            - office
            - mobile
            - as2
            - inbound_email
            - remote
          example: web
          type: string
        ip:
          description: IP Address that performed this action
          example: 192.283.128.182
          type: string
        path:
          description: Path
          example: path
          type: string
        source:
          description: The source path for this action, if applicable
          example: /from_path
          type: string
        targets:
          description: Targets
          example: []
          items:
            example: []
            type: object
          type: array
        user_id:
          description: User ID
          example: 1
          format: int32
          type: integer
        username:
          description: Username
          example: user
          type: string
        when:
          description: Action occurrence date/time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
      type: object
      x-docs: |
        All File and Login actions on Files.com are recorded and can be queried via our History API.

        This set of endpoints only provides access to recent actions (actions created within 24 hours).  In most cases,
        you would be better served to create a Webhook, which sends actions to your server, rather than poll this endpoint.

        The HistoryExport set of endpoints provides a richer ability to query and filter, as well as search the entire
        lifetime of your history log.
    ActionNotificationExportEntity:
      description: Show Action Notification Export
      properties:
        end_at:
          description: End date/time of export range.
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        export_version:
          description: Version of the underlying records for the export.
          example: example
          type: string
        id:
          description: History Export ID
          example: 1
          format: int32
          type: integer
        query_folder:
          description: Return notifications that were triggered by actions in this folder.
          example: MyFolder
          type: string
        query_message:
          description: Error message associated with the request, if any.
          example: Connection Refused
          type: string
        query_path:
          description: Return notifications that were triggered by actions on this specific path.
          example: MyFile.txt
          type: string
        query_request_method:
          description: The HTTP request method used by the webhook.
          example: GET
          type: string
        query_request_url:
          description: The target webhook URL.
          example: http://example.com/webhook
          type: string
        query_status:
          description: The HTTP status returned from the server in response to the webhook request.
          example: "200"
          type: string
        query_success:
          description: true if the webhook request succeeded (i.e. returned a 200 or 204 response status). false otherwise.
          example: true
          type: boolean
        results_url:
          description: If `status` is `ready`, this will be a URL where all the results can be downloaded at once as a CSV.
          example: https://files.com/action_notification_results.csv
          type: string
        start_at:
          description: Start date/time of export range.
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        status:
          description: "Status of export.  Valid values: `building`, `ready`, or `failed`"
          example: ready
          type: string
      type: object
      x-docs: |
        The Action Notification Export API provides access to outgoing webhook logs. Querying webhook logs is a little different than other APIs.

        All queries against the archive must be submitted as Exports.  (Even our Web UI creates an Export behind the scenes.)

        In any query field in this API, you may specify multiple values separated by commas.  That means that commas
        cannot be searched for themselves, and neither can single quotation marks.

        Use the following steps to complete an export:

        1. Initiate the export by using the Create Action Notification Export endpoint. Non Site Admins must query by folder or path.
        2. Using the `id` from the response to step 1, poll the Show Action Notification Export endpoint. Check the `status` field until it is `ready`.
        3. You can download the results of the export as a CSV file using the `results_url` field in the response from step 2. If you want to page through the records in JSON format, use the List Action Notification Export Results endpoint, passing the `id` that you got in step 1 as the `action_notification_export_id` parameter. Check the `X-Files-Cursor-Next` header to see if there are more records available, and resubmit the same request with a `cursor` parameter to fetch the next page of results.  Unlike most API Endpoints, this endpoint does not provide `X-Files-Cursor-Prev` cursors allowing reverse pagination through the results.  This is due to limitations in Amazon Athena, the underlying data lake for these records.

        If you intend to use this API for high volume or automated use, please contact us with more information
        about your use case.

        ## Example Queries

        * History for a folder: `{ "query_folder": "path/to/folder" }`
        * History for a range of time: `{ "start_at": "2021-03-18 12:00:00", "end_at": "2021-03-19 12:00:00" }`
        * History of all notifications that used GET or POST: `{ "query_request_method": "GET,POST" }`
    ActionNotificationExportResultEntity:
      description: List Action Notification Export Results
      properties:
        created_at:
          description: When the notification was sent.
          example: 1
          format: int32
          type: integer
        folder:
          description: The folder associated with the triggering action for this notification.
          example: MyFolder
          type: string
        id:
          description: Notification ID
          example: 1
          format: int32
          type: integer
        message:
          description: A message indicating the overall status of the webhook notification.
          example: Success
          type: string
        path:
          description: The path to the actual file that triggered this notification.
          example: MyFolder/MyFile.txt
          type: string
        request_headers:
          description: A JSON-encoded string with headers that were sent with the webhook.
          example: '{"User-Agent":"Files.com Webhook"}'
          type: string
        request_method:
          description: The HTTP verb used to perform the webhook.
          example: GET
          type: string
        request_url:
          description: The webhook request URL.
          example: www.example.com/webhook_receiver
          type: string
        status:
          description: HTTP status code returned in the webhook response.
          example: 200
          format: int32
          type: integer
        success:
          description: "`true` if the webhook succeeded by receiving a 200 or 204 response."
          example: true
          type: boolean
      type: object
      x-docs: null
    ApiKeyEntity:
      description: List Api Keys
      properties:
        created_at:
          description: Time which API Key was created
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        description:
          description: User-supplied description of API key.
          example: example
          type: string
        descriptive_label:
          description: Unique label that describes this API key.  Useful for external systems where you may have API keys from multiple accounts and want a human-readable label for each key.
          example: "Site-wide API key for https://site.files.com/ (key ID #1)"
          type: string
        expires_at:
          description: API Key expiration date
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        id:
          description: API Key ID
          example: 1
          format: int32
          type: integer
        key:
          description: API Key actual key string
          example: "[key]"
          type: string
        last_use_at:
          description: API Key last used - note this value is only updated once per 3 hour period, so the 'actual' time of last use may be up to 3 hours later than this timestamp.
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        name:
          description: Internal name for the API Key.  For your use.
          example: My Main API Key
          type: string
        path:
          description: Folder path restriction for this api key.
          example: shared/docs
          type: string
        permission_set:
          description: Permissions for this API Key.  Keys with the `desktop_app` permission set only have the ability to do the functions provided in our Desktop App (File and Share Link operations).  Additional permission sets may become available in the future, such as for a Site Admin to give a key with no administrator privileges.  If you have ideas for permission sets, please let us know.
          enum:
            - none
            - full
            - desktop_app
            - sync_app
            - office_integration
            - mobile_app
          example: full
          type: string
        platform:
          description: If this API key represents a Desktop app, what platform was it created on?
          example: win32
          type: string
        url:
          description: URL for API host.
          example: example
          type: string
        user_id:
          description: User ID for the owner of this API Key.  May be blank for Site-wide API Keys.
          example: 1
          format: int32
          type: integer
      type: object
      x-docs: |
        API Keys allow programmatic access to your Site.
        API keys confer all the permissions of the user who owns them.
        If an API key is created without a user owner, it is considered a site-wide API key, which has full permissions to do anything on the Site.
    AppEntity:
      description: List Apps
      properties:
        app_type:
          description: The type of the App
          enum:
            - sdk
            - sso
            - remote_server
            - folder_behavior
            - client_app
            - app_integration
          example: example
          type: string
        documentation_links:
          description: Collection of named links to documentation
          example:
            Important Info: http://files.test/learn-more
          type: object
          x-object-type:
            key_type: string
            type: hash
            value_type: string
        extended_description:
          description: Long form description of the App
          example: example
          type: string
        external_homepage_url:
          description: Link to external homepage
          example: example
          type: string
        featured:
          description: Is featured on the App listing?
          example: true
          type: boolean
        folder_behavior_type:
          description: Associated Folder Behavior type, if any
          enum:
            - webhook
            - file_expiration
            - auto_encrypt
            - lock_subfolders
            - storage_region
            - serve_publicly
            - create_user_folders
            - remote_server_sync
            - inbox
            - append_timestamp
            - limit_file_extensions
            - limit_file_regex
            - amazon_sns
            - watermark
            - remote_server_mount
            - slack_webhook
            - auto_decrypt
            - override_upload_filename
          example: example
          type: string
        icon_url:
          description: App icon
          example: example
          type: string
        logo_thumbnail_url:
          description: Logo thumbnail for the App
          example: example
          type: string
        logo_url:
          description: Full size logo for the App
          example: example
          type: string
        marketing_youtube_url:
          description: Marketing video page
          example: example
          type: string
        name:
          description: Name of the App
          example: example
          type: string
        remote_server_type:
          description: Associated Remote Server type, if any
          enum:
            - ftp
            - sftp
            - s3
            - google_cloud_storage
            - webdav
            - wasabi
            - backblaze_b2
            - one_drive
            - rackspace
            - box
            - dropbox
            - google_drive
            - azure
            - sharepoint
            - s3_compatible
            - azure_files
            - files_agent
            - filebase
          example: example
          type: string
        screenshot_list_urls:
          description: Screenshots of the App
          example:
            - example
          items:
            example:
              - example
            type: string
          type: array
        short_description:
          description: Short description of the App
          example: example
          type: string
        sso_strategy_type:
          description: Associated SSO Strategy type, if any
          enum:
            - google
            - auth0
            - okta
            - atlassian
            - azure
            - box
            - dropbox
            - slack
            - _unused_ubuntu
            - onelogin
            - saml
            - idaptive
            - ldap
            - scim
          example: example
          type: string
        tutorial_youtube_url:
          description: Tutorial video page
          example: example
          type: string
      type: object
      x-docs: |
        Apps are the API/SDK term for the various integrations provided by Files.com.

        If you have an idea for a new integration, please let us know as we are continuously adding to this list.
    As2IncomingMessageEntity:
      description: List As2 Incoming Messages
      properties:
        activity_log:
          description: JSON Structure of the activity log.
          example: example
          type: string
        as2_from:
          description: AS2 FROM header of message
          example: example
          type: string
        as2_partner_id:
          description: Id of the AS2 Partner associated with this message.
          example: 1
          format: int32
          type: integer
        as2_station_id:
          description: Id of the AS2 Station associated with this message.
          example: 1
          format: int32
          type: integer
        as2_to:
          description: AS2 TO header of message
          example: example
          type: string
        attachment_filename:
          description: Filename of the file being received.
          example: example
          type: string
        body_size:
          description: Encrypted Payload Body Size
          example: example
          type: string
        content_type:
          description: Content Type header of the incoming message.
          example: example
          type: string
        created_at:
          description: Message creation date/time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        date:
          description: Date Header
          example: example
          type: string
        encrypted_uri:
          description: URL to download the encrypted signed smime that is to sent as AS2 body
          example: example
          type: string
        hex_recipient_serial:
          description: Incoming Message Recipient(the Client Cert used to encrypt this message)'s serial in hex format.
          example: A5:EB:C1:95:DC:D8:2B:E7
          type: string
        http_headers:
          description: HTTP Headers sent with this message.
          example:
            key: example value
          type: object
          x-object-type:
            key_type: string
            type: hash
            value_type: string
        http_response_code:
          description: HTTP Response Code sent for this message
          example: example
          type: string
        http_response_headers:
          description: HTTP Headers sent for this message.
          example:
            key: example value
          type: object
          x-object-type:
            key_type: string
            type: hash
            value_type: string
        id:
          description: Id of the AS2 Partner.
          example: 1
          format: int32
          type: integer
        ip:
          description: IP Address of the Sender
          example: example
          type: string
        mdn_response_uri:
          description: URL to download the http response body
          example: example
          type: string
        message_decrypted:
          description: Message decrypted successfully?
          example: true
          type: boolean
        message_id:
          description: AS2 Message Id
          example: example
          type: string
        message_mdn_returned:
          description: MDN returned?
          example: true
          type: boolean
        message_processing_success:
          description: Message processed successfully?
          example: true
          type: boolean
        message_received:
          description: Message body received?
          example: true
          type: boolean
        message_signature_verified:
          description: Message signature verified?
          example: true
          type: boolean
        mic:
          description: AS2 Message Integrity Check
          example: example
          type: string
        mic_algo:
          description: AS2 Message Integrity Check Algorithm Used
          example: example
          type: string
        processing_result:
          description: Result of processing.
          enum:
            - not_started
            - unable_to_find_station
            - unable_to_find_partner
            - unable_to_validate_signature
            - decrypt_fail
            - file_save_fail
            - success
          example: example
          type: string
        processing_result_description:
          description: Result of processing description.
          example: example
          type: string
        raw_uri:
          description: URL to download the original file contents
          example: example
          type: string
        recipient_issuer:
          description: Incoming Message Recipient(the Client Cert used to encrypt this message)'s issuer
          example: example
          type: string
        recipient_serial:
          description: Incoming Message Recipient(the Client Cert used to encrypt this message)'s serial
          example: example
          type: string
        smime_signed_uri:
          description: URL to download the file contents as smime with signature
          example: example
          type: string
        smime_uri:
          description: URL to download the file contents encoded as smime
          example: example
          type: string
        subject:
          description: AS2 Subject Header
          example: example
          type: string
        uuid:
          description: UUID assigned to this message.
          example: example
          type: string
      type: object
      x-docs: |
        An As2 Incoming Message is created for each individual AS2 file transfer incoming from a Partner. It contains the message details and tracks the lifecycle status with milestones of the transfer.
    As2OutgoingMessageEntity:
      description: List As2 Outgoing Messages
      properties:
        activity_log:
          description: JSON Structure of the activity log.
          example: example
          type: string
        as2_from:
          description: AS2 FROM
          example: example
          type: string
        as2_partner_id:
          description: Id of the AS2 Partner associated with this message.
          example: 1
          format: int32
          type: integer
        as2_station_id:
          description: Id of the AS2 Station associated with this message.
          example: 1
          format: int32
          type: integer
        as2_to:
          description: AS2 TO
          example: example
          type: string
        attachment_filename:
          description: Filename of the file being sent.
          example: example
          type: string
        body_size:
          description: Encrypted Payload Body Size
          example: example
          type: string
        created_at:
          description: Message creation date/time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        date:
          description: Date Header
          example: example
          type: string
        encrypted_uri:
          description: URL to download the encrypted signed smime that is to sent as AS2 body
          example: example
          type: string
        http_headers:
          description: HTTP Headers sent with this message.
          example:
            key: example value
          type: object
          x-object-type:
            key_type: string
            type: hash
            value_type: string
        http_response_code:
          description: HTTP Response Code received for this message
          example: example
          type: string
        http_response_headers:
          description: HTTP Headers received for this message.
          example:
            key: example value
          type: object
          x-object-type:
            key_type: string
            type: hash
            value_type: string
        http_transmission_duration:
          description: HTTP transmission duration in seceonds
          example: 1
          format: double
          type: number
        id:
          description: Id of the AS2 Partner.
          example: 1
          format: int32
          type: integer
        mdn_message_id_matched:
          description: MDN message id matched?
          example: true
          type: boolean
        mdn_mic_matched:
          description: MDN MIC matched?
          example: true
          type: boolean
        mdn_processing_success:
          description: MDN disposition indicate a successful processing?
          example: true
          type: boolean
        mdn_received:
          description: Did the partner give a response body?
          example: true
          type: boolean
        mdn_response_uri:
          description: URL to download the http response body
          example: example
          type: string
        mdn_signature_verified:
          description: MDN signature verified?
          example: true
          type: boolean
        mdn_valid:
          description: Is the response in MDN format?
          example: true
          type: boolean
        message_id:
          description: AS2 Message Id
          example: example
          type: string
        mic:
          description: AS2 Message Integrity Check SHA1
          example: example
          type: string
        mic_sha_256:
          description: AS2 Message Integrity Check SHA256
          example: example
          type: string
        processing_result:
          description: Result of processing.
          enum:
            - not_started
            - send_failed
            - send_success
            - send_success_mdn_invalid
            - send_success_mic_mismatch
            - send_success_message_id_mismatch
            - send_success_signature_mismatch
            - send_success_processing_failure
            - send_failed_unknown_host
            - send_failed_bad_http_response_code
            - send_failed_ssl_error
            - send_failed_connection_refused
          example: example
          type: string
        processing_result_description:
          description: Result of processing description.
          example: example
          type: string
        raw_uri:
          description: URL to download the original file contents
          example: example
          type: string
        smime_signed_uri:
          description: URL to download the file contents as smime with signature
          example: example
          type: string
        smime_uri:
          description: URL to download the file contents encoded as smime
          example: example
          type: string
        uuid:
          description: UUID assigned to this message.
          example: example
          type: string
      type: object
      x-docs: |
        An As2 Outgoing Message is created for each individual AS2 file transfer out to a Partner. It contains the message details and tracks the lifecycle status with milestones of the transfer.
    As2PartnerEntity:
      description: Create As2 Partner
      properties:
        as2_station_id:
          description: Id of the AS2 Station associated with this partner.
          example: 1
          format: int32
          type: integer
        enable_dedicated_ips:
          description: "`true` if remote server only accepts connections from dedicated IPs"
          example: true
          type: boolean
        hex_public_certificate_serial:
          description: Serial of public certificate used for message security in hex format.
          example: A5:EB:C1:95:DC:D8:2B:E7
          type: string
        id:
          description: Id of the AS2 Partner.
          example: 1
          format: int32
          type: integer
        name:
          description: The partner's formal AS2 name.
          example: AS2 Partner Name
          type: string
        public_certificate_issuer:
          description: Issuer of public certificate used for message security.
          example: example
          type: string
        public_certificate_md5:
          description: MD5 hash of public certificate used for message security.
          example: example
          type: string
        public_certificate_not_after:
          description: Not after value of public certificate used for message security.
          example: example
          type: string
        public_certificate_not_before:
          description: Not before value of public certificate used for message security.
          example: example
          type: string
        public_certificate_serial:
          description: Serial of public certificate used for message security.
          example: example
          type: string
        public_certificate_subject:
          description: Subject of public certificate used for message security.
          example: example
          type: string
        server_certificate:
          description: Remote server certificate security setting
          enum:
            - require_match
            - allow_any
          example: require_match
          type: string
        uri:
          description: Public URI for sending AS2 message to.
          example: example
          type: string
      type: object
      x-docs: |
        As2 Partner defines a Files.com hosted AS2 server that can receive data into Files.com and send data from Files.com
    As2StationEntity:
      description: Create As2 Station
      properties:
        domain:
          description: The station's AS2 domain name.
          example: domain.test
          type: string
        hex_public_certificate_serial:
          description: Serial of public certificate used for message security in hex format.
          example: A5:EB:C1:95:DC:D8:2B:E7
          type: string
        id:
          description: Id of the AS2 Station.
          example: 1
          format: int32
          type: integer
        name:
          description: The station's formal AS2 name.
          example: AS2 Station Name
          type: string
        private_key_md5:
          description: MD5 hash of private key used for message security.
          example: example
          type: string
        private_key_password_md5:
          description: MD5 hash of private key password used for message security.
          example: example
          type: string
        public_certificate_issuer:
          description: Issuer of public certificate used for message security.
          example: example
          type: string
        public_certificate_md5:
          description: MD5 hash of public certificate used for message security.
          example: example
          type: string
        public_certificate_not_after:
          description: Not after value of public certificate used for message security.
          example: example
          type: string
        public_certificate_not_before:
          description: Not before value of public certificate used for message security.
          example: example
          type: string
        public_certificate_serial:
          description: Serial of public certificate used for message security.
          example: example
          type: string
        public_certificate_subject:
          description: Subject of public certificate used for message security.
          example: example
          type: string
        uri:
          description: Public URI for sending AS2 message to.
          example: example
          type: string
      type: object
      x-docs: |
        As2 Station defines a remote AS2 server that can send data into Files.com and received data from Files.com
    AutoEntity:
      properties:
        dynamic:
          properties: {}
          type: object
      type: object
      x-docs: null
    AutomationEntity:
      description: List Automations
      properties:
        automation:
          description: Automation type
          enum:
            - create_folder
            - request_file
            - request_move
            - copy_newest_file
            - delete_file
            - copy_file
            - move_file
            - as2_send
            - run_sync
          example: create_folder
          type: string
        deleted:
          description: Indicates if the automation has been deleted.
          example: true
          type: boolean
        description:
          description: Description for the this Automation.
          example: example
          type: string
        destination_replace_from:
          description: If set, this string in the destination path will be replaced with the value in `destination_replace_to`.
          example: example
          type: string
        destination_replace_to:
          description: If set, this string will replace the value `destination_replace_from` in the destination filename. You can use special patterns here.
          example: example
          type: string
        destinations:
          description: Destination Path
          example:
            - destination
          items:
            example:
              - destination
            type: string
          type: array
        disabled:
          description: If true, this automation will not run.
          example: true
          type: boolean
        group_ids:
          description: IDs of Groups for the Automation (i.e. who to Request File from)
          example:
            - 1
            - 2
          items:
            example:
              - 1
              - 2
            format: int32
            type: integer
          type: array
        id:
          description: Automation ID
          example: 1
          format: int32
          type: integer
        interval:
          description: "If trigger is `daily`, this specifies how often to run this automation.  One of: `day`, `week`, `week_end`, `month`, `month_end`, `quarter`, `quarter_end`, `year`, `year_end`"
          example: week
          type: string
        last_modified_at:
          description: Time when automation was last modified. Does not change for name or description updates.
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        name:
          description: Name for this automation.
          example: example
          type: string
        path:
          description: Path on which this Automation runs.  Supports globs.
          example: example
          type: string
        recurring_day:
          description: "If trigger type is `daily`, this specifies a day number to run in one of the supported intervals: `week`, `month`, `quarter`, `year`."
          example: 25
          format: int32
          type: integer
        schedule:
          description: If trigger is `custom_schedule`, Custom schedule description for when the automation should be run.
          example: example
          type: object
        source:
          description: Source Path
          example: example
          type: string
        sync_ids:
          description: IDs of remote sync folder behaviors to run by this Automation
          example:
            - 1
            - 2
          items:
            example:
              - 1
              - 2
            format: int32
            type: integer
          type: array
        trigger:
          description: "How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, `email`, or `action`."
          enum:
            - realtime
            - daily
            - custom_schedule
            - webhook
            - email
            - action
          example: realtime
          type: string
        trigger_actions:
          description: If trigger is `action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy
          example:
            - create
          items:
            example:
              - create
            type: string
          type: array
        user_id:
          description: User ID of the Automation's creator.
          example: 1
          format: int32
          type: integer
        user_ids:
          description: IDs of Users for the Automation (i.e. who to Request File from)
          example:
            - 1
            - 2
          items:
            example:
              - 1
              - 2
            format: int32
            type: integer
          type: array
        value:
          description: A Hash of attributes specific to the automation type.
          example:
            limit: "1"
          type: object
          x-object-type:
            key_type: string
            type: hash
            value_type: string
        webhook_url:
          description: If trigger is `webhook`, this is the URL of the webhook to trigger the Automation.
          example: https://app.files.com/api/webhooks/abc123
          type: string
      type: object
      x-docs: |
        Automations allow you to automate workflows on your Files.com site.

        Automations are different from Behaviors because Behaviors are associated with a current folder, while Automations apply across your entire site.
        Although Automations may have a Path specified, it can be a glob (which includes wildcards), which affects multiple folders.
        Additionally, paths in Automations can refer to folders which don't yet exist.

        Automations are never removed when folders are removed, while Behaviors are removed when the associated folder is removed.


        ## Automation Triggers

        Automations can be triggered in the following ways:

        * `custom_schedule` : The automation will run according to the custom schedule parameters for `days_of_week` (0-based) and `times_of_day`. A time zone may be specified via `time_zone` in Rails TimeZone name format.
        * `daily` : The automation will run once each day
        * `realtime` : The automation will run any time a local file (not stored in a remote mount folder) is created, updated, or deleted.
        * `webhook` : the automation will run when a request is sent to the corresponding webhook URL.
        * `action` : The automation will run when a specific action happens, e.g. a file is created, deleted, or downloaded.

        Future enhancements will allow Automations to be triggered by an incoming email, or by other services.

        Currently, all Automation types support all triggers, with the following exceptions: The `realtime` trigger is only supported by the `Request File` and `Request Move` Automations.
        We plan to add support for this trigger to all Automation types. If you have a use case for the `realtime` trigger on an Automation that's not currently supported, please contact us and tell us more about your situation.


        ## Automation Types

        There are currently five types of automations:  Create Folder, Copy File, Delete File, Request File, and Request Move.


        ### Create Folder

        Creates the folder with named by `destinations` in the path named by `path`.
        Destination may include formatting parameters to insert the date/time into the destination name.

        Example Use case:  Our business files sales tax for each division in 11 states every quarter.
        I want to create the folders where those sales tax forms and data will be collected.

        I could create a Create Folder automation as follows:

        * Trigger: `daily`
        * Interval: `quarter_end`
        * Path: `/AccountingAndTax/SalesTax/State/*/`
        * Destinations: `%Y/Quarter-ending-%m-%d`


        ### Delete File

        Deletes the file with path matching `source` (wildcards allowed) in the path named by `path`.


        ### Copy File

        Copies files in the folder named by `path` to the path specified in `destinations`.
        If the parameter `source` exists, the automation will only fire on files matching the source (wildcards allowed).
        If the parameter `limit` exists, the automation will only copy the newest `limit` files.


        ### Move File

        Moves files in the folder named by `path` to the path specified in `destinations`.
        If the parameter `source` exists, the automation will only fire on files matching the source (wildcards allowed).
        If the parameter `limit` exists, the automation will only move the newest `limit` files.


        ### Request File

        The Request File automation requests a file (optionally from a specific user) if it does not exist.

        It requests the file named in the parameter `destinations` in the path named by the parameter `path`.
        If the parameter `source` exists, the automation will only fire if a file in that path exists.
        Destinations may include formatting parameters that are backreferences to the path.

        Example Use case: Continuing our Sales Tax example from above, once the folders are
        created for the 11 states, our Bookkeeper needs to upload a `.xlsx` file
        containing the sales records for each state.

        We can create a Request File automation as follows:

        * Trigger: `realtime`
        * Path: `/AccountingAndTax/SalesTax/State/*/*/*/`
        * Destinations: `SalesByState-%p3-%p2-%p1`
        * Group IDs: `123` (representing the Bookkeepers group)

        Note that the %p1, %p2 amd %p3 are references back into the folder hierarchy
        (parent 1, parent 2, etc), so that the file will be named with the state
        name and the quarter name in the file.  Example: `SalesByState-NV-2017-Quarter-ending-Dec-31.xlsx`

        Now, let's say that our Tax Accountant is in charge of filing the actual
        state tax return once the Excel doc is completed by the Bookkeeper.  We
        can create another Automation to let him know when it's his turn
        to operate:

        * Trigger: `realtime`
        * Path: `/AccountingAndTax/SalesTax/State/*/*/%/`
        * Source: `SalesByState-%p3-%p2-%p1`
        * Destinations: `StateSalesTaxReturn-Unsigned-%p3-%p2-%p1`
        * Group IDs: `124` (representing the Tax Accountants group)
            Group: Tax Accountants

        So the accountant will take the excel from the bookkeeper, generate the
        state tax return, and then upload it as a PDF, ready for the CFO to
        sign.  How does the CFO know when to sign?  You guessed it, another
        Automation will let him know when it's ready:

        * Trigger: `realtime`
        * Path: `/AccountingAndTax/**/`
        * Source: `*-Unsigned-*`
        * Destination Replace From: `-Unsigned-`
        * Destination Replace To: `-Signed-`
        * Group IDs: `125` (representing the CFO group)

        This Automation looks in every nested subfolder of `AcccountingAndTax`
        (that's the `/**/` in the path).  And it looks for any filename containing
        the filename string `-Unsigned-`.  That's the cue to the CFO that something needs his
        signature.

        Rather than specifying the exact destination filename, we can specify a Destination Replace From
        and To in order to generate the new filename from the old filename.

        So if `StateSalesTaxReturn-Unsigned-NV-2017-q4.pdf` is uploaded, this
        Automation will trigger and expect the file `StateSalesTaxReturn-Signed-NV-2017-q4.pdf`
        from the CFO.

        You could then put in place another rule for the Tax Accountant or
        Bookkeeper to go do the actual filing once a signature is in place.


        ### Request Move

        The Request Move automation requests that a file be moved.  This is an alternate way to implement approval workflows.

        A variant of the Request File automation, this Automation creates requests that a
        user or group move a file, presumably indicating that they've taken some action on it.

        Example Use case: Action Verb uses Files.com to collect invoices from its Contractors, who
        upload new invoices into their own folder structure that only they have
        permissions to.  That structure looks like this:

        * `/Accounts Payable/Contractors/[contractor]/New/`
        * `/Accounts Payable/Contractors/[contractor]/Paid/`

        The contractor has full permissions to the `New/` folder, but only
        read-only permissions to `Paid/`.  This allows them to upload and update
        new invoices, but only view invoices that are already paid.  (Cool!)

        But, as we grow to dozens of contractors, it becomes a tough task for
        Accounts Payable to check all the New folders daily.

        To ensure Contractors get paid timely, we might set up Request Move automation:

        * Trigger: `realtime`
        * Path: `/AccountsPayable/Contractors/*/New/`
        * Source: `*`
        * Destinations: `../Paid/`
        * Group IDs: `126` (representing the Accounts Payable group)


        ### Help us build the future of Automations

        Do you have an idea for something that would work well as a Files.com Automation?  Let us know!
        We are actively improving the types of automations offered on our platform.
    AutomationRunEntity:
      description: List Automation Runs
      properties:
        automation_id:
          description: ID of the associated Automation.
          example: 1
          format: int32
          type: integer
        completed_at:
          description: Automation run completion/failure date/time.
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        created_at:
          description: Automation run start date/time.
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        id:
          description: ID.
          example: 1
          format: int32
          type: integer
        status:
          description: The success status of the AutomationRun. One of `running`, `success`, `partial_failure`, or `failure`.
          enum:
            - running
            - success
            - partial_failure
            - failure
            - skipped
          example: success
          type: string
        status_messages_url:
          description: Link to status messages log file.
          example: https://www.example.com/log_file.txt
          type: string
      type: object
      x-docs: |
        AutomationRuns represent a single execution of a given Automation.
    BandwidthSnapshotEntity:
      description: List Bandwidth Snapshots
      properties:
        bytes_received:
          description: Site bandwidth report bytes received
          example: 1
          format: double
          type: number
        bytes_sent:
          description: Site bandwidth report bytes sent
          example: 1
          format: double
          type: number
        id:
          description: Site bandwidth ID
          example: 1
          format: int32
          type: integer
        logged_at:
          description: Time the site bandwidth report was logged
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        requests_get:
          description: Site bandwidth report get requests
          example: 1
          format: double
          type: number
        requests_other:
          description: Site bandwidth report other requests
          example: 1
          format: double
          type: number
        requests_put:
          description: Site bandwidth report put requests
          example: 1
          format: double
          type: number
        sync_bytes_received:
          description: Site sync bandwidth report bytes received
          example: 1
          format: double
          type: number
        sync_bytes_sent:
          description: Site sync bandwidth report bytes sent
          example: 1
          format: double
          type: number
      type: object
      x-docs: null
    BehaviorEntity:
      description: List Behaviors
      properties:
        attachment_url:
          description: URL for attached file
          example: example
          type: string
        behavior:
          description: Behavior type.
          example: webhook
          type: string
        description:
          description: Description for this behavior.
          example: example
          type: string
        id:
          description: Folder behavior ID
          example: 1
          format: int32
          type: integer
        name:
          description: Name for this behavior.
          example: example
          type: string
        path:
          description: Folder path
          example: example
          type: string
        value:
          description: Settings for this behavior.  See the section above for an example value to provide here.  Formatting is different for each Behavior type.  May be sent as nested JSON or a single JSON-encoded string.  If using XML encoding for the API call, this data must be sent as a JSON-encoded string.
          example:
            key: example value
          type: object
          x-object-type:
            key_type: string
            type: hash
            value_type: string
      type: object
      x-docs: |
        Behaviors are the API resource for what are also known as Folder Settings.  Every behavior is associated with a folder.

        Depending on the behavior, it may also operate on child folders.  It may be overridable at the child folder level or maybe can be added to at the child folder level.  The exact options for each behavior type are explained in the table below.

        Additionally, some behaviors are visible to non-admins, and others are even settable by non-admins.  All the details are below.

        Each behavior uses a different format for storings its settings value.  Next to each behavior type is an example value.  Our API and SDKs currently require that the value for behaviors be sent as raw JSON within the `value` field.  Our SDK generator and API documentation generator doesn't fully keep up with this requirement, so if you need any help finding the exact syntax to use for your language or use case, just reach out.
    BundleDownloadEntity:
      description: List Bundle Downloads
      properties:
        bundle_registration:
          $ref: "#/components/schemas/BundleRegistrationEntity"
        created_at:
          description: Download date/time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        download_method:
          description: Download method (file or full_zip)
          enum:
            - file
            - full_zip
          example: file
          type: string
        path:
          description: Download path
          example: a/b/test.txt
          type: string
      type: object
      x-docs: null
    BundleEntity:
      description: Create Bundle
      properties:
        clickwrap_body:
          description: Legal text that must be agreed to prior to accessing Bundle.
          example: "[Legal text]"
          type: string
        clickwrap_id:
          description: ID of the clickwrap to use with this bundle.
          example: 1
          format: int32
          type: integer
        code:
          description: Bundle code.  This code forms the end part of the Public URL.
          example: abc123
          type: string
        created_at:
          description: Bundle created at date/time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        description:
          description: Public description
          example: The public description of the bundle.
          type: string
        dont_separate_submissions_by_folder:
          description: "Do not create subfolders for files uploaded to this share. Note: there are subtle security pitfalls with allowing anonymous uploads from multiple users to live in the same folder. We strongly discourage use of this option unless absolutely required."
          example: true
          type: boolean
        expires_at:
          description: Bundle expiration date/time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        form_field_set:
          $ref: "#/components/schemas/FormFieldSetEntity"
        has_inbox:
          description: Does this bundle have an associated inbox?
          example: true
          type: boolean
        id:
          description: Bundle ID
          example: 1
          format: int32
          type: integer
        inbox_id:
          description: ID of the associated inbox, if available.
          example: 1
          format: int32
          type: integer
        max_uses:
          description: Maximum number of times bundle can be accessed
          example: 1
          format: int32
          type: integer
        note:
          description: Bundle internal note
          example: The internal note on the bundle.
          type: string
        password_protected:
          description: Is this bundle password protected?
          type: boolean
        path_template:
          description: Template for creating submission subfolders. Can use the uploader's name, email address, ip, company, and any custom form data.
          example: "{{name}}_{{ip}}"
          type: string
        paths:
          description: A list of paths in this bundle.  For performance reasons, this is not provided when listing bundles.
          example:
            - file.txt
          items:
            example:
              - file.txt
            type: string
          type: array
        permissions:
          description: Permissions that apply to Folders in this Share Link.
          enum:
            - read
            - write
            - read_write
            - full
            - none
            - preview_only
          example: read
          type: string
        preview_only:
          description: Restrict users to previewing files only?
          type: boolean
        require_registration:
          description: Show a registration page that captures the downloader's name and email address?
          type: boolean
        require_share_recipient:
          description: Only allow access to recipients who have explicitly received the share via an email sent through the Files.com UI?
          type: boolean
        send_email_receipt_to_uploader:
          description: "Send delivery receipt to the uploader. Note: For writable share only"
          example: true
          type: boolean
        skip_company:
          description: BundleRegistrations can be saved without providing company?
          example: true
          type: boolean
        skip_email:
          description: BundleRegistrations can be saved without providing email?
          example: true
          type: boolean
        skip_name:
          description: BundleRegistrations can be saved without providing name?
          example: true
          type: boolean
        url:
          description: Public URL of Share Link
          example: https://subdomain.files.com/f/12345678
          type: string
        user_id:
          description: Bundle creator user ID
          example: 1
          format: int32
          type: integer
        username:
          description: Bundle creator username
          example: user
          type: string
        watermark_attachment:
          $ref: "#/components/schemas/ImageEntity"
        watermark_value:
          description: Preview watermark settings applied to all bundle items. Uses the same keys as Behavior.value
          example:
            key: example value
          type: object
          x-object-type:
            key_type: string
            type: hash
            value_type: string
      type: object
      x-docs: |
        Bundles are the API/SDK term for the feature called Share Links in the web interface.
        The API provides the full set of actions related to Share Links, including sending them via E-Mail.

        Please note that we very closely monitor the E-Mailing feature and any abuse will result in disabling of your site.
    BundleNotificationEntity:
      description: List Bundle Notifications
      properties:
        bundle_id:
          description: Bundle ID to notify on
          example: 1
          format: int32
          type: integer
        id:
          description: Bundle Notification ID
          example: 1
          format: int32
          type: integer
        notify_on_registration:
          description: Triggers bundle notification when a registration action occurs for it.
          example: true
          type: boolean
        notify_on_upload:
          description: Triggers bundle notification when a upload action occurs for it.
          example: true
          type: boolean
        user_id:
          description: The id of the user to notify.
          example: 1
          format: int32
          type: integer
      type: object
      x-docs: |
        Bundle notifications are emails sent out to users when certain actions are performed on or within a shared set of files and folders.
    BundleRecipientEntity:
      description: List Bundle Recipients
      properties:
        company:
          description: The recipient's company.
          example: Acme Inc.
          type: string
        name:
          description: The recipient's name.
          example: John Doe
          type: string
        note:
          description: A note sent to the recipient with the bundle.
          example: Some note.
          type: string
        recipient:
          description: The recipient's email address.
          example: john.doe@example.com
          type: string
        sent_at:
          description: When the Bundle was shared with this recipient.
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
      type: object
      x-docs: |
        Bundle recipients are people who have had a bundle shared with them. A Bundle can be re-shared
        with a BundleRecipient by sending a create request with the inbox_id, recipient email address,
        and share_after_create => true.
    BundleRegistrationEntity:
      description: List Bundle Registrations
      properties:
        bundle_code:
          description: Bundle URL code
          example: example
          type: string
        bundle_id:
          description: Id of associated bundle
          example: 1
          format: int32
          type: integer
        bundle_recipient_id:
          description: Id of associated bundle recipient
          example: 1
          format: int32
          type: integer
        clickwrap_body:
          description: Clickwrap text that was shown to the registrant
          example: example
          type: string
        code:
          description: Registration cookie code
          example: abc123
          type: string
        company:
          description: Registrant company name
          example: Action Verb
          type: string
        created_at:
          description: Registration creation date/time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        email:
          description: Registrant email address
          example: john.doe@files.com
          type: string
        form_field_data:
          description: Data for form field set with form field ids as keys and user data as values
          example:
            key: example value
          type: object
          x-object-type:
            key_type: string
            type: hash
            value_type: string
        form_field_set_id:
          description: Id of associated form field set
          example: 1
          format: int32
          type: integer
        inbox_code:
          description: InboxRegistration cookie code, if there is an associated InboxRegistration
          example: abc123
          type: string
        ip:
          description: Registrant IP Address
          example: 10.1.1.1
          type: string
        name:
          description: Registrant name
          example: account
          type: string
      type: object
      x-docs: |
        BundleRegistrations record when a Bundle user fills out the form to access the bundle.
    ClickwrapEntity:
      description: Create Clickwrap
      properties:
        body:
          description: Body text of Clickwrap (supports Markdown formatting).
          example: "[Legal body text]"
          type: string
        id:
          description: Clickwrap ID
          example: 1
          format: int32
          type: integer
        name:
          description: Name of the Clickwrap agreement (used when selecting from multiple Clickwrap agreements.)
          example: Example Site NDA for Files.com Use
          type: string
        use_with_bundles:
          description: Use this Clickwrap for Bundles?
          enum:
            - none
            - available
            - require
          example: example
          type: string
        use_with_inboxes:
          description: Use this Clickwrap for Inboxes?
          enum:
            - none
            - available
            - require
          example: example
          type: string
        use_with_users:
          description: "Use this Clickwrap for User Registrations?  Note: This only applies to User Registrations where the User is invited to your Files.com site using an E-Mail invitation process where they then set their own password."
          enum:
            - none
            - require
          example: example
          type: string
      type: object
      x-docs: |
        A Clickwrap is a legal agreement (such as an NDA or Terms of Use) that your Users and/or Bundle/Inbox participants will need to agree to via a "Clickwrap" UI before accessing the site, bundle, or inbox.
    DnsRecordEntity:
      description: Show site DNS configuration.
      properties:
        domain:
          description: DNS record domain name
          example: my-custom-domain.com
          type: string
        id:
          description: Unique label for DNS record; used by Zapier and other integrations.
          example: example
          type: string
        rrtype:
          description: DNS record type
          example: CNAME
          type: string
        value:
          description: DNS record value
          example: mysite.files.com
          type: string
      type: object
      x-docs: |
        This resource allows retrieving the DNS records that are needed to configure custom DNS for a Site.
    ErrorsEntity:
      properties:
        fields:
          description: A list of fields where errors occur
          example: []
          items:
            example: []
            type: string
          type: array
        messages:
          description: A list of error messages
          example: []
          items:
            example: []
            type: string
          type: array
      type: object
      x-docs: null
    ExternalEventEntity:
      description: List External Events
      properties:
        body:
          description: Event body
          example: example
          type: string
        body_url:
          description: Link to log file.
          example: example
          type: string
        bytes_synced:
          description: For sync events, the total number of bytes synced.
          example: 1
          format: int32
          type: integer
        created_at:
          description: External event create date/time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        errored_files:
          description: For sync events, the number of files that encountered errors.
          example: 1
          format: int32
          type: integer
        event_type:
          description: Type of event being recorded.
          enum:
            - ldap_sync
            - remote_server_sync
            - lockout
            - ldap_login
            - saml_login
            - client_log
            - pending_work
          example: example
          type: string
        folder_behavior_id:
          description: Folder Behavior ID
          example: 1
          format: int32
          type: integer
        id:
          description: Event ID
          example: 1
          format: int32
          type: integer
        remote_server_type:
          description: Associated Remote Server type, if any
          example: example
          type: string
        status:
          description: Status of event.
          enum:
            - success
            - failure
            - partial_failure
            - in_progress
            - skipped
          example: example
          type: string
        successful_files:
          description: For sync events, the number of files handled successfully.
          example: 1
          format: int32
          type: integer
      type: object
      x-docs: |
        ExternalEvents record activity such as logins, credential syncs, and lockouts.
    FileActionEntity:
      description: Move file/folder
      properties:
        file_migration_id:
          description: If status is pending, this is the id of the FileMigration to check for status updates.
          example: 1
          format: int32
          type: integer
        status:
          description: Status of file operation.
          example: pending
          type: string
      type: object
      x-docs: null
    FileCommentEntity:
      description: List File Comments by path
      properties:
        body:
          description: Comment body.
          example: What a great file!
          type: string
        id:
          description: File Comment ID
          example: 1
          format: int32
          type: integer
        reactions:
          description: Reactions to this comment.
          example:
            - null
          items:
            $ref: "#/components/schemas/FileCommentReactionEntity"
          type: array
      type: object
      x-docs: |
        File Comments are comments attached to a file by a user.
    FileCommentReactionEntity:
      description: Create File Comment Reaction
      properties:
        emoji:
          description: Emoji used in the reaction.
          example: 👍
          type: string
        id:
          description: Reaction ID
          example: 1
          format: int32
          type: integer
      type: object
      x-docs: |
        File Comment Reactionss are reactions that are attached to a comment on a file.
    FileEntity:
      description: List Folders by path
      properties:
        crc32:
          description: File CRC32 checksum. This is sometimes delayed, so if you get a blank response, wait and try again.
          example: "70976923"
          type: string
        created_at:
          description: File created date/time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        display_name:
          description: File/Folder display name
          example: file.txt
          type: string
        download_uri:
          description: Link to download file. Provided only in response to a download request.
          example: https://mysite.files.com/...
          type: string
        is_locked:
          description: Is this folder locked and unable to be modified?
          example: true
          type: boolean
        md5:
          description: File MD5 checksum. This is sometimes delayed, so if you get a blank response, wait and try again.
          example: 17c54824e9931a4688ca032d03f6663c
          type: string
        mime_type:
          description: MIME Type.  This is determined by the filename extension and is not stored separately internally.
          example: application/octet-stream
          type: string
        mtime:
          description: File last modified date/time, according to the server.  This is the timestamp of the last Files.com operation of the file, regardless of what modified timestamp was sent.
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        path:
          description: File/Folder path
          example: path/file.txt
          type: string
        permissions:
          description: A short string representing the current user's permissions.  Can be `r`,`w`,`d`, `l` or any combination
          example: rwd
          type: string
        preview:
          $ref: "#/components/schemas/PreviewEntity"
        preview_id:
          description: File preview ID
          example: 1
          format: int32
          type: integer
        priority_color:
          description: Bookmark/priority color of file/folder
          example: red
          type: string
        provided_mtime:
          description: File last modified date/time, according to the client who set it.  Files.com allows desktop, FTP, SFTP, and WebDAV clients to set modified at times.  This allows Desktop<->Cloud syncing to preserve modified at times.
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        region:
          description: Region location
          example: us-east-1
          type: string
        size:
          description: File/Folder size
          example: 1024
          format: int32
          type: integer
        subfolders_locked?:
          description: Are subfolders locked and unable to be modified?
          example: true
          type: boolean
        type:
          description: "Type: `directory` or `file`."
          example: file
          type: string
      type: object
      x-docs: null
    FileMigrationEntity:
      description: Show File Migration
      properties:
        dest_path:
          description: Destination path
          example: MyFolder
          type: string
        files_moved:
          description: Number of files processed
          example: 1
          format: int32
          type: integer
        files_total:
          description: "Deprecated: used to return a count of the applicable files.  Currently returns 0 always.  On remote servers, it is not possible to reliably determine the number of affected files for every migration operation."
          example: 1
          format: int32
          type: integer
        id:
          description: File migration ID
          example: 1
          format: int32
          type: integer
        log_url:
          description: Link to download the log file for this migration.
          example: https://www.example.com/log_file
          type: string
        operation:
          description: The type of operation
          enum:
            - delete
            - move
            - copy
            - regional_migration
          example: move
          type: string
        path:
          description: Source path
          example: MyFolder
          type: string
        region:
          description: Region
          example: USA
          type: string
        status:
          description: Status
          enum:
            - pending
            - counting
            - processing
            - completed
            - processing_subfolders
            - finishing
            - creating_dest_folder
            - waiting_for_other_jobs
            - waiting_for_all_files
            - waiting_for_pending_subfolders
            - waiting_for_all_subfolders
            - failed
            - waiting_for_enqueued_operations
            - unused
            - processing_recursively
            - removing_deferred_folders
          example: complete
          type: string
      type: object
      x-docs: |
        FileMigrations represent background operations on one or more files, such as a copy or a region migration.

        If no `operation` or `dest_path` is present, then the record represents a region migration.
    FileUploadPartEntity:
      description: Begin file upload
      properties:
        action:
          description: Type of upload
          example: multipart
          type: string
        ask_about_overwrites:
          description: If `true`, this file exists and you may wish to ask the user for overwrite confirmation
          example: true
          type: boolean
        available_parts:
          description: Number of parts in the upload
          example: 1
          format: int32
          type: integer
        expires:
          description: Date/time of when this Upload part expires and the URL cannot be used any more
          example: example
          type: string
        headers:
          description: Additional upload headers to provide as part of the upload
          example:
            key: example value
          type: object
          x-object-type:
            key_type: string
            type: hash
            value_type: string
        http_method:
          description: HTTP Method to use for uploading the part, usually `PUT`
          example: PUT
          type: string
        next_partsize:
          description: Size in bytes for this part
          example: 1
          format: int32
          type: integer
        parallel_parts:
          description: If `true`, multiple parts may be uploaded in parallel.  If `false`, be sure to only upload one part at a time, in order.
          example: true
          type: boolean
        parameters:
          description: Additional HTTP parameters to send with the upload
          example:
            key: example value
          type: object
          x-object-type:
            key_type: string
            type: hash
            value_type: string
        part_number:
          description: Number of this upload part
          example: 1
          format: int32
          type: integer
        partsize:
          description: Size in bytes for the next upload part
          example: 1
          format: int32
          type: integer
        path:
          description: New file path
          example: path
          type: string
        ref:
          description: Reference name for this upload part
          example: upload-1
          type: string
        retry_parts:
          description: If `true`, parts may be retried. If `false`, a part cannot be retried and the upload should be restarted.
          example: true
          type: boolean
        send:
          description: Content-Type and File to send
          example:
            key: example value
          type: object
          x-object-type:
            key_type: string
            type: hash
            value_type: string
        upload_uri:
          description: URI to upload this part to
          example: example
          type: string
      type: object
      x-docs: null
    FormFieldEntity:
      properties:
        default_option:
          description: Default option for radio and dropdown
          example: red
          type: string
        field_type:
          description: Type of Field
          enum:
            - text
            - text_area
            - dropdown
            - radio
          example: text
          type: string
        form_field_set_id:
          description: Form field set id
          example: 1
          format: int32
          type: integer
        help_text:
          description: Help text to be displayed
          example: Help Text
          type: string
        id:
          description: Form field id
          example: 1
          format: int32
          type: integer
        label:
          description: Label to be displayed
          example: Sample Label
          type: string
        options_for_select:
          description: Options to display for radio and dropdown
          example:
            - red
            - green
            - blue
          items:
            example:
              - red
              - green
              - blue
            type: string
          type: array
        required:
          description: Is this a required field?
          example: true
          type: boolean
      type: object
      x-docs: null
    FormFieldSetEntity:
      description: List Form Field Sets
      properties:
        form_fields:
          description: Associated form fields
          example:
            - null
          items:
            $ref: "#/components/schemas/FormFieldEntity"
          type: array
        form_layout:
          description: Layout of the form
          example:
            - 1
            - 2
            - 3
            - 4
          items:
            example:
              - 1
              - 2
              - 3
              - 4
            format: int32
            type: integer
          type: array
        id:
          description: Form field set id
          example: 1
          format: int32
          type: integer
        skip_company:
          description: Any associated InboxRegistrations or BundleRegistrations can be saved without providing company
          example: true
          type: boolean
        skip_email:
          description: Any associated InboxRegistrations or BundleRegistrations can be saved without providing email
          example: true
          type: boolean
        skip_name:
          description: Any associated InboxRegistrations or BundleRegistrations can be saved without providing name
          example: true
          type: boolean
        title:
          description: Title to be displayed
          example: Sample Form Title
          type: string
      type: object
      x-docs: |2
            Form Field Sets define a custom forms to be used for bundle and inbox registrations.
            
            Each Form Field Set contains one or more Form Fields. A form and all of its form fields are submitted in a single create request. The order of form fields in the array is the order they will be displayed.
            
            Once created, a form field set can then be associated with one or more bundle(s) and/or inbox(s). Once associated, you will be required to submit well-formatted form-data when creating a bundle-registration or inbox registration.
    GroupEntity:
      description: List Groups
      properties:
        admin_ids:
          description: Comma-delimited list of user IDs who are group administrators (separated by commas)
          example: "1"
          type: string
        id:
          description: Group ID
          example: 1
          format: int32
          type: integer
        name:
          description: Group name
          example: owners
          type: string
        notes:
          description: Notes about this group
          example: example
          type: string
        user_ids:
          description: Comma-delimited list of user IDs who belong to this group (separated by commas)
          example: "1"
          type: string
        usernames:
          description: Comma-delimited list of usernames who belong to this group (separated by commas)
          example: example
          type: string
      type: object
      x-docs: |
        Groups are a powerful tool for permissions and user management on Files.com.  Users can belong to multiple groups.

        All permissions can be managed via Groups, and Groups can also be synced to your identity platform via LDAP or SCIM.

        Files.com's Group Admin feature allows you to define Group Admins, who then have access to add and remove users within their groups.
    GroupUserEntity:
      description: Create Group User
      properties:
        admin:
          description: Is this user an administrator of this group?
          example: true
          type: boolean
        group_id:
          description: Group ID
          example: 1
          format: int32
          type: integer
        group_name:
          description: Group name
          example: example
          type: string
        user_id:
          description: User ID
          example: 1
          format: int32
          type: integer
        usernames:
          description: A list of usernames for users in this group
          example:
            - user
          items:
            example:
              - user
            type: string
          type: array
      type: object
      x-docs: |
        A GroupUser describes the membership of a User within a Group.

        ## Creating GroupUsers
        GroupUsers can be created via the normal `create` action. When using the `update` action, if the
        GroupUser record does not exist for the given user/group IDs it will be created.
    HistoryExportEntity:
      description: Show History Export
      properties:
        end_at:
          description: End date/time of export range.
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        history_version:
          description: Version of the history for the export.
          example: example
          type: string
        id:
          description: History Export ID
          example: 1
          format: int32
          type: integer
        query_action:
          description: "Filter results by this this action type. Valid values: `create`, `read`, `update`, `destroy`, `move`, `login`, `failedlogin`, `copy`, `user_create`, `user_update`, `user_destroy`, `group_create`, `group_update`, `group_destroy`, `permission_create`, `permission_destroy`, `api_key_create`, `api_key_update`, `api_key_destroy`"
          example: read
          type: string
        query_destination:
          description: Return results that are file moves with this path as destination.
          example: DestFolder
          type: string
        query_failure_type:
          description: "If searching for Histories about login failures, this parameter restricts results to failures of this specific type.  Valid values: `expired_trial`, `account_overdue`, `locked_out`, `ip_mismatch`, `password_mismatch`, `site_mismatch`, `username_not_found`, `none`, `no_ftp_permission`, `no_web_permission`, `no_directory`, `errno_enoent`, `no_sftp_permission`, `no_dav_permission`, `no_restapi_permission`, `key_mismatch`, `region_mismatch`, `expired_access`, `desktop_ip_mismatch`, `desktop_api_key_not_used_quickly_enough`, `disabled`, `country_mismatch`"
          example: bad_password
          type: string
        query_file_id:
          description: Return results that are file actions related to the file indicated by this File ID
          example: "1"
          type: string
        query_folder:
          description: Return results that are file actions related to files or folders inside this folder path.
          example: Folder
          type: string
        query_interface:
          description: "Filter results by this this interface type. Valid values: `web`, `ftp`, `robot`, `jsapi`, `webdesktopapi`, `sftp`, `dav`, `desktop`, `restapi`, `scim`, `office`, `mobile`, `as2`, `inbound_email`, `remote`"
          example: ftp
          type: string
        query_ip:
          description: Filter results by this IP address.
          example: 127.0.0.1
          type: string
        query_parent_id:
          description: Return results that are file actions inside the parent folder specified by this folder ID
          example: "1"
          type: string
        query_path:
          description: Return results that are file actions related to this path.
          example: MyFile.txt
          type: string
        query_src:
          description: Return results that are file moves originating from this path.
          example: SrcFolder
          type: string
        query_target_id:
          description: If searching for Histories about specific objects (such as Users, or API Keys), this paremeter restricts results to objects that match this ID.
          example: "1"
          type: string
        query_target_name:
          description: If searching for Histories about Users, Groups or other objects with names, this parameter restricts results to objects with this name/username.
          example: full
          type: string
        query_target_permission:
          description: If searching for Histories about Permisisons, this parameter restricts results to permissions of this level.
          example: full
          type: string
        query_target_permission_set:
          description: If searching for Histories about API keys, this parameter restricts results to API keys with this permission set.
          example: desktop_app
          type: string
        query_target_platform:
          description: If searching for Histories about API keys, this parameter restricts results to API keys associated with this platform.
          example: windows
          type: string
        query_target_user_id:
          description: If searching for Histories about API keys, this parameter restricts results to API keys created by/for this user ID.
          example: "1"
          type: string
        query_target_username:
          description: If searching for Histories about API keys, this parameter restricts results to API keys created by/for this username.
          example: jerry
          type: string
        query_user_id:
          description: Return results that are actions performed by the user indiciated by this User ID
          example: "1"
          type: string
        query_username:
          description: Filter results by this username.
          example: jerry
          type: string
        results_url:
          description: If `status` is `ready`, this will be a URL where all the results can be downloaded at once as a CSV.
          example: https://files.com/history_results.csv
          type: string
        start_at:
          description: Start date/time of export range.
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        status:
          description: "Status of export.  Will be: `building`, `ready`, or `failed`"
          example: ready
          type: string
      type: object
      x-docs: |
        The History Export resource on the API is used to export historical action (history) logs.

        All queries against the archive must be submitted as Exports.  (Even our Web UI creates an Export behind
        the scenes.)

        We use Amazon Athena behind the scenes for processing these queries, and as such, have powerful
        search capabilities.  We've done our best to expose search capabilities via this History Export API.

        In any query field in this API, you may specify multiple values separated by commas.  That means that commas
        cannot be searched for themselves, and neither can single quotation marks.

        We do not currently partition data by date on the backend, so all queries result in a full scan of the entire
        data lake.  This means that all queries will take about the same amount of time to complete, and we incur about
        the same cost per query internally.  We don't typically bill our customers for these queries, assuming
        usage is occasional and manual.

        If you intend to use this API for high volume or automated use, please contact us with more information
        about your use case.  We may decide to change the backend data schema to match your use case more closely, and
        we may also need to charge an additional cost per query.

        ## Example History Queries

        * History for a user: `{ "query_user_id": 123 }`
        * History for a range of time: `{ "start_at": "2021-03-18 12:00:00", "end_at": "2021-03-19 12:00:00" }`
        * History of logins and failed logins: `{ "query_action": "login,failedlogin" }`
        * A Complex query: `{ "query_folder": "uploads", "query_action": "create,copy,move", "start_at": "2021-03-18 12:00:00", "end_at": "2021-03-19 12:00:00" }`
    HistoryExportResultEntity:
      description: List History Export Results
      properties:
        action:
          description: "What action was taken. Valid values: `create`, `read`, `update`, `destroy`, `move`, `login`, `failedlogin`, `copy`, `user_create`, `user_update`, `user_destroy`, `group_create`, `group_update`, `group_destroy`, `permission_create`, `permission_destroy`, `api_key_create`, `api_key_update`, `api_key_destroy`"
          example: read
          type: string
        created_at:
          description: When the action happened
          example: 1
          format: int32
          type: integer
        created_at_iso8601:
          description: When the action happened, in ISO8601 format.
          example: 1
          format: int32
          type: integer
        destination:
          description: File moved to this destination folder
          example: DestFolder
          type: string
        failure_type:
          description: "The type of login failure, if applicable.  Valid values: `expired_trial`, `account_overdue`, `locked_out`, `ip_mismatch`, `password_mismatch`, `site_mismatch`, `username_not_found`, `none`, `no_ftp_permission`, `no_web_permission`, `no_directory`, `errno_enoent`, `no_sftp_permission`, `no_dav_permission`, `no_restapi_permission`, `key_mismatch`, `region_mismatch`, `expired_access`, `desktop_ip_mismatch`, `desktop_api_key_not_used_quickly_enough`, `disabled`, `country_mismatch`"
          example: bad_password
          type: string
        file_id:
          description: File ID related to the action
          example: 1
          format: int32
          type: integer
        folder:
          description: Folder in which the action occurred
          example: Folder
          type: string
        id:
          description: Action ID
          example: 1
          format: int32
          type: integer
        interface:
          description: "Inteface through which the action was taken. Valid values: `web`, `ftp`, `robot`, `jsapi`, `webdesktopapi`, `sftp`, `dav`, `desktop`, `restapi`, `scim`, `office`, `mobile`, `as2`, `inbound_email`, `remote`"
          example: ftp
          type: string
        ip:
          description: Client IP that performed the action
          example: 127.0.0.1
          type: string
        parent_id:
          description: ID of the parent folder
          example: 1
          format: int32
          type: integer
        path:
          description: Path of the related action
          example: MyFile.txt
          type: string
        src:
          description: File move originated from this path
          example: SrcFolder
          type: string
        target_expires_at:
          description: If searching for Histories about API keys, this is when the API key will expire
          example: 1
          format: int32
          type: integer
        target_id:
          description: ID of the object (such as Users, or API Keys) on which the action was taken
          example: 1
          format: int32
          type: integer
        target_name:
          description: Name of the User, Group or other object with a name related to this action
          example: full
          type: string
        target_permission:
          description: Permission level of the action
          example: full
          type: string
        target_permission_set:
          description: If searching for Histories about API keys, this represents the permission set of the associated  API key
          example: desktop_app
          type: string
        target_platform:
          description: If searching for Histories about API keys, this is the platform on which the action was taken
          example: windows
          type: string
        target_recursive:
          description: Whether or not the action was recursive
          example: true
          type: boolean
        target_user_id:
          description: If searching for Histories about API keys, this is the User ID on which the action was taken
          example: 1
          format: int32
          type: integer
        target_username:
          description: If searching for Histories about API keys, this is the username on which the action was taken
          example: jerry
          type: string
        user_id:
          description: User ID
          example: 1
          format: int32
          type: integer
        username:
          description: Username of the user that performed the action
          example: jerry
          type: string
      type: object
      x-docs: null
    ImageEntity:
      properties:
        name:
          description: Image name
          example: My logo
          type: string
        uri:
          description: Image URI
          example: https://mysite.files.com/.../my_image.png
          type: string
      type: object
      x-docs: null
    InboxRecipientEntity:
      description: List Inbox Recipients
      properties:
        company:
          description: The recipient's company.
          example: Acme Inc.
          type: string
        name:
          description: The recipient's name.
          example: John Doe
          type: string
        note:
          description: A note sent to the recipient with the inbox.
          example: Some note.
          type: string
        recipient:
          description: The recipient's email address.
          example: john.doe@example.com
          type: string
        sent_at:
          description: When the Inbox was shared with this recipient.
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
      type: object
      x-docs: |
        Inbox recipients are people who have had an inbox shared with them.
    InboxRegistrationEntity:
      description: List Inbox Registrations
      properties:
        clickwrap_body:
          description: Clickwrap text that was shown to the registrant
          example: example
          type: string
        code:
          description: Registration cookie code
          example: abc123
          type: string
        company:
          description: Registrant company name
          example: Action Verb
          type: string
        created_at:
          description: Registration creation date/time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        email:
          description: Registrant email address
          example: john.doe@files.com
          type: string
        form_field_data:
          description: Data for form field set with form field ids as keys and user data as values
          example:
            key: example value
          type: object
          x-object-type:
            key_type: string
            type: hash
            value_type: string
        form_field_set_id:
          description: Id of associated form field set
          example: 1
          format: int32
          type: integer
        inbox_id:
          description: Id of associated inbox
          example: 1
          format: int32
          type: integer
        inbox_recipient_id:
          description: Id of associated inbox recipient
          example: 1
          format: int32
          type: integer
        inbox_title:
          description: Title of associated inbox
          example: example
          type: string
        name:
          description: Registrant name
          example: account
          type: string
      type: object
      x-docs: |
        InboxRegistrations record when an Inbox user fills out the form to access the inbox.
    InboxUploadEntity:
      description: List Inbox Uploads
      properties:
        created_at:
          description: Upload date/time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        inbox_registration:
          $ref: "#/components/schemas/InboxRegistrationEntity"
        path:
          description: Upload path
          example: a/b/test.txt
          type: string
      type: object
      x-docs: null
    InvoiceLineItemEntity:
      properties:
        amount:
          description: Invoice line item amount
          example: 1
          format: double
          type: number
        created_at:
          description: Invoice line item created at date/time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        description:
          description: Invoice line item description
          example: Service from 2019-01-01 through 2019-12-31
          type: string
        plan:
          description: Plan name
          example: Premier
          type: string
        service_end_at:
          description: Invoice line item service end date/time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        service_start_at:
          description: Invoice line item service start date/time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        site:
          description: Site name
          example: My site
          type: string
        type:
          description: Invoice line item type
          enum:
            - invoice
            - invoice_adjustment
            - usage_overage
            - user_overage
            - addon_subscription
            - misc_fee
            - usage_overage_adjustment
            - user_overage_adjustment
            - addon_subscription_adjustment
            - misc_fee_adjustment
            - credit_expiration
          example: invoice
          type: string
        updated_at:
          description: Invoice line item updated date/time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
      type: object
      x-docs: null
    IpAddressEntity:
      description: List IP Addresses associated with the current site
      properties:
        associated_with:
          description: The object that this public IP address list is associated with.
          example: Site
          type: string
        group_id:
          description: Group ID
          example: 1
          format: int32
          type: integer
        id:
          description: Unique label for list; used by Zapier and other integrations.
          example: Site
          type: string
        ip_addresses:
          description: A list of IP addresses.
          example:
            - 127.0.0.1
          items:
            example:
              - 127.0.0.1
            type: string
          type: array
      type: object
      x-docs: |
        Customers who maintain custom firewall configurations may require knowing the public IP addresses of Files.com's edge servers.

        This API resource provides an updated list of IP addresses that you can use to automate keeping your firewall's configuration up to date.
    LockEntity:
      description: List Locks by path
      properties:
        allow_access_by_any_user:
          description: Can lock be modified by users other than its creator?
          type: boolean
        depth:
          description: "DEPRECATED: Lock depth"
          example: infinity
          type: string
        exclusive:
          description: Is lock exclusive?
          type: boolean
        owner:
          description: Owner of the lock.  This can be any arbitrary string.
          example: user
          type: string
        path:
          description: Path
          example: locked_file
          type: string
        recursive:
          description: Does lock apply to subfolders?
          example: true
          type: boolean
        scope:
          description: "DEPRECATED: Lock scope"
          example: shared
          type: string
        timeout:
          description: Lock timeout in seconds
          example: 1
          format: int32
          type: integer
        token:
          description: Lock token.  Use to release lock.
          example: 17c54824e9931a4688ca032d03f6663c
          type: string
        type:
          description: "DEPRECATED: Lock type"
          example: write
          type: string
        user_id:
          description: Lock creator user ID
          example: 1
          format: int32
          type: integer
        username:
          description: Lock creator username
          example: username
          type: string
      type: object
      x-docs: |
        Locks are not used by Files.com's web interface, but can be used by your applications to
        implement locking and concurrency features. Note that these locks are advisory in nature,
        and creating a lock does not prevent other API requests from being fulfilled.

        Our lock feature is designed to emulate the locking feature offered by WebDAV.
        You can read the WebDAV spec and understand how all of the below endpoints work.

        Files.com's WebDAV offering and desktop app does leverage this locking API.
    MessageCommentEntity:
      description: List Message Comments
      properties:
        body:
          description: Comment body.
          example: What a great idea, thank you!
          type: string
        id:
          description: Message Comment ID
          example: 1
          format: int32
          type: integer
        reactions:
          description: Reactions to this comment.
          example:
            - null
          items:
            $ref: "#/components/schemas/MessageCommentReactionEntity"
          type: array
      type: object
      x-docs: |
        A message comment represents a comment made by a user on a message.
    MessageCommentReactionEntity:
      description: List Message Comment Reactions
      properties:
        emoji:
          description: Emoji used in the reaction.
          example: 👍
          type: string
        id:
          description: Reaction ID
          example: 1
          format: int32
          type: integer
      type: object
      x-docs: |
        A message comment reaction represents a reaction emoji made by a user on a message comment.
    MessageEntity:
      description: List Messages
      properties:
        body:
          description: Message body.
          example: We should upgrade our Files.com account!
          type: string
        comments:
          description: Comments.
          example:
            - null
          items:
            $ref: "#/components/schemas/MessageCommentEntity"
          type: array
        id:
          description: Message ID
          example: 1
          format: int32
          type: integer
        subject:
          description: Message subject.
          example: Files.com Account Upgrade
          type: string
      type: object
      x-docs: |
        Messages are part of Files.com's project management features and represent a message posted by a user to a project.
    MessageReactionEntity:
      description: List Message Reactions
      properties:
        emoji:
          description: Emoji used in the reaction.
          example: 👍
          type: string
        id:
          description: Reaction ID
          example: 1
          format: int32
          type: integer
      type: object
      x-docs: |
        A message reaction represents a reaction emoji made by a user on a message.
    NotificationEntity:
      description: List Notifications
      properties:
        group_id:
          description: Notification group id
          example: 0
          format: int32
          type: integer
        group_name:
          description: Group name if applicable
          example: example
          type: string
        id:
          description: Notification ID
          example: 1
          format: int32
          type: integer
        message:
          description: Custom message to include in notification emails.
          example: custom notification email message
          type: string
        notify_on_copy:
          description: Triggers notification when copying files to this path
          example: true
          type: boolean
        notify_on_delete:
          description: Triggers notification when deleting files from this path
          example: true
          type: boolean
        notify_on_download:
          description: Triggers notification when downloading files from this path
          example: true
          type: boolean
        notify_on_move:
          description: Triggers notification when moving files to this path
          example: true
          type: boolean
        notify_on_upload:
          description: Triggers notification when uploading new files to this path
          example: true
          type: boolean
        notify_user_actions:
          description: Trigger notification on notification user actions?
          example: true
          type: boolean
        path:
          description: Folder path to notify on
          example: path
          type: string
        recursive:
          description: Enable notifications for each subfolder in this path
          example: true
          type: boolean
        send_interval:
          description: The time interval that notifications are aggregated to
          enum:
            - five_minutes
            - fifteen_minutes
            - hourly
            - daily
          example: fifteen_minutes
          type: string
        suppressed_email:
          description: If true, it means that the recipient at this user's email address has manually unsubscribed from all emails, or had their email "hard bounce", which means that we are unable to send mail to this user's current email address. Notifications will resume if the user changes their email address.
          example: true
          type: boolean
        trigger_by_share_recipients:
          description: Notify when actions are performed by a share recipient?
          example: true
          type: boolean
        triggering_filenames:
          description: Array of filenames (possibly with wildcards) to match for action path
          example:
            - "*.jpg"
            - notify_file.txt
          items:
            example:
              - "*.jpg"
              - notify_file.txt
            type: string
          type: array
        triggering_group_ids:
          description: Only notify on actions made by a member of one of the specified groups
          example:
            - 1
          items:
            example:
              - 1
            format: int32
            type: integer
          type: array
        triggering_user_ids:
          description: Only notify on actions made one of the specified users
          example:
            - 1
          items:
            example:
              - 1
            format: int32
            type: integer
          type: array
        unsubscribed:
          description: Is the user unsubscribed from this notification?
          example: true
          type: boolean
        unsubscribed_reason:
          description: The reason that the user unsubscribed
          enum:
            - none
            - unsubscribe_link_clicked
            - mail_bounced
            - mail_marked_as_spam
          example: example
          type: string
        user_id:
          description: Notification user ID
          example: 1
          format: int32
          type: integer
        username:
          description: Notification username
          example: User
          type: string
      type: object
      x-docs: |
        Notifications are our feature that send E-Mails when new files are uploaded into a folder.
    PaymentLineItemEntity:
      properties:
        amount:
          description: Payment line item amount
          example: 1
          format: double
          type: number
        created_at:
          description: Payment line item created at date/time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        invoice_id:
          description: Invoice ID
          example: 1
          format: int32
          type: integer
        payment_id:
          description: Payment ID
          example: 1
          format: int32
          type: integer
      type: object
      x-docs: null
    PermissionEntity:
      description: List Permissions
      properties:
        group_id:
          description: Group ID
          example: 0
          format: int32
          type: integer
        group_name:
          description: Group name if applicable
          example: example
          type: string
        id:
          description: Permission ID
          example: 1
          format: int32
          type: integer
        path:
          description: Folder path
          example: example
          type: string
        permission:
          description: Permission type
          enum:
            - full
            - readonly
            - writeonly
            - list
            - history
            - admin
            - bundle
          example: full
          type: string
        recursive:
          description: Does this permission apply to subfolders?
          example: true
          type: boolean
        user_id:
          description: User ID
          example: 1
          format: int32
          type: integer
        username:
          description: User's username
          example: Sser
          type: string
      type: object
      x-docs: |
        Permission objects represent the grant of permissions to a user or group.

        They are specific to a path and can be either recursive or nonrecursive into the subfolders of that path.
    PreviewEntity:
      properties:
        download_uri:
          description: Link to download preview
          example: https://mysite.files.com/...
          type: string
        id:
          description: Preview ID
          example: 1
          format: int32
          type: integer
        size:
          description: Preview size
          example: large
          type: string
        status:
          description: Preview status.  Can be invalid, not_generated, generating, complete, or file_too_large
          example: complete
          type: string
        type:
          description: Preview type. Can be image, pdf, pdf_native, video, or audio
          example: image
          type: string
      type: object
      x-docs: |
        Previews are image or PDF previews that are meant to be viewed within the web interface.
    PriorityEntity:
      description: List Priorities
      properties:
        color:
          description: The priority color
          example: pink
          type: string
        path:
          description: The path corresponding to the priority color
          example: foo/bar
          type: string
      type: object
      x-docs: null
    ProjectEntity:
      description: List Projects
      properties:
        global_access:
          description: Global access settings
          enum:
            - none
            - anyone_with_read
            - anyone_with_full
          example: none
          type: string
        id:
          description: Project ID
          example: 1
          format: int32
          type: integer
      type: object
      x-docs: |
        Projects are associated with a folder and add project management features to that folder.
    PublicIpAddressEntity:
      description: List all possible public IP addresses
      properties:
        ftp_enabled:
          example: true
          type: boolean
        ip_address:
          description: The public IP address.
          example: 1.1.1.1
          type: string
        server_name:
          description: The name of the frontend server.
          example: server-1
          type: string
        sftp_enabled:
          example: true
          type: boolean
      type: object
      x-docs: These are all IP addresses that `app.files.com` (or `*.files.com`) may potentially resolve to over the next 30 days.  This list includes IP addresses that are hot standbys not in use.
    PublicKeyEntity:
      description: List Public Keys
      properties:
        created_at:
          description: Public key created at date/time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        fingerprint:
          description: Public key fingerprint
          example: 43:51:43:a1:b5:fc:8b:b7:0a:3a:a9:b1:0f:66:73:a8
          type: string
        id:
          description: Public key ID
          example: 1
          format: int32
          type: integer
        title:
          description: Public key title
          example: My public key
          type: string
      type: object
      x-docs: |
        Public keys are used by Users who want to connect via SFTP/SSH.
        (Note that our SSH support is limited to file operations only, no shell is provided.)
    RemoteBandwidthSnapshotEntity:
      description: List Remote Bandwidth Snapshots
      properties:
        id:
          description: Site bandwidth ID
          example: 1
          format: int32
          type: integer
        logged_at:
          description: Time the site bandwidth report was logged
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        remote_server_id:
          description: ID of related Remote Server
          example: 1
          format: int32
          type: integer
        sync_bytes_received:
          description: Site sync bandwidth report bytes received
          example: 1
          format: double
          type: number
        sync_bytes_sent:
          description: Site sync bandwidth report bytes sent
          example: 1
          format: double
          type: number
      type: object
      x-docs: null
    RemoteServerConfigurationFileEntity:
      description: Download configuration file (required for some Remote Server integrations, such as the Files.com Agent)
      properties:
        api_token:
          description: Files Agent API Token
          example: example
          type: string
        config_version:
          description: agent config version
          example: example
          type: string
        hostname:
          example: example
          type: string
        id:
          description: Agent ID
          example: 1
          format: int32
          type: integer
        permission_set:
          description: ""
          example: full
          type: string
        port:
          description: Incoming port for files agent connections
          example: 1
          format: int32
          type: integer
        private_key:
          description: private key
          example: example
          type: string
        public_key:
          description: public key
          example: example
          type: string
        root:
          description: Agent local root path
          example: example
          type: string
        server_host_key:
          example: example
          type: string
        status:
          description: either running or shutdown
          example: example
          type: string
        subdomain:
          example: example
          type: string
      type: object
      x-docs: null
    RemoteServerEntity:
      description: Create Remote Server
      properties:
        auth_account_name:
          description: Describes the authorized account
          example: me@example.com
          type: string
        auth_setup_link:
          description: Returns link to login with an Oauth provider
          example: auth/:provider
          type: string
        auth_status:
          description: Either `in_setup` or `complete`
          enum:
            - not_applicable
            - in_setup
            - complete
            - reauthenticate
          example: in_setup
          type: string
        authentication_method:
          description: Type of authentication method
          example: password
          type: string
        aws_access_key:
          description: AWS Access Key.
          example: example
          type: string
        azure_blob_storage_account:
          description: Azure Blob Storage Account name
          example: storage-account-name
          type: string
        azure_blob_storage_container:
          description: Azure Blob Storage Container name
          example: container-name
          type: string
        azure_blob_storage_sas_token:
          description: Shared Access Signature (SAS) token
          example: storage-sas-token
          type: string
        azure_files_storage_account:
          description: Azure File Storage Account name
          example: storage-account-name
          type: string
        azure_files_storage_sas_token:
          description: Shared Access Signature (SAS) token
          example: storage-sas-token
          type: string
        azure_files_storage_share_name:
          description: Azure File Storage Share name
          example: share-name
          type: string
        backblaze_b2_bucket:
          description: Backblaze B2 Cloud Storage Bucket name
          example: my-bucket
          type: string
        backblaze_b2_s3_endpoint:
          description: Backblaze B2 Cloud Storage S3 Endpoint
          example: s3.us-west-001.backblazeb2.com
          type: string
        disabled:
          description: If true, this server has been disabled due to failures.  Make any change or set disabled to false to clear this flag.
          example: true
          type: boolean
        enable_dedicated_ips:
          description: "`true` if remote server only accepts connections from dedicated IPs"
          example: true
          type: boolean
        filebase_access_key:
          description: Filebase Access Key.
          example: example
          type: string
        filebase_bucket:
          description: Filebase Bucket name
          example: my-bucket
          type: string
        files_agent_api_token:
          description: Files Agent API Token
          example: example
          type: string
        files_agent_permission_set:
          description: Local permissions for files agent. read_only, write_only, or read_write
          enum:
            - read_write
            - read_only
            - write_only
          example: read_write
          type: string
        files_agent_root:
          description: Agent local root path
          example: example
          type: string
        google_cloud_storage_bucket:
          description: Google Cloud Storage bucket name
          example: my-bucket
          type: string
        google_cloud_storage_project_id:
          description: Google Cloud Project ID
          example: my-project
          type: string
        hostname:
          description: Hostname or IP address
          example: remote-server.com
          type: string
        id:
          description: Remote server ID
          example: 1
          format: int32
          type: integer
        max_connections:
          description: Max number of parallel connections.  Ignored for S3 connections (we will parallelize these as much as possible).
          example: 1
          format: int32
          type: integer
        name:
          description: Internal name for your reference
          example: My Remote server
          type: string
        one_drive_account_type:
          description: Either personal or business_other account types
          enum:
            - personal
            - business_other
          example: personal
          type: string
        pin_to_site_region:
          description: If true, we will ensure that all communications with this remote server are made through the primary region of the site.  This setting can also be overridden by a sitewide setting which will force it to true.
          example: true
          type: boolean
        pinned_region:
          description: If set, all communciations with this remote server are made through the provided region.
          example: us-east-1
          type: string
        port:
          description: Port for remote server.  Not needed for S3.
          example: 1
          format: int32
          type: integer
        rackspace_container:
          description: The name of the container (top level directory) where files will sync.
          example: my-container
          type: string
        rackspace_region:
          description: Three letter airport code for Rackspace region. See https://support.rackspace.com/how-to/about-regions/
          example: dfw
          type: string
        rackspace_username:
          description: Rackspace username used to login to the Rackspace Cloud Control Panel.
          example: rackspaceuser
          type: string
        remote_home_path:
          description: Initial home folder on remote server
          example: /home/user1
          type: string
        s3_bucket:
          description: S3 bucket name
          example: my-bucket
          type: string
        s3_compatible_access_key:
          description: S3-compatible Access Key.
          example: example
          type: string
        s3_compatible_bucket:
          description: S3-compatible Bucket name
          example: my-bucket
          type: string
        s3_compatible_endpoint:
          description: S3-compatible endpoint
          example: mys3platform.com
          type: string
        s3_compatible_region:
          description: S3-compatible endpoint
          example: us-east-1
          type: string
        s3_region:
          description: S3 region
          example: us-east-1
          type: string
        server_certificate:
          description: Remote server certificate
          enum:
            - require_match
            - allow_any
          example: require_match
          type: string
        server_host_key:
          description: Remote server SSH Host Key. If provided, we will require that the server host key matches the provided key. Uses OpenSSH format similar to what would go into ~/.ssh/known_hosts
          example: "[public key]"
          type: string
        server_type:
          description: Remote server type.
          enum:
            - ftp
            - sftp
            - s3
            - google_cloud_storage
            - webdav
            - wasabi
            - backblaze_b2
            - one_drive
            - rackspace
            - box
            - dropbox
            - google_drive
            - azure
            - sharepoint
            - s3_compatible
            - azure_files
            - files_agent
            - filebase
          example: s3
          type: string
        ssl:
          description: Should we require SSL?
          enum:
            - if_available
            - require
            - require_implicit
            - never
          example: if_available
          type: string
        username:
          description: Remote server username.  Not needed for S3 buckets.
          example: user
          type: string
        wasabi_access_key:
          description: Wasabi access key.
          example: example
          type: string
        wasabi_bucket:
          description: Wasabi Bucket name
          example: my-bucket
          type: string
        wasabi_region:
          description: Wasabi region
          example: us-west-1
          type: string
      type: object
      x-docs: |
        Remote servers are used with the `remote_server_sync` Behavior.

        Remote Servers can be either an FTP server, SFTP server, S3 bucket, Google Cloud Storage, Wasabi, Backblaze B2 Cloud Storage, Rackspace Cloud Files container, WebDAV, Box, Dropbox, OneDrive, Google Drive, or Azure Blob Storage.

        Not every attribute will apply to every remote server.

        FTP Servers require that you specify their `hostname`, `port`, `username`, `password`, and a value for `ssl`.  Optionally, provide `server_certificate`.

        SFTP Servers require that you specify their `hostname`, `port`, `username`, `password` or `private_key`, and a value for `ssl`.  Optionally, provide `server_certificate`, `private_key_passphrase`.

        S3 Buckets require that you specify their `s3_bucket` name, and `s3_region`.  Optionally provide a `aws_access_key`, and `aws_secret_key`.  If you don't provide credentials, you will need to use AWS to grant us access to your bucket.

        S3-Compatible Buckets require that you specify `s3_compatible_bucket`, `s3_compatible_endpoint`, `s3_compatible_access_key`, and `s3_compatible_secret_key`.

        Google Cloud Storage requires that you specify `google_cloud_storage_bucket`, `google_cloud_storage_project_id`, and `google_cloud_storage_credentials_json`.

        Wasabi requires `wasabi_bucket`, `wasabi_region`, `wasabi_access_key`, and `wasabi_secret_key`.

        Backblaze B2 Cloud Storage `backblaze_b2_bucket`, `backblaze_b2_s3_endpoint`, `backblaze_b2_application_key`, and `backblaze_b2_key_id`. (Requires S3 Compatible API) See https://help.backblaze.com/hc/en-us/articles/360047425453

        Rackspace Cloud Files requires `rackspace_username`, `rackspace_api_key`, `rackspace_region`, and `rackspace_container`.

        WebDAV Servers require that you specify their `hostname`, `username`, and `password`.

        OneDrive follow the `auth_setup_link` and login with Microsoft.

        Sharepoint follow the `auth_setup_link` and login with Microsoft.

        Box follow the `auth_setup_link` and login with Box.

        Dropbox follow the `auth_setup_link` and login with Dropbox.

        Google Drive follow the `auth_setup_link` and login with Google.

        Azure Blob Storage `azure_blob_storage_account`, `azure_blob_storage_container`, `azure_blob_storage_access_key`, `azure_blob_storage_sas_token`

        Azure File Storage `azure_files_storage_account`, `azure_files_storage_access_key`, `azure_files_storage_share_name`

        Filebase requires `filebase_bucket`, `filebase_access_key`, and `filebase_secret_key`.
    RequestEntity:
      description: List Requests
      properties:
        automation_id:
          description: ID of automation that created request
          example: example
          type: string
        destination:
          description: Destination filename
          example: example
          type: string
        id:
          description: Request ID
          example: 1
          format: int32
          type: integer
        path:
          description: Folder path
          example: example
          type: string
        source:
          description: Source filename, if applicable
          example: example
          type: string
        user_display_name:
          description: User making the request (if applicable)
          example: example
          type: string
      type: object
      x-docs: |
        A Request represents a file that *should* be uploaded by a specific user or group.

        Requests can either be manually created and managed, or managed automatically by an Automation.
    SessionEntity:
      description: Create user session (log in)
      properties:
        id:
          description: Session ID
          example: 60525f92e859c4c3d74cb02fd176b1525901b525
          type: string
        language:
          description: Session language
          example: en
          type: string
        read_only:
          description: Is this session read only?
          example: true
          type: boolean
        sftp_insecure_ciphers:
          description: Are insecure SFTP ciphers allowed for this user? (If this is set to true, the site administrator has signaled that it is ok to use less secure SSH ciphers for this user.)
          type: boolean
      type: object
      x-docs: |
        You may use a Session to make further API calls using our REST API or SDKs as a specific user.
        This is the only way to use the API if you know a username/password but not an API key.
    SettingsChangeEntity:
      description: List Settings Changes
      properties:
        changes:
          description: Markdown-formatted change messages.
          example:
            - example
          items:
            example:
              - example
            type: string
          type: array
        created_at:
          description: The time this change was made
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        user_id:
          description: The user id responsible for this change
          example: 1
          format: int32
          type: integer
        user_is_files_support:
          description: true if this change was performed by Files.com support.
          type: boolean
        username:
          description: The username of the user responsible for this change
          example: some_user
          type: string
      type: object
      x-docs: |
        Settings changes caused by any user.
    SftpHostKeyEntity:
      description: Create Sftp Host Key
      properties:
        fingerprint_md5:
          description: MD5 Fingerpint of the public key
          example: example
          type: string
        fingerprint_sha256:
          description: SHA256 Fingerpint of the public key
          example: example
          type: string
        id:
          description: Sftp Host Key ID
          example: 1
          format: int32
          type: integer
        name:
          description: The friendly name of this SFTP Host Key.
          example: example
          type: string
      type: object
      x-docs: null
    SiteEntity:
      description: Show site settings
      properties:
        active_sftp_host_key_id:
          description: Id of the currently selected custom SFTP Host Key
          example: 1
          format: int32
          type: integer
        admin_user_id:
          description: User ID for the main site administrator
          example: 1
          format: int32
          type: integer
        allow_bundle_names:
          description: Are manual Bundle names allowed?
          example: true
          type: boolean
        allowed_2fa_method_bypass_for_ftp_sftp_dav:
          description: Are users allowed to configure their two factor authentication to be bypassed for FTP/SFTP/WebDAV?
          example: true
          type: boolean
        allowed_2fa_method_sms:
          description: Is SMS two factor authentication allowed?
          example: true
          type: boolean
        allowed_2fa_method_totp:
          description: Is TOTP two factor authentication allowed?
          example: true
          type: boolean
        allowed_2fa_method_u2f:
          description: Is U2F two factor authentication allowed?
          example: true
          type: boolean
        allowed_2fa_method_webauthn:
          description: Is WebAuthn two factor authentication allowed?
          example: true
          type: boolean
        allowed_2fa_method_yubi:
          description: Is yubikey two factor authentication allowed?
          example: true
          type: boolean
        allowed_countries:
          description: Comma seperated list of allowed Country codes
          example: US,DE
          type: string
        allowed_ips:
          description: List of allowed IP addresses
          example: example
          type: string
        ask_about_overwrites:
          description: If false, rename conflicting files instead of asking for overwrite confirmation.  Only applies to web interface.
          example: true
          type: boolean
        bundle_activity_notifications:
          description: Do Bundle owners receive activity notifications?
          enum:
            - never
            - always
            - per_bundle_setting
          example: never
          type: string
        bundle_expiration:
          description: Site-wide Bundle expiration in days
          example: 1
          format: int32
          type: integer
        bundle_password_required:
          description: Do Bundles require password protection?
          example: true
          type: boolean
        bundle_registration_notifications:
          description: Do Bundle owners receive registration notification?
          enum:
            - never
            - always
            - per_bundle_setting
          example: never
          type: string
        bundle_require_share_recipient:
          description: Do Bundles require recipients for sharing?
          example: true
          type: boolean
        bundle_upload_receipt_notifications:
          description: Do Bundle uploaders receive upload confirmation notifications?
          enum:
            - never
            - always
            - per_bundle_setting
          example: never
          type: string
        bundle_watermark_attachment:
          $ref: "#/components/schemas/ImageEntity"
        bundle_watermark_value:
          description: Preview watermark settings applied to all bundle items. Uses the same keys as Behavior.value
          example:
            key: example value
          type: object
          x-object-type:
            key_type: string
            type: hash
            value_type: string
        color2_left:
          description: Page link and button color
          example: "#0066a7"
          type: string
        color2_link:
          description: Top bar link color
          example: "#d34f5d"
          type: string
        color2_text:
          description: Page link and button color
          example: "#0066a7"
          type: string
        color2_top:
          description: Top bar background color
          example: "#000000"
          type: string
        color2_top_text:
          description: Top bar text color
          example: "#ffffff"
          type: string
        contact_name:
          description: Site main contact name
          example: John Doe
          type: string
        created_at:
          description: Time this site was created
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        currency:
          description: Preferred currency
          example: USD
          type: string
        custom_namespace:
          description: Is this site using a custom namespace for users?
          example: true
          type: boolean
        days_to_retain_backups:
          description: Number of days to keep deleted files
          example: 30
          format: int32
          type: integer
        default_time_zone:
          description: Site default time zone
          example: Pacific Time (US & Canada)
          type: string
        desktop_app:
          description: Is the desktop app enabled?
          example: true
          type: boolean
        desktop_app_session_ip_pinning:
          description: Is desktop app session IP pinning enabled?
          example: true
          type: boolean
        desktop_app_session_lifetime:
          description: Desktop app session lifetime (in hours)
          example: 1
          format: int32
          type: integer
        disable_files_certificate_generation:
          description: If set, Files.com will not set the CAA records required to generate future SSL certificates for this domain.
          example: true
          type: boolean
        disable_notifications:
          description: Are notifications disabled?
          example: true
          type: boolean
        disable_password_reset:
          description: Is password reset disabled?
          example: true
          type: boolean
        disable_users_from_inactivity_period_days:
          description: If greater than zero, users will unable to login if they do not show activity within this number of days.
          example: 1
          format: int32
          type: integer
        disallowed_countries:
          description: Comma seperated list of disallowed Country codes
          example: US,DE
          type: string
        domain:
          description: Custom domain
          example: my-custom-domain.com
          type: string
        domain_hsts_header:
          description: Send HSTS (HTTP Strict Transport Security) header when visitors access the site via a custom domain?
          example: true
          type: boolean
        domain_letsencrypt_chain:
          description: Letsencrypt chain to use when registering SSL Certificate for domain.
          enum:
            - default
            - isrg_root_x1
            - dst_root_ca_x3
          example: example
          type: string
        email:
          description: Main email for this site
          example: example
          format: email
          type: string
        folder_permissions_groups_only:
          description: If true, permissions for this site must be bound to a group (not a user). Otherwise, permissions must be bound to a user.
          example: true
          type: boolean
        ftp_enabled:
          description: Is FTP enabled?
          example: true
          type: boolean
        hipaa:
          description: Is there a signed HIPAA BAA between Files.com and this site?
          example: true
          type: boolean
        icon128:
          $ref: "#/components/schemas/ImageEntity"
        icon16:
          $ref: "#/components/schemas/ImageEntity"
        icon32:
          $ref: "#/components/schemas/ImageEntity"
        icon48:
          $ref: "#/components/schemas/ImageEntity"
        immutable_files_set_at:
          description: Can files be modified?
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        include_password_in_welcome_email:
          description: Include password in emails to new users?
          example: true
          type: boolean
        language:
          description: Site default language
          example: en
          type: string
        ldap_base_dn:
          description: Base DN for looking up users in LDAP server
          example: example
          type: string
        ldap_domain:
          description: Domain name that will be appended to usernames
          example: mysite.com
          type: string
        ldap_enabled:
          description: "Main LDAP setting: is LDAP enabled?"
          example: true
          type: boolean
        ldap_group_action:
          description: Should we sync groups from LDAP server?
          example: disabled
          type: string
        ldap_group_exclusion:
          description: Comma or newline separated list of group names (with optional wildcards) to exclude when syncing.
          example: example
          type: string
        ldap_group_inclusion:
          description: Comma or newline separated list of group names (with optional wildcards) to include when syncing.
          example: example
          type: string
        ldap_host:
          description: LDAP host
          example: ldap.site.com
          type: string
        ldap_host_2:
          description: LDAP backup host
          example: ldap2.site.com
          type: string
        ldap_host_3:
          description: LDAP backup host
          example: ldap3.site.com
          type: string
        ldap_port:
          description: LDAP port
          example: 1
          format: int32
          type: integer
        ldap_secure:
          description: Use secure LDAP?
          example: true
          type: boolean
        ldap_type:
          description: LDAP type
          example: open_ldap
          type: string
        ldap_user_action:
          description: Should we sync users from LDAP server?
          example: disabled
          type: string
        ldap_user_include_groups:
          description: Comma or newline separated list of group names (with optional wildcards) - if provided, only users in these groups will be added or synced.
          example: example
          type: string
        ldap_username:
          description: Username for signing in to LDAP server.
          example: "[ldap username]"
          type: string
        ldap_username_field:
          description: LDAP username field
          example: sAMAccountName
          type: string
        login_help_text:
          description: Login help text
          example: Login page help text.
          type: string
        logo:
          $ref: "#/components/schemas/ImageEntity"
        max_prior_passwords:
          description: Number of prior passwords to disallow
          example: 1
          format: int32
          type: integer
        mobile_app:
          description: Is the mobile app enabled?
          example: true
          type: boolean
        mobile_app_session_ip_pinning:
          description: Is mobile app session IP pinning enabled?
          example: true
          type: boolean
        mobile_app_session_lifetime:
          description: Mobile app session lifetime (in hours)
          example: 1
          format: int32
          type: integer
        motd_text:
          description: A message to show users when they connect via FTP or SFTP.
          example: example
          type: string
        motd_use_for_ftp:
          description: Show message to users connecting via FTP
          example: true
          type: boolean
        motd_use_for_sftp:
          description: Show message to users connecting via SFTP
          example: true
          type: boolean
        name:
          description: Site name
          example: My Site
          type: string
        next_billing_amount:
          description: Next billing amount
          example: 1
          format: double
          type: number
        next_billing_date:
          description: Next billing date
          example: Apr 20
          type: string
        non_sso_groups_allowed:
          description: If true, groups can be manually created / modified / deleted by Site Admins. Otherwise, groups can only be managed via your SSO provider.
          example: true
          type: boolean
        non_sso_users_allowed:
          description: If true, users can be manually created / modified / deleted by Site Admins. Otherwise, users can only be managed via your SSO provider.
          example: true
          type: boolean
        office_integration_available:
          description: Allow users to use Office for the web?
          example: true
          type: boolean
        office_integration_type:
          description: Office integration application used to edit and view the MS Office documents
          enum:
            - only_office
            - office_365
            - disabled
          example: example
          type: string
        oncehub_link:
          description: Link to scheduling a meeting with our Sales team
          example: https://go.oncehub.com/files
          type: string
        opt_out_global:
          description: Use servers in the USA only?
          example: true
          type: boolean
        overdue:
          description: Is this site's billing overdue?
          example: true
          type: boolean
        password_min_length:
          description: Shortest password length for users
          example: 1
          format: int32
          type: integer
        password_require_letter:
          description: Require a letter in passwords?
          example: true
          type: boolean
        password_require_mixed:
          description: Require lower and upper case letters in passwords?
          example: true
          type: boolean
        password_require_number:
          description: Require a number in passwords?
          example: true
          type: boolean
        password_require_special:
          description: Require special characters in password?
          example: true
          type: boolean
        password_require_unbreached:
          description: Require passwords that have not been previously breached? (see https://haveibeenpwned.com/)
          example: true
          type: boolean
        password_requirements_apply_to_bundles:
          description: Require bundles' passwords, and passwords for other items (inboxes, public shares, etc.) to conform to the same requirements as users' passwords?
          example: true
          type: boolean
        password_validity_days:
          description: Number of days password is valid
          example: 1
          format: int32
          type: integer
        phone:
          description: Site phone number
          example: 555-555-5555
          type: string
        pin_all_remote_servers_to_site_region:
          description: If true, we will ensure that all internal communications with any remote server are made through the primary region of the site. This setting overrides individual remote server settings.
          example: true
          type: boolean
        reply_to_email:
          description: Reply-to email for this site
          example: example
          format: email
          type: string
        require_2fa:
          description: Require two-factor authentication for all users?
          example: true
          type: boolean
        require_2fa_stop_time:
          description: If set, requirement for two-factor authentication has been scheduled to end on this date-time.
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        require_2fa_user_type:
          description: What type of user is required to use two-factor authentication (when require_2fa is set to `true` for this site)?
          enum:
            - all
            - folder_and_site_admins
            - site_admins
          example: "`site_admins`"
          type: string
        session:
          $ref: "#/components/schemas/SessionEntity"
        session_expiry:
          description: Session expiry in hours
          example: 6
          format: double
          type: number
        session_expiry_minutes:
          description: Session expiry in minutes
          example: 360
          format: int32
          type: integer
        session_pinned_by_ip:
          description: Are sessions locked to the same IP? (i.e. do users need to log in again if they change IPs?)
          example: true
          type: boolean
        sftp_enabled:
          description: Is SFTP enabled?
          example: true
          type: boolean
        sftp_host_key_type:
          description: Sftp Host Key Type
          enum:
            - default
            - exavault
            - custom
          example: default
          type: string
        sftp_insecure_ciphers:
          description: "Are Insecure Ciphers allowed for SFTP?  Note:  Settting TLS Disabled -> True will always allow insecure ciphers for SFTP as well.  Enabling this is insecure."
          type: boolean
        sftp_user_root_enabled:
          description: Use user FTP roots also for SFTP?
          type: boolean
        sharing_enabled:
          description: Allow bundle creation
          example: true
          type: boolean
        show_request_access_link:
          description: Show request access link for users without access?  Currently unused.
          example: true
          type: boolean
        site_footer:
          description: Custom site footer text
          example: example
          type: string
        site_header:
          description: Custom site header text
          example: example
          type: string
        smtp_address:
          description: SMTP server hostname or IP
          example: smtp.my-mail-server.com
          type: string
        smtp_authentication:
          description: SMTP server authentication type
          example: plain
          type: string
        smtp_from:
          description: From address to use when mailing through custom SMTP
          example: me@my-mail-server.com
          type: string
        smtp_port:
          description: SMTP server port
          example: 25
          format: int32
          type: integer
        smtp_username:
          description: SMTP server username
          example: mail
          type: string
        ssl_required:
          description: Is SSL required?  Disabling this is insecure.
          example: true
          type: boolean
        subdomain:
          description: Site subdomain
          example: mysite
          type: string
        switch_to_plan_date:
          description: If switching plans, when does the new plan take effect?
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        tls_disabled:
          description: Are Insecure TLS and SFTP Ciphers allowed?  Enabling this is insecure.
          type: boolean
        trial_days_left:
          description: Number of days left in trial
          example: 1
          format: int32
          type: integer
        trial_until:
          description: When does this Site trial expire?
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        updated_at:
          description: Last time this Site was updated
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        uploads_via_email_authentication:
          description: Do incoming emails in the Inboxes require checking for SPF/DKIM/DMARC?
          example: true
          type: boolean
        use_provided_modified_at:
          description: Allow uploaders to set `provided_modified_at` for uploaded files?
          example: true
          type: boolean
        user:
          $ref: "#/components/schemas/UserEntity"
        user_lockout:
          description: Will users be locked out after incorrect login attempts?
          example: true
          type: boolean
        user_lockout_lock_period:
          description: How many hours to lock user out for failed password?
          example: 1
          format: int32
          type: integer
        user_lockout_tries:
          description: Number of login tries within `user_lockout_within` hours before users are locked out
          example: 1
          format: int32
          type: integer
        user_lockout_within:
          description: Number of hours for user lockout window
          example: 6
          format: int32
          type: integer
        user_requests_enabled:
          description: Enable User Requests feature
          example: true
          type: boolean
        user_requests_notify_admins:
          description: Send email to site admins when a user request is received?
          example: true
          type: boolean
        welcome_custom_text:
          description: Custom text send in user welcome email
          example: Welcome to my site!
          type: string
        welcome_email_cc:
          description: Include this email in welcome emails if enabled
          example: example
          format: email
          type: string
        welcome_email_enabled:
          description: Will the welcome email be sent to new users?
          example: true
          type: boolean
        welcome_email_subject:
          description: Include this email subject in welcome emails if enabled
          example: example
          type: string
        welcome_screen:
          description: Does the welcome screen appear?
          enum:
            - enabled
            - hidden
            - disabled
          example: user_controlled
          type: string
        windows_mode_ftp:
          description: Does FTP user Windows emulation mode?
          example: true
          type: boolean
      type: object
      x-docs: |
        # Site

        The Site resource in the REST API allows you to operate on your Site.
        This is the place you'll come to update site settings, as well as manage sitewide API keys.

        Most site settings can be set via the API.
    SsoStrategyEntity:
      description: List Sso Strategies
      properties:
        deprovision_behavior:
          description: Method used for deprovisioning users.
          enum:
            - disable
            - delete
          example: disable
          type: string
        deprovision_groups:
          description: Auto-deprovision group membership based on group memberships on the SSO side?
          type: boolean
        deprovision_users:
          description: Auto-deprovision users?
          type: boolean
        enabled:
          description: Is strategy enabled?  This may become automatically set to `false` after a high number and duration of failures.
          example: true
          type: boolean
        id:
          description: ID
          example: 1
          format: int32
          type: integer
        label:
          description: Custom label for the SSO provider on the login page.
          example: My Corporate SSO Provider
          type: string
        ldap_base_dn:
          description: Base DN for looking up users in LDAP server
          example: example
          type: string
        ldap_domain:
          description: Domain name that will be appended to LDAP usernames
          example: mysite.com
          type: string
        ldap_host:
          description: LDAP host
          example: ldap.site.com
          type: string
        ldap_host_2:
          description: LDAP backup host
          example: ldap2.site.com
          type: string
        ldap_host_3:
          description: LDAP backup host
          example: ldap3.site.com
          type: string
        ldap_port:
          description: LDAP port
          example: 1
          format: int32
          type: integer
        ldap_secure:
          description: Use secure LDAP?
          example: true
          type: boolean
        ldap_username:
          description: Username for signing in to LDAP server.
          example: "[ldap username]"
          type: string
        ldap_username_field:
          description: LDAP username field
          enum:
            - sAMAccountName
            - userPrincipalName
          example: sAMAccountName
          type: string
        logo_url:
          description: URL holding a custom logo for the SSO provider on the login page.
          example: https://mysite.files.com/.../logo.png
          type: string
        protocol:
          description: SSO Protocol
          enum:
            - oauth2
            - _unused_openid2
            - saml
            - active_directory
            - open_ldap
            - scim
          example: oauth2
          type: string
        provider:
          description: Provider name
          enum:
            - google
            - auth0
            - okta
            - atlassian
            - azure
            - box
            - dropbox
            - slack
            - _unused_ubuntu
            - onelogin
            - saml
            - idaptive
            - ldap
            - scim
          example: okta
          type: string
        provision_attachments_permission:
          description: "DEPRECATED: Auto-provisioned users get Sharing permission. Use a Group with the Bundle permission instead."
          example: true
          type: boolean
        provision_company:
          description: Default company for auto provisioned users.
          example: ACME Corp.
          type: string
        provision_dav_permission:
          description: Auto-provisioned users get WebDAV permission?
          example: true
          type: boolean
        provision_email_signup_groups:
          description: Comma-separated list of group names whose members will be created with email_signup authentication.
          example: Employees
          type: string
        provision_ftp_permission:
          description: Auto-provisioned users get FTP permission?
          example: true
          type: boolean
        provision_group_default:
          description: Comma-separated list of group names for groups to automatically add all auto-provisioned users to.
          example: Employees
          type: string
        provision_group_exclusion:
          description: Comma-separated list of group names for groups (with optional wildcards) that will be excluded from auto-provisioning.
          example: Employees
          type: string
        provision_group_inclusion:
          description: Comma-separated list of group names for groups (with optional wildcards) that will be auto-provisioned.
          example: Employees
          type: string
        provision_group_required:
          description: Comma or newline separated list of group names (with optional wildcards) to require membership for user provisioning.
          example: example
          type: string
        provision_groups:
          description: Auto-provision group membership based on group memberships on the SSO side?
          type: boolean
        provision_sftp_permission:
          description: Auto-provisioned users get SFTP permission?
          example: true
          type: boolean
        provision_site_admin_groups:
          description: Comma-separated list of group names whose members will be created as Site Admins.
          example: Employees
          type: string
        provision_time_zone:
          description: Default time zone for auto provisioned users.
          example: Eastern Time (US & Canada)
          type: string
        provision_users:
          description: Auto-provision users?
          type: boolean
        saml_provider_cert_fingerprint:
          description: Identity provider sha256 cert fingerprint if saml_provider_metadata_url is not available.
          example: example
          type: string
        saml_provider_issuer_url:
          description: Identity provider issuer url
          example: example
          type: string
        saml_provider_metadata_content:
          description: Custom identity provider metadata
          example: example
          type: string
        saml_provider_metadata_url:
          description: Metadata URL for the SAML identity provider
          example: example
          type: string
        saml_provider_slo_target_url:
          description: Identity provider SLO endpoint
          example: example
          type: string
        saml_provider_sso_target_url:
          description: Identity provider SSO endpoint if saml_provider_metadata_url is not available.
          example: example
          type: string
        scim_authentication_method:
          description: SCIM authentication type.
          enum:
            - none
            - basic
            - token
          example: example
          type: string
        scim_oauth_access_token:
          description: SCIM OAuth Access Token.
          example: example
          type: string
        scim_oauth_access_token_expires_at:
          description: SCIM OAuth Access Token Expiration Time.
          example: example
          type: string
        scim_username:
          description: SCIM username.
          example: example
          type: string
        subdomain:
          description: Subdomain
          example: my-site
          type: string
      type: object
      x-docs: |
        An SSO Strategy is a method for allowing users to sign in via another identity provider, such as Okta or Auth0.

        It is rare that you will need to use API endpoints for managing these, and we recommend instead managing these via the web interface.
        Nevertheless, we share the API documentation here.
    StatusEntity:
      description: Test webhook.
      properties:
        clickwrap_body:
          description: Required Clickwrap body
          example: example
          type: string
        clickwrap_id:
          description: Required Clickwrap id
          example: 1
          format: int32
          type: integer
        code:
          description: Status HTTP code
          example: 200
          format: int32
          type: integer
        data:
          $ref: "#/components/schemas/AutoEntity"
        errors:
          description: A list of api errors
          example:
            - null
          items:
            $ref: "#/components/schemas/ErrorsEntity"
          type: array
        message:
          description: Error message
          example: example
          type: string
        status:
          description: Status message
          example: ""
          type: string
      type: object
      x-docs: null
    StyleEntity:
      description: Show Style
      properties:
        id:
          description: Style ID
          example: 1
          format: int32
          type: integer
        logo:
          $ref: "#/components/schemas/ImageEntity"
        path:
          description: Folder path
          example: example
          type: string
        thumbnail:
          $ref: "#/components/schemas/ImageEntity"
      type: object
      x-docs: |
        Styles are custom sets of branding that can be applied on a per-folder basis.
        Currently these only support Logos per folder, but in the future we may extend these to also support colors.
        If you want to see that, please let us know so we can add your vote to the list.
    UsageDailySnapshotEntity:
      description: List Usage Daily Snapshots
      properties:
        api_usage_available:
          description: True if the API usage fields `read_api_usage` and `write_api_usage` can be relied upon.  If this is false, we suggest hiding that value from any UI.
          example: true
          type: boolean
        current_storage:
          description: GB of Files Native Storage used on this day.
          example: 1
          format: int32
          type: integer
        date:
          description: The date of this usage record
          example: 2000-01-01T01:00:00Z
          format: date
          type: string
        deleted_files_counted_in_minimum:
          description: GB of Files Native Storage used on this day for files that have been permanently deleted but were uploaded less than 30 days ago, and are still billable.
          example: 1
          format: int32
          type: integer
        deleted_files_storage:
          description: GB of Files Native Storage used on this day for files that have been deleted and are stored as backups.
          example: 1
          format: int32
          type: integer
        id:
          description: ID of the usage record
          example: 1
          format: int32
          type: integer
        read_api_usage:
          description: "Read API Calls used on this day. Note: only updated for days before the current day."
          example: 1
          format: int32
          type: integer
        root_storage:
          description: GB of Files Native Storage used for the root folder.  Included here because this value will not be part of `usage_by_top_level_dir`
          example: 1
          format: int32
          type: integer
        usage_by_top_level_dir:
          description: Usage broken down by each top-level folder
          example:
            key: example value
          type: object
          x-object-type:
            key_type: string
            type: hash
            value_type: string
        user_count:
          description: Number of billable users as of this day.
          example: 1
          format: int32
          type: integer
        write_api_usage:
          description: "Write API Calls used on this day. Note: only updated for days before the current day."
          example: 1
          format: int32
          type: integer
      type: object
      x-docs: null
    UsageSnapshotEntity:
      description: List Usage Snapshots
      properties:
        bytes_sent:
          description: Transfer Usage for period - Outbound GB from Files Native Storage
          example: 1
          format: double
          type: number
        current_storage:
          description: Current total Storage Usage GB as of end date (not necessarily high water mark, which is used for billing)
          example: 1
          format: double
          type: number
        deleted_files_counted_in_minimum:
          description: Storage Usage for files that are deleted but uploaded within last 30 days as of end date (not necessarily high water mark, which is used for billing)
          example: 1
          format: double
          type: number
        deleted_files_storage:
          description: Storage Usage for files that are deleted but retained as backups as of end date (not necessarily high water mark, which is used for billing)
          example: 1
          format: double
          type: number
        end_at:
          description: Usage snapshot end date/time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        high_water_storage:
          description: Highest Storage Usage GB recorded in time period (used for billing)
          example: 1
          format: double
          type: number
        high_water_user_count:
          description: Highest user count number in time period
          example: 1
          format: double
          type: number
        id:
          description: Usage snapshot ID
          example: 1
          format: int32
          type: integer
        root_storage:
          description: Storage Usage for root folder as of end date (not necessarily high water mark, which is used for billing)
          example: 1
          format: double
          type: number
        start_at:
          description: Usage snapshot start date/time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        sync_bytes_received:
          description: Transfer Usage for period - Inbound GB to Remote Servers (Sync/Mount)
          example: 1
          format: double
          type: number
        sync_bytes_sent:
          description: Transfer Usage for period - Outbound GB from Remote Servers (Sync/Mount)
          example: 1
          format: double
          type: number
        total_billable_transfer_usage:
          description: Transfer usage for period - Total Billable amount
          example: 1
          format: double
          type: number
        total_billable_usage:
          description: Storage + Transfer Usage - Total Billable amount
          example: 1
          format: double
          type: number
        usage_by_top_level_dir:
          description: Storage Usage - map of root folders to their usage as of end date (not necessarily high water mark, which is used for billing)
          example:
            key: example value
          type: object
          x-object-type:
            key_type: string
            type: hash
            value_type: string
      type: object
      x-docs: null
    UserCipherUseEntity:
      description: List User Cipher Uses
      properties:
        created_at:
          description: The earliest recorded use of this combination of interface and protocol and cipher (for this user)
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        id:
          description: UserCipherUse ID
          example: 1
          format: int32
          type: integer
        interface:
          description: The interface accessed
          enum:
            - web
            - ftp
            - sftp
            - dav
            - desktop
            - restapi
            - robot
            - jsapi
          example: restapi
          type: string
        protocol_cipher:
          description: The protocol and cipher employed
          example: TLSv1.2; ECDHE-RSA-AES256-GCM-SHA384
          type: string
        updated_at:
          description: The most recent use of this combination of interface and protocol and cipher (for this user)
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        user_id:
          description: ID of the user who performed this access
          example: 1
          format: int32
          type: integer
      type: object
      x-docs: |
        This object allows you to see the exact set of encryption ciphers and protocols used by a given user.
        This is most often used to support migrations from one TLS version to the next.  You can query each user and determine who is still using legacy ciphers.
    UserEntity:
      description: Create User
      properties:
        active_2fa:
          description: Is 2fa active for the user?
          example: true
          type: boolean
        admin_group_ids:
          description: List of group IDs of which this user is an administrator
          example:
            - 1
          items:
            example:
              - 1
            format: int32
            type: integer
          type: array
        allowed_ips:
          description: A list of allowed IPs if applicable.  Newline delimited
          example: 127.0.0.1
          type: string
        api_keys_count:
          description: Number of api keys associated with this user
          example: 1
          format: int32
          type: integer
        attachments_permission:
          description: "DEPRECATED: Can the user create Bundles (aka Share Links)? Use the bundle permission instead."
          example: true
          type: boolean
        authenticate_until:
          description: Scheduled Date/Time at which user will be deactivated
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        authentication_method:
          description: How is this user authenticated?
          enum:
            - password
            - unused_former_ldap
            - sso
            - none
            - email_signup
            - password_with_imported_hash
          example: password
          type: string
        avatar_url:
          description: URL holding the user's avatar
          example: example
          type: string
        billing_permission:
          description: Allow this user to perform operations on the account, payments, and invoices?
          type: boolean
        bypass_inactive_disable:
          description: Exempt this user from being disabled based on inactivity?
          type: boolean
        bypass_site_allowed_ips:
          description: Allow this user to skip site-wide IP blacklists?
          type: boolean
        company:
          description: User's company
          example: ACME Corp.
          type: string
        created_at:
          description: When this user was created
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        dav_permission:
          description: Can the user connect with WebDAV?
          example: true
          type: boolean
        days_remaining_until_password_expire:
          description: Number of days remaining until password expires
          example: 1
          format: int32
          type: integer
        disabled:
          description: Is user disabled? Disabled users cannot log in, and do not count for billing purposes.  Users can be automatically disabled after an inactivity period via a Site setting.
          example: true
          type: boolean
        email:
          description: User email address
          example: example
          format: email
          type: string
        externally_managed:
          description: Is this user managed by a SsoStrategy?
          example: true
          type: boolean
        first_login_at:
          description: User's first login time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        ftp_permission:
          description: Can the user access with FTP/FTPS?
          example: true
          type: boolean
        group_ids:
          description: Comma-separated list of group IDs of which this user is a member
          example: example
          type: string
        header_text:
          description: Text to display to the user in the header of the UI
          example: User-specific message.
          type: string
        id:
          description: User ID
          example: 1
          format: int32
          type: integer
        language:
          description: Preferred language
          example: en
          type: string
        last_active_at:
          description: User's most recent activity time, which is the latest of most recent login, most recent API use, enablement, or creation
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        last_api_use_at:
          description: User's most recent API use time
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        last_dav_login_at:
          description: User's most recent login time via WebDAV
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        last_desktop_login_at:
          description: User's most recent login time via Desktop app
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        last_ftp_login_at:
          description: User's most recent login time via FTP
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        last_login_at:
          description: User's most recent login time via any protocol
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        last_protocol_cipher:
          description: The most recent protocol and cipher used
          example: example
          type: string
        last_restapi_login_at:
          description: User's most recent login time via Rest API
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        last_sftp_login_at:
          description: User's most recent login time via SFTP
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        last_web_login_at:
          description: User's most recent login time via web
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        lockout_expires:
          description: Time in the future that the user will no longer be locked out if applicable
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        name:
          description: User's full name
          example: John Doe
          type: string
        notes:
          description: Any internal notes on the user
          example: Internal notes on this user.
          type: string
        notification_daily_send_time:
          description: Hour of the day at which daily notifications should be sent. Can be in range 0 to 23
          example: 18
          format: int32
          type: integer
        office_integration_enabled:
          description: Enable integration with Office for the web?
          example: true
          type: boolean
        password_expire_at:
          description: Password expiration datetime
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        password_expired:
          description: Is user's password expired?
          example: true
          type: boolean
        password_set_at:
          description: Last time the user's password was set
          example: 2000-01-01T01:00:00Z
          format: date-time
          type: string
        password_validity_days:
          description: Number of days to allow user to use the same password
          example: 1
          format: int32
          type: integer
        public_keys_count:
          description: Number of public keys associated with this user
          example: 1
          format: int32
          type: integer
        receive_admin_alerts:
          description: Should the user receive admin alerts such a certificate expiration notifications and overages?
          example: true
          type: boolean
        require_2fa:
          description: 2FA required setting
          enum:
            - use_system_setting
            - always_require
            - never_require
          example: always_require
          type: string
        require_password_change:
          description: Is a password change required upon next user login?
          example: true
          type: boolean
        restapi_permission:
          description: Can this user access the REST API?
          example: true
          type: boolean
        self_managed:
          description: Does this user manage it's own credentials or is it a shared/bot user?
          example: true
          type: boolean
        sftp_permission:
          description: Can the user access with SFTP?
          example: true
          type: boolean
        site_admin:
          description: Is the user an administrator for this site?
          example: true
          type: boolean
        skip_welcome_screen:
          description: Skip Welcome page in the UI?
          example: true
          type: boolean
        ssl_required:
          description: SSL required setting
          enum:
            - use_system_setting
            - always_require
            - never_require
          example: always_require
          type: string
        sso_strategy_id:
          description: SSO (Single Sign On) strategy ID for the user, if applicable.
          example: 1
          format: int32
          type: integer
        subscribe_to_newsletter:
          description: Is the user subscribed to the newsletter?
          example: true
          type: boolean
        time_zone:
          description: User time zone
          example: Pacific Time (US & Canada)
          type: string
        type_of_2fa:
          description: Type(s) of 2FA methods in use.  Will be either `sms`, `totp`, `u2f`, `yubi`, or multiple values sorted alphabetically and joined by an underscore.
          example: yubi
          type: string
        user_root:
          description: Root folder for FTP (and optionally SFTP if the appropriate site-wide setting is set.)  Note that this is not used for API, Desktop, or Web interface.
          example: example
          type: string
        username:
          description: User's username
          example: user
          type: string
      type: object
      x-docs: null
    UserRequestEntity:
      description: Create User Request
      properties:
        details:
          description: Details of the user's request
          example: Changed Departments
          type: string
        email:
          description: User email address
          example: example
          format: email
          type: string
        id:
          description: ID
          example: 1
          format: int32
          type: integer
        name:
          description: User's full name
          example: John Doe
          type: string
      type: object
      x-docs: |
        User Requests allow anonymous users to place a request for access on the login screen to the site administrator.
    WebhookTestEntity:
      description: Create Webhook Test
      properties:
        code:
          description: Status HTTP code
          example: 200
          format: int32
          type: integer
        data:
          $ref: "#/components/schemas/AutoEntity"
        message:
          description: Error message
          example: ""
          type: string
        status:
          description: Status message
          example: ""
          type: string
        success:
          description: The success status of the webhook test
          example: true
          type: boolean
      type: object
      x-docs: null
    patchFormFieldSets:
      description: Update Form Field Set
      properties:
        form_fields:
          items:
            properties:
              default_option:
                description: Default option to be preselected in the dropdown or radio.
                type: string
              field_type:
                description: "Type of field: text, text_area, dropdown, or radio"
                type: string
              help_text:
                description: Help text of field
                type: string
              id:
                description: Id of existing Form Field
                format: int32
                type: integer
              label:
                description: Label of Field
                type: string
              options_for_select:
                description: List of options for dropdown or radio
                type: string
              required:
                description: Is this a required field? (default true)
                type: boolean
            type: object
          type: array
        skip_company:
          description: Skip validating company
          type: boolean
        skip_email:
          description: Skip validating form email
          type: boolean
        skip_name:
          description: Skip validating form name
          type: boolean
        title:
          description: Title to be displayed
          type: string
      type: object
    postFormFieldSets:
      description: Create Form Field Set
      properties:
        form_fields:
          items:
            properties:
              default_option:
                description: Default option to be preselected in the dropdown or radio.
                type: string
              field_type:
                description: "Type of field: text, text_area, dropdown, or radio"
                type: string
              help_text:
                description: Help text of field
                type: string
              id:
                description: Id of existing Form Field
                format: int32
                type: integer
              label:
                description: Label of Field
                type: string
              options_for_select:
                description: List of options for dropdown or radio
                type: string
              required:
                description: Is this a required field? (default true)
                type: boolean
            type: object
          type: array
        skip_company:
          description: Skip validating company
          type: boolean
        skip_email:
          description: Skip validating form email
          type: boolean
        skip_name:
          description: Skip validating form name
          type: boolean
        title:
          description: Title to be displayed
          type: string
        user_id:
          description: User ID.  Provide a value of `0` to operate the current session's user.
          format: int32
          type: integer
      type: object
  securitySchemes:
    api_key:
      description: API Key - supports user-based or site-wide API keys
      in: header
      name: X-FilesAPI-Key
      type: apiKey
x-behaviors:
  - behavior: webhook
    children_can_add: true
    children_can_override: false
    docs: |
      Sends an HTTP(S) request to a remote server whenever certain actions occur on a folder.
      Webhooks are often used to integrate Files.com with other services.
    requires_attachment: false
    supports_mounted_folders: true
    unique_per_folder: false
    value_hash_params:
      - description: Array of URLs to send the webhook to.
        example:
          - https://mysite.com/url...
        name: urls
      - description: "Default: `GET`.  May also be set to `POST`."
        example: POST
        name: method
      - description: "Leave blank to send webhooks on any action on this folder.  Or, for specific actions, you may specify an array of action types.  Valid values are: `create`, `read`, `update`, `destroy`, `move`, `copy`."
        example:
          - create
          - read
          - update
          - destroy
          - move
          - copy
        name: triggers
      - description: Leave blank to trigger webhooks on any file in this folder.  Or you may specify an array of filenames (possibly with wildcards) to match for action path.
        example:
          - "*.pdf"
          - "*so*.jpg"
        name: triggering_filenames
      - description: May be `JSON`, `XML`, `RAW`, `EV1`, or `EV2`.  If set to `RAW` or left blank, we will deliver the webhook using the HTTP GET params or POST body.  If JSON or XML, we will encode the payload accordingly and send a matching `Content-Type` header.  If set to EV1, we will encode the payload to emulate ExaVault's version 1 webhook format.  If set to EV2, we will encode the payload to emulate ExaVault's version 2.0 webhook format.
        example: RAW
        name: encoding
      - description: Hash of HTTP Headers to send.
        example:
          MY-HEADER: foo
        name: headers
      - description: Hash of Body Params to send
        example:
          MY_BODY_PARAM: bar
        name: body
      - description: If provided, this token will be used to sign webhook messages cryptographically to allow you to verify the webhook authenticity.
        example: tok12345
        name: verification_token
      - description: A string specifying the name of a form field containing the contents of the file that triggered this webhook send. If this value is present, the webhook will submit a `multipart/form-data` POST with no request body encoding.
        example: my_form_field
        name: file_form_field
      - description: When sending webhook requests, submit the contents of the file that triggered this webhook send as the request body.
        example: my_file_body
        name: file_as_body
    visible_to_non_admins: false
  - behavior: file_expiration
    children_can_add: false
    children_can_override: true
    docs: |
      Files in this folder will expire (be deleted) after a certain number of days.  This is most often used for compliance purposes where different types of data may need different retention settings.  It's also great for managing your costs.  You can retain different data for less time than others.

      Value is stored as an Integer (not a hash/array) representing the number of days.
      ```
    requires_attachment: false
    supports_mounted_folders: false
    unique_per_folder: true
    value_hash_params:
      - description: Number of days to keep files around.
        example: 30
        name: all
    visible_to_non_admins: true
  - behavior: auto_encrypt
    children_can_add: false
    children_can_override: true
    docs: |
      Files will be automatically encrypted after uploading using your provided GPG key.

      This Behavior is often used on our HIPAA accounts to convert data into a format unreadable by even us.
      GPG is an asymmetric encryption type (which means it uses public keys and private keys).
      Because you are only providing us your public key and keeping your private key, we won't be able to read anything once it has been GPG encrypted.
    requires_attachment: false
    supports_mounted_folders: false
    unique_per_folder: true
    value_hash_params:
      - description: Must be set to `PGP/GPG`.  If we support other options in the future (like OpenSSL), we will amend this option.
        example: PGP/GPG
        name: algorithm
      - description: Suffix to apply to filenames once they've been uploaded.
        example: .gpg
        name: suffix
      - description: Your GPG public key.  Please be sure not to send your private key here. If that happens, we try to detect it and disable the behavior for your security.
        example: "[your GPG public key]"
        friendly_name: Public Encryption Key
        name: key
      - description: If true, encrypted files are written as ascii text.
        example: false
        name: armor
    visible_to_non_admins: true
  - behavior: lock_subfolders
    children_can_add: false
    children_can_override: true
    docs: |
      The subfolder structure of this folder may not be changed.
      This is useful in conjunction with workflows and automations to ensure your folder structure stays as you expect.

      Children Recursive: Do not allow Create/Move/Delete on parent folder, child folders and any descendant folders.
      Children: Do not allow Create/Move/Delete on parent folder or child folders but do allow on any descendant folders.
      Self: Do not allow Delete or Rename of this(parent) folder. Do allow Create/Move/Delete on child folders and any descendant folders.
    requires_attachment: false
    supports_mounted_folders: true
    unique_per_folder: true
    value_hash_params:
      - description: URL key used for the inbox. Can be `children_recursive` (default), `children`, `self`, or `none`.
        example: children_recursive
        name: level
    visible_to_non_admins: true
  - behavior: storage_region
    children_can_add: false
    children_can_override: true
    docs: |-
      Files in this folder are stored in a certain geographical region.
      If you set this Behavior on an existing folder, we will migrate existing files to the new location automatically.
      `us-east-1` | USA, Virginia
      `ap-southeast-2` | Australia, Sydney
      `ca-central-1` | Canada, Toronto
      `eu-central-1` | EU - Germany, Frankfurt
      `eu-west-2` | UK, London
      `ap-northeast-1` | Japan, Tokyo
      `ap-southeast-1` | Singapore
    requires_attachment: false
    supports_mounted_folders: false
    unique_per_folder: true
    value_hash_params:
      - description: Valid AWS region
        example: us-east-1
        name: all
    visible_to_non_admins: true
  - behavior: serve_publicly
    children_can_add: true
    children_can_override: false
    docs: |
      Files in this folder are served via a public HTTPS URL at `https://SUBDOMAIN.hosted-by-files.com/...`

      This feature works with common static site generators such as Jekyll and Middleman, and allows any static web assets or website to be hosted.
      It's a great way to get extra mileage out of your Files.com account and avoid having to pay for separate web hosting.
    requires_attachment: false
    supports_mounted_folders: true
    unique_per_folder: false
    value_hash_params:
      - description: URL path for where the stuff is publicly hosted.  It will look like `https://SUBDOMAIN.hosted-by-files.com/{key}/`
        example: public-photos
        friendly_name: URL Path
        name: key
      - description: Show an index page listing the folder contents?
        example: true
        name: show_index
    visible_to_non_admins: true
  - behavior: create_user_folders
    children_can_add: true
    children_can_override: false
    docs: |
      Create a folder here for new users when they are added.
      This Behavior is typically used to implement home folders for users.
      It's also a good building block for more advanced automations and workflows.
    requires_attachment: false
    supports_mounted_folders: true
    unique_per_folder: false
    value_hash_params:
      - description: What permission level to give the user on his or her new folder?  Takes the same options as the Permissions endpoint.
        example: full
        name: permission
      - description: Additional permission level to give the user on his or her new folder.  Used to apply a second permission.  Takes the same options as the Permissions endpoint.
        example: bundle
        name: additional_permission
      - description: Apply this behavior to existing users or only newly added users?
        example: true
        name: existing_users
      - description: Only apply this behavior to users who are members of this group ID.
        example: 1
        name: group_id
      - description: What to name the new folder, currently we support 'name' and 'username', name will fall back to username if not present, default value is 'name'
        example: username
        name: new_folder_name
      - description: Subfolders to create within the new folder
        example:
          - in
          - out
        name: subfolders
    visible_to_non_admins: false
  - behavior: remote_server_sync
    children_can_add: true
    children_can_override: false
    docs: |
      Sync this folder to a remote server on a regular basis.  Remote servers can be FTP/SFTP servers, Amazon S3/GCP/Azure Blob/Wasabi/Backblaze B2 Buckets, and more.
      See the RemoteServer object for a full list of the Remote Servers supported.

      One-way and two-way sync options are supported.

      With this behavior, the Sync between Files.com and the RemoteServer occurs on a schedule.  Your plan level determines the frequency of the Sync schedule.
      Higher plans offer faster sync intervals.

      If you want to instead "mount" your RemoteServer for real-time operations within Files.com, please see the RemoteServerMount behavior instead.
    requires_attachment: false
    supports_mounted_folders: true
    unique_per_folder: false
    value_hash_params:
      - description: ID of the remote server to sync with.  See the Remote Servers API resource for managing these.
        example: two_way
        name: direction
      - description: True if this sync should not run.
        example: false
        name: disabled
      - description: If one-way syncing, should we delete or keep files after sync?
        example: keep
        name: keep_after_copy
      - description: If `true`, this sync will not run automatically via the built in scheduler used by Syncs.  A common reason to set this to `true` is if you intend to use a different scheduling mechanism such as a Webhook or email via an Automation.
        example: false
        name: manual
      - description: Path on remote server to sync with. This should be an absolute path on the remote server. This must be slash-delimited, but it must neither start nor end with a slash.
        example: ""
        name: remote_path
      - description: "One way or two way sync?  Valid values: `push_to_server`, `pull_from_server`, `two_way`"
        example: "1"
        name: remote_server_id
    visible_to_non_admins: false
  - behavior: inbox
    children_can_add: true
    children_can_override: false
    docs: |
      This folder operates as an inbox where anonymous users can upload files without logging in.

      ## Path Templates

      Admins can customize how submission subfolders are created by providing a path_template value. For example, an inbox can be created with the following `path_template` value:

      > {{name}}_{ip}

      This will result in submission subfolders that look like `john doe_127.0.0.1`.

      Path templates can use any of the following standard fields:
      * name
      * company
      * email
      * ip

      They can also use any fields defined on the inbox's custom form field set. An inbox with a custom form field set with a field called 'My Field'
      can have a path template that looks like this:

      > {{name}}_{{My Field}}

      Note: Field names are case-sensitive.
    requires_attachment: false
    supports_mounted_folders: true
    unique_per_folder: false
    value_hash_params:
      - description: URL key used for the inbox.
        example: application-forms
        friendly_name: URL Key
        name: key
      - description: "Do not create subfolders for files uploaded to this inbox. Note: there are subtle security pitfalls with allowing anonymous uploads from multiple users to live in the same folder. We strongly discourage use of this option unless absolutely required."
        example: true
        name: dont_separate_submissions_by_folder
      - description: If set to `true`, will prevent folders from being created inside an inbox submission.  Useful for certain automation use cases where nested folders don't work well.
        example: false
        name: dont_allow_folders_in_uploads
      - description: If set to `true`, requires that the inbox be shared with specific recipients rather than being accessed via a URL directly.
        example: false
        name: require_inbox_recipient
      - description: Show this inbox on the login page of your website.  Only settable by admins.
        example: true
        name: show_on_login_page
      - description: Title of the Inbox
        example: Submit Your Job Applications Here
        name: title
      - description: Description of the inbox shown on the actual inbox page.
        example: Thanks for coming to the Files.com Job Application Page
        name: description
      - description: Help text shown on the inbox page.
        example: If you have trouble here, please contact your recruiter.
        name: help_text
      - description: Show a registration page that captures the uploader's name and email address?
        example: true
        name: require_registration
      - description: Password to authenticate to inbox.
        example: foobar
        name: password
      - description: Template for creating submission subfolders. Can use the uploader's name, email address, ip, company, and any custom form data.
        example: "{{name}}_{{ip}}"
        name: path_template
      - description: This is only used when creating/updating a behavior. If set to `true`, will generate inbound_email_address to this folder. If set to `false`, will remove inbound_email_address to this folder. Please note that the uploads via email doesn't work if require_registration or password options are set to true.
        example: true
        name: enable_inbound_email_address
      - description: Notify senders on successful uploads via email
        example: true
        name: notify_senders_on_successful_uploads_via_email
      - description: allow/disallow whitelist
        example: true
        name: allow_whitelisting
      - description: Comma-separated string of whitelisted email addresses and domains
        example:
          - john@test.com
          - mydomain.com
        name: whitelist
    visible_to_non_admins: false
  - behavior: append_timestamp
    children_can_add: false
    children_can_override: false
    docs: |
      Append a timestamp to filenames of all files uploaded to this folder.
      This is often used in conjunction with Automations and remote server sync to ensure file organization.
    requires_attachment: false
    supports_mounted_folders: true
    unique_per_folder: true
    value_hash_params:
      - description: Format for the timestamp.  You may use anything accepted by the standard UNIX `date` command or `strftime`.
        example: -YYYY-MM-DDThh:mm:ssZ
        name: format
      - description: Accepts any valid timezone value from the web interface (e.g. "Eastern Time (US & Canada)") or a UTC offset ("-05:00").  Omit parameter for UTC time.
        example: Eastern Time (US & Canada)
        name: time_zone
    visible_to_non_admins: true
  - behavior: limit_file_extensions
    children_can_add: false
    children_can_override: false
    docs: |
      Limit the allowed extensions of files being uploaded to this folder.
    requires_attachment: false
    supports_mounted_folders: true
    unique_per_folder: true
    value_hash_params:
      - description: Array of whitelisted/blacklisted file extensions, depending on mode
        example:
          - xls
          - csv
        name: extensions
      - description: controls whether the behavior acts as a whitelist or as a blacklist. Default is `whitelist`.
        example: whitelist
        name: mode
    visible_to_non_admins: true
  - behavior: limit_file_regex
    children_can_add: false
    children_can_override: false
    docs: |
      Limit the filenames of files in this folder according to a regular expression.
    requires_attachment: false
    supports_mounted_folders: true
    unique_per_folder: true
    value_hash_params:
      - description: a single-element Array (not a hash) containing the regular expression, which must start and end with slashes.
        example:
          - /Document-.*/
        name: all
    visible_to_non_admins: true
  - behavior: amazon_sns
    children_can_add: true
    children_can_override: false
    docs: |
      Sends a notification via Amazon SNS whenever certain actions occur on a folder.
    requires_attachment: false
    supports_mounted_folders: true
    unique_per_folder: false
    value_hash_params:
      - description: Array of ARNs to send the notifications to.
        example:
          - ARN
        name: arns
      - description: "Leave blank to send an SNS notification on any action on this folder.  Or, for specific actions, you may specify an array of action types. Valid values are: `create`, `read`, `update`, `destroy`, `move`, `copy`."
        example:
          - create
          - read
          - update
          - destroy
          - move
          - copy
        name: triggers
      - description: AWS IAM Credentials to use for sending SNS requests. Must include `access_key_id`, and `secret_access_key`.
        example:
          access_key_id: ACCESS_KEY_ID
          region: us-east-1
          secret_access_key: SECRET_ACCESS_KEY
        name: aws_credentials
    visible_to_non_admins: false
  - behavior: watermark
    children_can_add: false
    children_can_override: false
    docs: |
      Adds a watermark to any image preview generated for an image in this folder.
    requires_attachment: true
    supports_mounted_folders: true
    unique_per_folder: true
    value_hash_params:
      - description: "Where to locate the watermark?  Valid values: `Center`, `East`, `NorthEast`, `North`, `NorthWest`, `SouthEast`, `South`, `SouthWest`, `West`"
        example: SouthWest
        name: gravity
      - description: Max width/height as percent of image preview.
        example: 20
        name: max_height_or_width
      - description: Percentage applied to the watermark.
        example: 25
        name: transparency
      - description: Watermark text. Use {{user}} to embed a username into the string.
        example: "Confidential: For use by {{user}} only."
        name: dynamic_text
    visible_to_non_admins: true
  - behavior: remote_server_mount
    children_can_add: false
    children_can_override: false
    docs: |
      Mount a remote server within this folder.  Remote servers can be FTP/SFTP servers, Amazon S3/GCP/Azure Blob/Wasabi/Backblaze B2 Buckets, and more.

      See the RemoteServer object for a full list of the Remote Servers supported.

      When this behavior is enabled, files in this folder will never actually be stored on Files.com.  Rather, Files.com will mount the remote server and
      act as a mere conduit from your clients to the remote server.

      Files.com workflow elements such as Permissions, Automations, Webhooks, Notifications, etc., will apply only to transfer activities that occur through
      Files.com.  We won't send Webhooks or Notifications based on activity that occurs via a direct connetion to the Remote Server other than through Files.com.
    requires_attachment: false
    supports_mounted_folders: true
    unique_per_folder: true
    value_hash_params:
      - description: ID of the remote server to sync with.  See the Remote Servers API resource for managing these.
        example: "1"
        name: remote_server_id
      - description: Path on remote server to treat as the root of this mount. This should be an absolute path on the remote server. This must be slash-delimited, but it must neither start nor end with a slash.
        example: ""
        name: remote_path
    visible_to_non_admins: true
  - behavior: slack_webhook
    children_can_add: true
    children_can_override: false
    docs: |
      Sends a Webhook call to Slack whenever certain actions occur on a folder.
      You will need to add the "Incoming WebHooks" App to your Slack workspace.
    requires_attachment: false
    supports_mounted_folders: true
    unique_per_folder: false
    value_hash_params:
      - description: Slack issued URL to send the webhook to.
        example: https://mysite.com/url...
        name: url
      - description: Username to display in Slack.
        example: Files.com
        name: username
      - description: Channel is send the webhook to.
        example: alerts
        name: channel
      - description: "Slack emoji to display in Slack, e.g. :robot_face:"
        example: ":robot_face:"
        name: icon_emoji
      - description: "Leave blank to send webhooks on any action on this folder.  Or, for specific actions, you may specify an array of action types.  Valid values are: `create`, `read`, `update`, `destroy`, `move`, `copy`."
        example:
          - create
          - read
          - update
          - destroy
          - move
          - copy
        name: triggers
    visible_to_non_admins: true
  - behavior: auto_decrypt
    children_can_add: false
    children_can_override: true
    docs: |
      Files will be automatically decrypted after uploading using your provided GPG key.
    requires_attachment: false
    supports_mounted_folders: false
    unique_per_folder: true
    value_hash_params:
      - description: Must be set to `PGP/GPG`.  If we support other options in the future (like OpenSSL), we will amend this option.
        example: PGP/GPG
        name: algorithm
      - description: Filename suffix that if present will be removed after decryption.
        example: .gpg
        name: suffix
      - description: Your GPG public key.  Please be sure not to send your private key here. If that happens, we try to detect it and disable the behavior for your security.
        example: "[your GPG public key]"
        friendly_name: Public Encryption Key
        name: key
      - description: Your GPG private key.
        example: "[your GPG private key]"
        friendly_name: Private Encryption Key
        name: private_key
      - description: Your GPG private key password. Only required for password protected keys.
        example: "[your GPG private key password]"
        friendly_name: Private Encryption Key Password
        name: private_key_password
      - description: Set to true if you want to ignore any errors from the MDC (modification detection code) check. MDC is an important security feature of GPG and this flag should not be set to true unless absolutely necessary
        example: true
        friendly_name: Ignore MDC Error
        name: ignore_mdc_error
    visible_to_non_admins: true
  - behavior: override_upload_filename
    children_can_add: false
    children_can_override: false
    docs: |
      Modify filenames of files uploaded to this folder. You can mix flags with regular chars and use anything accepted by the standard UNIX `date` command or `strftime`.

      List of available patterns:
      * %Fl - original filename, with extension, converted to lowercase
      * %Ff - original filename, with extension
      * %Fe - original extension
      * %Fb - original basename, without extension
    requires_attachment: false
    supports_mounted_folders: true
    unique_per_folder: true
    value_hash_params:
      - description: Format for filename override.  You may use anything from the list `%Fl, %Ff, %Fe, %Fb` as well as any additions you want to modify the name with.
        example: "%Fb_addition5%Fe"
        name: filename_override_pattern
      - description: Accepts any valid timezone value from the web interface (e.g. "Eastern Time (US & Canada)") or a UTC offset ("-05:00").  Omit parameter for UTC time.
        example: Eastern Time (US & Canada)
        name: time_zone
    visible_to_non_admins: true
x-errors:
  - http-code: 400
    title: Bad Request
    type: bad-request
  - http-code: 400
    title: Agent Upgrade Required
    type: bad-request/agent-upgrade-required
  - http-code: 400
    title: Attachment Too Large
    type: bad-request/attachment-too-large
  - http-code: 400
    title: Cannot Download Directory
    type: bad-request/cannot-download-directory
  - http-code: 400
    title: Cant Move With Multiple Locations
    type: bad-request/cant-move-with-multiple-locations
  - http-code: 400
    title: Datetime Parse
    type: bad-request/datetime-parse
  - http-code: 400
    title: Destination Same
    type: bad-request/destination-same
  - http-code: 400
    title: Folder Must Not Be A File
    type: bad-request/folder-must-not-be-a-file
  - http-code: 400
    title: Invalid Body
    type: bad-request/invalid-body
  - http-code: 400
    title: Invalid Cursor
    type: bad-request/invalid-cursor
  - http-code: 400
    title: Invalid Cursor Type For Sort
    type: bad-request/invalid-cursor-type-for-sort
  - http-code: 400
    title: Invalid Etags
    type: bad-request/invalid-etags
  - http-code: 400
    title: Invalid Filter Alias Combination
    type: bad-request/invalid-filter-alias-combination
  - http-code: 400
    title: Invalid Filter Combination
    type: bad-request/invalid-filter-combination
  - http-code: 400
    title: Invalid Filter Field
    type: bad-request/invalid-filter-field
  - http-code: 400
    title: Invalid Filter Param
    type: bad-request/invalid-filter-param
  - http-code: 400
    title: Invalid Input Encoding
    type: bad-request/invalid-input-encoding
  - http-code: 400
    title: Invalid Interface
    type: bad-request/invalid-interface
  - http-code: 400
    title: Invalid Oauth Provider
    type: bad-request/invalid-oauth-provider
  - http-code: 400
    title: Invalid Path
    type: bad-request/invalid-path
  - http-code: 400
    title: Invalid Return To Url
    type: bad-request/invalid-return-to-url
  - http-code: 400
    title: Invalid Upload Offset
    type: bad-request/invalid-upload-offset
  - http-code: 400
    title: Invalid Upload Part Gap
    type: bad-request/invalid-upload-part-gap
  - http-code: 400
    title: Invalid Upload Part Size
    type: bad-request/invalid-upload-part-size
  - http-code: 400
    title: Method Not Allowed
    type: bad-request/method-not-allowed
  - http-code: 400
    title: No Valid Input Params
    type: bad-request/no-valid-input-params
  - http-code: 400
    title: Operation On Non Scim Resource
    type: bad-request/operation-on-non-scim-resource
  - http-code: 400
    title: Part Number Too Large
    type: bad-request/part-number-too-large
  - http-code: 400
    title: Reauthentication Needed Fields
    type: bad-request/reauthentication-needed-fields
  - http-code: 400
    title: Request Param Path Cannot Have Trailing Whitespace
    type: bad-request/request-param-path-cannot-have-trailing-whitespace
  - http-code: 400
    title: Request Params Contain Invalid Character
    type: bad-request/request-params-contain-invalid-character
  - http-code: 400
    title: Request Params Invalid
    type: bad-request/request-params-invalid
  - http-code: 400
    title: Request Params Required
    type: bad-request/request-params-required
  - http-code: 400
    title: Search All On Child Path
    type: bad-request/search-all-on-child-path
  - http-code: 400
    title: Unsupported Currency
    type: bad-request/unsupported-currency
  - http-code: 400
    title: Unsupported Http Response Format
    type: bad-request/unsupported-http-response-format
  - http-code: 400
    title: Unsupported Media Type
    type: bad-request/unsupported-media-type
  - http-code: 400
    title: User Id Invalid
    type: bad-request/user-id-invalid
  - http-code: 400
    title: User Id On User Endpoint
    type: bad-request/user-id-on-user-endpoint
  - http-code: 400
    title: User Required
    type: bad-request/user-required
  - http-code: 401
    title: Authentication Required
    type: not-authenticated/authentication-required
  - http-code: 401
    title: Bundle Registration Code Failed
    type: not-authenticated/bundle-registration-code-failed
  - http-code: 401
    title: Files Agent Token Failed
    type: not-authenticated/files-agent-token-failed
  - http-code: 401
    title: Inbox Registration Code Failed
    type: not-authenticated/inbox-registration-code-failed
  - http-code: 401
    title: Invalid Credentials
    type: not-authenticated/invalid-credentials
  - http-code: 401
    title: Invalid Oauth
    type: not-authenticated/invalid-oauth
  - http-code: 401
    title: Invalid Or Expired Code
    type: not-authenticated/invalid-or-expired-code
  - http-code: 401
    title: Invalid Username Or Password
    type: not-authenticated/invalid-username-or-password
  - http-code: 401
    title: Locked Out
    type: not-authenticated/locked-out
  - http-code: 401
    title: Lockout Region Mismatch
    type: not-authenticated/lockout-region-mismatch
  - http-code: 401
    title: One Time Password Incorrect
    type: not-authenticated/one-time-password-incorrect
  - http-code: 401
    title: Two Factor Authentication Error
    type: not-authenticated/two-factor-authentication-error
  - http-code: 401
    title: Two Factor Authentication Setup Expired
    type: not-authenticated/two-factor-authentication-setup-expired
  - http-code: 403
    title: Api Key Is Disabled
    type: not-authorized/api-key-is-disabled
  - http-code: 403
    title: Api Key Is Path Restricted
    type: not-authorized/api-key-is-path-restricted
  - http-code: 403
    title: Api Key Only For Desktop App
    type: not-authorized/api-key-only-for-desktop-app
  - http-code: 403
    title: Api Key Only For Mobile App
    type: not-authorized/api-key-only-for-mobile-app
  - http-code: 403
    title: Api Key Only For Office Integration
    type: not-authorized/api-key-only-for-office-integration
  - http-code: 403
    title: Billing Permission Required
    type: not-authorized/billing-permission-required
  - http-code: 403
    title: Bundle Maximum Uses Reached
    type: not-authorized/bundle-maximum-uses-reached
  - http-code: 403
    title: Cannot Login While Using Key
    type: not-authorized/cannot-login-while-using-key
  - http-code: 403
    title: Cant Act For Other User
    type: not-authorized/cant-act-for-other-user
  - http-code: 403
    title: Contact Admin For Password Change Help
    type: not-authorized/contact-admin-for-password-change-help
  - http-code: 403
    title: Folder Admin Or Billing Permission Required
    type: not-authorized/folder-admin-or-billing-permission-required
  - http-code: 403
    title: Folder Admin Permission Required
    type: not-authorized/folder-admin-permission-required
  - http-code: 403
    title: Full Permission Required
    type: not-authorized/full-permission-required
  - http-code: 403
    title: History Permission Required
    type: not-authorized/history-permission-required
  - http-code: 403
    title: Insufficient Permission For Params
    type: not-authorized/insufficient-permission-for-params
  - http-code: 403
    title: Must Authenticate With Api Key
    type: not-authorized/must-authenticate-with-api-key
  - http-code: 403
    title: Need Admin Permission For Inbox
    type: not-authorized/need-admin-permission-for-inbox
  - http-code: 403
    title: Non Admins Must Query By Folder Or Path
    type: not-authorized/non-admins-must-query-by-folder-or-path
  - http-code: 403
    title: Not Allowed To Create Bundle
    type: not-authorized/not-allowed-to-create-bundle
  - http-code: 403
    title: Password Change Not Required
    type: not-authorized/password-change-not-required
  - http-code: 403
    title: Password Change Required
    type: not-authorized/password-change-required
  - http-code: 403
    title: Read Only Session
    type: not-authorized/read-only-session
  - http-code: 403
    title: Read Permission Required
    type: not-authorized/read-permission-required
  - http-code: 403
    title: Reauthentication Failed
    type: not-authorized/reauthentication-failed
  - http-code: 403
    title: Reauthentication Failed Final
    type: not-authorized/reauthentication-failed-final
  - http-code: 403
    title: Reauthentication Needed Action
    type: not-authorized/reauthentication-needed-action
  - http-code: 403
    title: Self Managed Required
    type: not-authorized/self-managed-required
  - http-code: 403
    title: Site Admin Required
    type: not-authorized/site-admin-required
  - http-code: 403
    title: Site Files Are Immutable
    type: not-authorized/site-files-are-immutable
  - http-code: 403
    title: Two Factor Authentication Required
    type: not-authorized/two-factor-authentication-required
  - http-code: 403
    title: User Id Without Site Admin
    type: not-authorized/user-id-without-site-admin
  - http-code: 403
    title: Write Permission Required
    type: not-authorized/write-permission-required
  - http-code: 403
    title: Zip Download Ip Mismatch
    type: not-authorized/zip-download-ip-mismatch
  - http-code: 404
    title: Not Found
    type: not-found
  - http-code: 404
    title: Api Key Not Found
    type: not-found/api-key-not-found
  - http-code: 404
    title: Bundle Path Not Found
    type: not-found/bundle-path-not-found
  - http-code: 404
    title: Bundle Registration Not Found
    type: not-found/bundle-registration-not-found
  - http-code: 404
    title: Code Not Found
    type: not-found/code-not-found
  - http-code: 404
    title: File Not Found
    type: not-found/file-not-found
  - http-code: 404
    title: File Upload Not Found
    type: not-found/file-upload-not-found
  - http-code: 404
    title: Folder Not Found
    type: not-found/folder-not-found
  - http-code: 404
    title: Group Not Found
    type: not-found/group-not-found
  - http-code: 404
    title: Inbox Not Found
    type: not-found/inbox-not-found
  - http-code: 404
    title: Nested Not Found
    type: not-found/nested-not-found
  - http-code: 404
    title: Plan Not Found
    type: not-found/plan-not-found
  - http-code: 404
    title: Site Not Found
    type: not-found/site-not-found
  - http-code: 404
    title: User Not Found
    type: not-found/user-not-found
  - http-code: 422
    title: Bundle Only Allows Previews
    type: processing-failure/bundle-only-allows-previews
  - http-code: 422
    title: Bundle Operation Requires Subfolder
    type: processing-failure/bundle-operation-requires-subfolder
  - http-code: 422
    title: Could Not Create Parent
    type: processing-failure/could-not-create-parent
  - http-code: 422
    title: Destination Exists
    type: processing-failure/destination-exists
  - http-code: 422
    title: Destination Folder Limited
    type: processing-failure/destination-folder-limited
  - http-code: 422
    title: Destination Parent Conflict
    type: processing-failure/destination-parent-conflict
  - http-code: 409
    title: Destination Parent Does Not Exist
    type: processing-failure/destination-parent-does-not-exist
  - http-code: 422
    title: Expired Private Key
    type: processing-failure/expired-private-key
  - http-code: 422
    title: Expired Public Key
    type: processing-failure/expired-public-key
  - http-code: 422
    title: Export Failure
    type: processing-failure/export-failure
  - http-code: 422
    title: Export Not Ready
    type: processing-failure/export-not-ready
  - http-code: 422
    title: Failed To Change Password
    type: processing-failure/failed-to-change-password
  - http-code: 422
    title: File Locked
    type: processing-failure/file-locked
  - http-code: 422
    title: File Not Uploaded
    type: processing-failure/file-not-uploaded
  - http-code: 422
    title: File Pending Processing
    type: processing-failure/file-pending-processing
  - http-code: 422
    title: File Too Big To Decrypt
    type: processing-failure/file-too-big-to-decrypt
  - http-code: 422
    title: File Too Big To Encrypt
    type: processing-failure/file-too-big-to-encrypt
  - http-code: 422
    title: File Uploaded To Wrong Region
    type: processing-failure/file-uploaded-to-wrong-region
  - http-code: 403
    title: Folder Locked
    type: processing-failure/folder-locked
  - http-code: 422
    title: Folder Not Empty
    type: processing-failure/folder-not-empty
  - http-code: 422
    title: History Unavailable
    type: processing-failure/history-unavailable
  - http-code: 422
    title: Invalid Bundle Code
    type: processing-failure/invalid-bundle-code
  - http-code: 422
    title: Invalid File Type
    type: processing-failure/invalid-file-type
  - http-code: 422
    title: Invalid Filename
    type: processing-failure/invalid-filename
  - http-code: 422
    title: Invalid Range
    type: processing-failure/invalid-range
  - http-code: 422
    title: Model Save Error
    type: processing-failure/model-save-error
  - http-code: 422
    title: Multiple Processing Errors
    type: processing-failure/multiple-processing-errors
  - http-code: 422
    title: Path Too Long
    type: processing-failure/path-too-long
  - http-code: 422
    title: Recipient Already Shared
    type: processing-failure/recipient-already-shared
  - http-code: 422
    title: Remote Server Error
    type: processing-failure/remote-server-error
  - http-code: 422
    title: Resource Locked
    type: processing-failure/resource-locked
  - http-code: 422
    title: Subfolder Locked
    type: processing-failure/subfolder-locked
  - http-code: 422
    title: Two Factor Authentication Code Already Sent
    type: processing-failure/two-factor-authentication-code-already-sent
  - http-code: 422
    title: Updates Not Allowed For Remotes
    type: processing-failure/updates-not-allowed-for-remotes
  - http-code: 429
    title: Reauthentication Rate Limited
    type: rate-limited/reauthentication-rate-limited
  - http-code: 429
    title: Too Many Concurrent Requests
    type: rate-limited/too-many-concurrent-requests
  - http-code: 429
    title: Too Many Login Attempts
    type: rate-limited/too-many-login-attempts
  - http-code: 429
    title: Too Many Requests
    type: rate-limited/too-many-requests
  - http-code: 429
    title: Too Many Shares
    type: rate-limited/too-many-shares
  - http-code: 503
    title: Uploads Unavailable
    type: service-unavailable/uploads-unavailable
  - http-code: 403
    title: Account Already Exists
    type: site-configuration/account-already-exists
  - http-code: 403
    title: Account Overdue
    type: site-configuration/account-overdue
  - http-code: 403
    title: No Account For Site
    type: site-configuration/no-account-for-site
  - http-code: 403
    title: Site Was Removed
    type: site-configuration/site-was-removed
  - http-code: 403
    title: Trial Expired
    type: site-configuration/trial-expired
  - http-code: 403
    title: Trial Locked
    type: site-configuration/trial-locked
  - http-code: 403
    title: User Requests Enabled Required
    type: site-configuration/user-requests-enabled-required
x-regions:
  - description: USA, Virginia
    name: us-east-1
  - description: Australia, Sydney
    name: ap-southeast-2
  - description: Canada, Toronto
    name: ca-central-1
  - description: EU - Germany, Frankfurt
    name: eu-central-1
  - description: UK, London
    name: eu-west-2
  - description: Japan, Tokyo
    name: ap-northeast-1
  - description: Singapore
    name: ap-southeast-1
x-site_attribute_requirements:
  allowed_countries: feature_bundle_power
  bundle_password_required: feature_bundle_power
  bundle_require_share_recipient: feature_bundle_power
  custom_namespace: feature_bundle_power
  disallowed_countries: feature_bundle_power
  domain: feature_bundle_power
  folder_permissions_groups_only: feature_bundle_power
  require_2fa: feature_bundle_power
  sftp_insecure_ciphers: feature_bundle_power
  smtp_address: feature_bundle_power
  smtp_authentication: feature_bundle_power
  smtp_from: feature_bundle_power
  smtp_password: feature_bundle_power
  smtp_port: feature_bundle_power
  smtp_username: feature_bundle_power
  tls_disabled: feature_bundle_power
  user_requests_enabled: feature_bundle_power
