openapi: 3.0.1
info:
 title: Satori API
 description: \|-
 This is an API SatoriCyber portal. Most API are protected bearer authentication. API identities should be created with Satori management portal.
 Use authentication API for token creation.
 termsOfService: http://swagger.io/terms/
 contact:
 email: support@satoricyber.com
 license:
 name: Apache 2.0
 url: http://www.apache.org/licenses/LICENSE-2.0.html
 version: "1.0"
tags:
\- name: Accounts
 description: "An account represents a Satori customer organization. Each account\
 \ has a unique identifier. Accounts contain objects such as Data Stores and Data\
 \ Access Controllers, Datasets, Security Policies and Masking Profiles."
\- name: Service Accounts
 description: "Service accounts are identities of the account that should only be\
 \ used for API access and process automation. Once you create a service account,\
 \ Satori generates service account credentials which are used to obtain authentication\
 \ tokens. Service accounts are assigned with a role that determines their permissions."
\- name: DAC Access Tokens
 description: "DAC access tokens are credentials used when integrating Satori with\
 \ BI tools. DAC access tokens should be kept secret, like passwords."
\- name: Data Access Requests
 description: "Data access requests are used to enable users to gain access to data\
 \ that is organized in datasets which include databases, schemas, tables or other\
 \ data assets. Once approved, the data consumer can then query the various data\
 \ stores to retrieve or manipulate data."
\- name: Audit Log
 description: "The Audit Log allows you to obtain complete, uniform and searchable\
 \ data access audits for all data stores with full user, access and data context.\
 \

The audit log data is retained in the account indefinitely and there\
 \ is no retention or roll-off window for the data. On the audit page, you can\
 \ query up to 90 days of audit data at a time."
\- name: Data Export
 description: "Data Export allows Satori customers to export the audit records to\
 \ their own storage system. Supported storage systems: Snowflake.

The\
 \ audit log data includes data access metadata such as queries, time of query,\
 \ usernames, data store, tags, locations, action types, country, volume, records,\
 \ tool used, policy name, city, time zone, client IP address, audit ID, query\
 \ ID, Auth. method, response time and processing time."
\- name: Identity Providers
 description: "Satori integrates with identity providers to manage users and groups\
 \ via the SCIM protocol.

The identity provider (IdP) is a service that\
 \ stores and verifies user identity. IdPs are typically cloud-hosted services,\
 \ and they often work with single sign-on (SSO) providers to authenticate users."
\- name: "Data Inventory \[DEPRECATED\]"
 description: This collection of Data Inventory API methods has been deprecated.
 Refer to the new Data Inventory APIs based on assets.
\- name: Masking Profiles
 description: Satori’s masking profiles allow organizations to mask query responses
 for their users to avoid exposing sensitive information.

Satori’s masking
 profiles can be applied to data detected and tagged by Satori’s data classification
 and tagging mechanism.
\- name: Security Policies
 description: The Satori Security Policy is a re-usable object that can be configured
 to contain multiple sets of dynamic masking configurations and data filtering
 configurations.

Satori's security policy engine is designed to protect
 an organization's data by authorizing specific individuals or groups of individuals
 to view data. The main objective of a security policy is to protect an organization's
 business interests.
\- name: Users and Roles
 description: "Each Satori account can be accessed by multiple users. Each user is\
 \ assigned with a role to reflect their responsibilities.

There are 2\
 \ types of users in Satori:

1. **Account User** \- The account\
    \ user is created by the account admins in the management console. Account users\
    \ are required to use two-factor authentication which must be configured at the\
    \ first time log in.
2. **Identity Provider User** \- The identity\
    \ provider user is created when a new user logins via SSO.

"
\- name: Data Inventory
 description: "Satori’s Data Inventory dynamically creates an inventory of the organization's\
 \ data, featuring the built-in Satori classifications. The data inventory provides\
 \ a holistic view of the organization's sensitive data and access patterns and\
 \ is augmented by powerful navigation, filtering and search functions.

The\
 \ inventory is a collection of assets. An asset represents a data asset in a data\
 \ store, for example: a database, schema, table or column in a relational database,\
 \ a database or a collection in MongoDB and so on.

In some data stores,\
 \ Satori supports listing semi-structured assets nested inside other assets. For\
 \ example, in a variant column in Snowflake users can store data in a JSON-like\
 \ format. Satori refers to such assets as semi-structured assets that are sub-assets\
 \ of the regular, structured assets."
\- name: Data Access Controllers (DACs)
 description: Satori provides multiple Data Access Controller (DAC) deployment options
 to support the operational and security requirements of organizations.
\- name: Datasets
 description: "A dataset is a collection of data store objects such as tables or\
 \ schemas from one or more data stores, that you wish to govern access to as a\
 \ single unit.

Data engineers create datasets as part of the data development\
 \ lifecycle. Once a dataset is defined you can then assign a data stewards to\
 \ manage the day to day operations of access to data."
\- name: User Directory
 description: "The User Directory enables Satori administrators to define user groups\
 \ in Satori based on existing users, identity provider groups and data store groups.\
 \

Groups are used to set policies or analyze data access. Satori groups\
 \ are useful for organizations that do not use an identity provider, or in cases\
 \ where the association of users to groups in the identity provider does not match\
 \ how data is accessed."
\- name: Taxonomy
 description: The Satori taxonomy is predefined by Satori. You can not modify the
 Satori Platform taxonomy tag categories or their classification tags.

The
 Satori custom data classification mechanism is designed to provide you with the
 ability to extend and enhance the Satori classification system by enabling you
 to create additional categories and data classifiers specific to your business
 or organization.
\- name: Data Access Rules
 description: Permissions to access data are defined for individual users or groups
 and are limited to a predefined time range. Satori can automatically revoke permissions
 if they are unused. This helps organizations avoid excess and unused permissions.
\- name: Service Account Authentication
 description: Service accounts are used for API access and process automation.
paths:
 /api/accounts/{id}:
 get:
 tags:
 \- Accounts
 summary: Retrieve an Account
 description: This HTTP GET method is used to retrieve the details of a specific
 account by its unique identifier (id).
 operationId: byId
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AccountOutput"
 "400":
 description: Invalid ID supplied
 "404":
 description: Account not found
 security:
 \- BearerAuth: \[\]
 /api/accounts/{id}/settings/data-portal/pre-defined-data-access-purposes:
 get:
 tags:
 \- Accounts
 summary: Retrieve Pre-Defined Data Access Purposes
 description: This HTTP GET method is used to retrieve the list of predefined
 data access purposes of the specified account.
 operationId: getAccountDataPortalPreDefinedDataAccessPurpose
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 type: array
 items:
 $ref: "#/components/schemas/PreDefinedDataAccessPurposesOutput"
 "400":
 description: Bad configuration request
 security:
 \- BearerAuth: \[\]
 /api/accounts/{id}/theme:
 get:
 tags:
 \- Accounts
 summary: Retrieve Account Theme
 description: "This HTTP GET method is used to fetch the theme settings associated\
 \ with a particular customer (Organization) account.

The theme settings\
 \ include visual customization options such as colors, fonts, logos, backgrounds\
 \ and design elements that define the look and feel of the account's interface\
 \ or user experience."
 operationId: getAccountTheme
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AccountThemeOutput"
 "400":
 description: Invalid ID supplied
 "404":
 description: Account not found
 security:
 \- BearerAuth: \[\]
 put:
 tags:
 \- Accounts
 summary: Update Account Theme
 description: "This HTTP PUT method is used to update the theme settings of a\
 \ specific customer account. This request includes the new theme settings,\
 \ such as updated colors, fonts, logos, backgrounds and design elements."
 operationId: updateAccountTheme
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 requestBody:
 content:
 multipart/form-data:
 schema:
 type: object
 properties:
 logo:
 $ref: "#/components/schemas/FormDataContentDisposition"
 logoMimeTypes:
 type: string
 logoSize:
 type: integer
 format: int32
 backgroundColor:
 type: string
 textPrimaryColor:
 type: string
 primaryColor:
 type: string
 enabled:
 type: boolean
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AccountThemeOutput"
 "400":
 description: Invalid ID supplied
 "404":
 description: Account not found
 security:
 \- BearerAuth: \[\]
 /api/accounts/{id}/identities:
 get:
 tags:
 \- Accounts
 summary: List All User Identities
 description: This HTTP GET method is used to fetch the list of identities linked
 to a specified account. "Identities" refers to users and service accounts.
 operationId: getAllAccountIdentities
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/IdentityMinimalOutput"
 "400":
 description: Invalid ID supplied
 "404":
 description: Account not found
 security:
 \- BearerAuth: \[\]
 /api/accounts/{id}/identities-with-custom-expiration-time:
 get:
 tags:
 \- Accounts
 summary: List Users with Custom Temporary Credentials Expiration
 description: This HTTP GET method is used to fetch the list of users or groups
 that has been configured with custom temporary credentials expiration.
 operationId: getCustomExpirationTimeForAllIdentitiesInAccount
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/IdentitiesExpirationTimeOutput"
 "400":
 description: Invalid ID supplied
 "404":
 description: Account not found
 security:
 \- BearerAuth: \[\]
 /api/accounts/{id}/settings/data-portal:
 put:
 tags:
 \- Accounts
 summary: Update Data Portal Settings
 description: "This PUT method is used to update the settings related to the\
 \ data portal for a specific account. The data portal settings include temporary\
 \ credentials for data access, predefined data access purpose and personal\
 \ access tokens associated with the account set in the management console."
 operationId: updateAccountDataPortalSettings
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AccountDataPortalSettingsDto"
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AccountOutput"
 "400":
 description: Bad configuration request
 security:
 \- BearerAuth: \[\]
 /api/accounts/{id}/notifications:
 post:
 tags:
 \- Accounts
 summary: Update Account Notification Settings
 description: This HTTP POST method is used to create new notifications associated
 with the specified account. Notifications (DAC Alerts) are used notifying
 the user about the current DAC version and certificate expirations.
 operationId: updateAccountNotification
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 requestBody:
 content:
 application/json:
 schema:
 type: array
 items:
 $ref: "#/components/schemas/NotificationSettingDto"
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/NotificationsSettingsOutput"
 "400":
 description: Invalid ID supplied
 "404":
 description: Account not found
 security:
 \- BearerAuth: \[\]
 /api/accounts/{id}/settings:
 put:
 tags:
 \- Accounts
 summary: Update Account General Settings
 description: This HTTP PUT method is used to update the general settings of
 the specified account. These settings include the account name and SSO configurations
 related to the account.
 operationId: updateAccountSettings
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AccountSettingsInput"
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AccountOutput"
 "400":
 description: Bad configuration request
 security:
 \- BearerAuth: \[\]
 /api/service-accounts/{id}:
 get:
 tags:
 \- Service Accounts
 summary: Retrieve a Service Account
 description: "This HTTP GET method is used to fetch the details of the specified\
 \ service account. A service account details include the name, creation date,\
 \ last updated date, the creator's name, the account ID and a description."
 operationId: byId\_1
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AccountServiceOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 delete:
 tags:
 \- Service Accounts
 summary: Delete a service account
 description: The HTTP DELETE method is used to delete a service account from
 the system.
 operationId: deleteById
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "204":
 description: Status OK.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/service-accounts:
 get:
 tags:
 \- Service Accounts
 summary: List all Service Accounts
 description: "This HTTP GET method is used to fetch a list of all the service\
 \ accounts in the system. The service account details include the name, creation\
 \ date, last updated date, the creator's name, the account ID and a description\
 \ for the service accounts."
 operationId: getAll
 parameters:
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AccountServiceQueryOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 post:
 tags:
 \- Service Accounts
 summary: Create a Service Account
 description: "This HTTP POST method is used to create a new service account.The\
 \ service account includes an account ID, a description and the service account\
 \ key.

NOTE: Service accounts are created with an automatically generated\
 \ key that is not kept in the system."
 operationId: create
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/ApiIdentityInput"
 responses:
 "201":
 description: "Status OK, service account created."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AccountServiceKeyOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/service-accounts/{id}/roles:
 get:
 tags:
 \- Service Accounts
 summary: Retrieve a Service Account Role
 description: This HTTP GET method is used to fetch the roles that have been
 assigned to a specific service account. Roles typically define the permissions
 and access rights the service account has within the system.
 operationId: getServiceAccountRole
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, roles found"
 content:
 application/json:
 schema:
 type: array
 items:
 $ref: "#/components/schemas/RoleOutput"
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/service-accounts/{id}/reset-api-key:
 post:
 tags:
 \- Service Accounts
 summary: Reset a Service Account Key
 description: "This HTTP POST method is used to reset the service account key\
 \ for the specified service account. Resetting a service account key is done\
 \ for security reasons, such as when the key may have been compromised or\
 \ when it's necessary to rotate keys periodically.

NOTE: The key is\
 \ automatically generated and is not kept in the system."
 operationId: resetApiKey
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, service account key was reset."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AccountServiceKeyOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/service-accounts/{id}/roles/{roleId}:
 put:
 tags:
 \- Service Accounts
 summary: Assign a Service Account Role
 description: This HTTP PUT method is used to assign a new role to a service
 account or update an existing role assignment. Roles determine what permissions
 and access levels the service account will have.
 operationId: setServiceAccountRole
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 \- name: roleId
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, service account role was changed"
 "401":
 description: Invalid Authorization
 "404":
 description: Provided role id lookup failed
 security:
 \- BearerAuth: \[\]
 /api/dac-access-token/{id}:
 get:
 tags:
 \- DAC Access Tokens
 summary: Retrieve a Dac Access Token
 description: This HTTP GET method is used to fetch details about a specific
 DAC access token.
 operationId: getById
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, dac access token is found."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DacAccessTokenOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 put:
 tags:
 \- DAC Access Tokens
 summary: Update a DACs Access Token
 description: "This HTTP PUT method is used to update the details of a DAC access\
 \ token. Updates include changes to the token's permissions, expiration date\
 \ or status."
 operationId: updateById
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DacAccessTokenInput"
 required: true
 responses:
 "200":
 description: "Status OK, DACs access token is updated"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DacAccessTokenOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 post:
 tags:
 \- DAC Access Tokens
 summary: Create a Dac Access Token
 description: "This HTTP POST method is used to create, renew or regenerate a\
 \ DAC access token."
 operationId: create\_1
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DacAccessTokenInput"
 required: true
 responses:
 "201":
 description: "Status OK, dac access token is created"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DacAccessTokenOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 delete:
 tags:
 \- DAC Access Tokens
 summary: Delete a DACs access token
 description: "This HTTP DELETE method is used to remove a DAC access token,\
 \ effectively invalidating it and preventing any further use."
 operationId: deleteById\_1
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "204":
 description: Status OK.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/dac-access-token:
 get:
 tags:
 \- DAC Access Tokens
 summary: List all the DACs Access Tokens
 description: "This HTTP GET method is used to fetch details about all the DAC\
 \ access tokens in the system. This includes information such as token IDs,\
 \ the creation date, update date, updated by, issuance dates, the DAC name,\
 \ permissions and expiration date and time."
 operationId: getAll\_1
 parameters:
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DacAccessTokenQueryResponse"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/data-access-request/{id}/approve:
 post:
 tags:
 \- Data Access Requests
 summary: Approve a Data Access Request
 description: "This HTTP POST method is used to approve a data access request,\
 \ granting the data consumer access to the requested dataset. This is part\
 \ of a data access request flow, where a user (data consumer) must receive\
 \ an approval before being granted access to a specific dataset."
 operationId: approveById
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/ApproveAccessRequestInput"
 responses:
 "204":
 description: Status OK.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/data-access-request/{id}:
 get:
 tags:
 \- Data Access Requests
 summary: Retrieve a Data Access Request
 description: "This HTTP GET method is used to fetch user information about a\
 \ specific data access request including, the user name, message, usage purpose\
 \ and data access level for the requested dataset."
 operationId: byId\_2
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, dataset found."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessRequestOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 delete:
 tags:
 \- Data Access Requests
 summary: Delete a Data Access Request
 description: This HTTP DELETE method is used to remove or cancel a data access
 request.
 operationId: deleteById\_2
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DeleteAccessRequestInput"
 responses:
 "204":
 description: Status OK.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/data-access-request:
 get:
 tags:
 \- Data Access Requests
 summary: List all Dataset's Data Access Requests
 description: "This HTTP GET method is used to fetch details about all data access\
 \ requests, including their status, requester information and requested datasets."
 operationId: getAll\_2
 parameters:
 \- name: parentId
 in: query
 description: "Parent ID is required query param, should be a data policy ID"
 required: true
 schema:
 minLength: 1
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessRequestQueryResponse"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/data-access-request/by-account-id:
 get:
 tags:
 \- Data Access Requests
 summary: List Account's Data Access Requests
 description: "This HTTP GET method is used to fetch all data access requests\
 \ associated with the specified account.

The data access request details\
 \ include, the name, display name, creation date, the data access level, unused\
 \ time limit, message, usage purpose, security policies, masking profiles\
 \ and whether the data access requires an approvers note."
 operationId: getAllByAccountId
 parameters:
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 \- name: identity
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: identityType
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- USER
 \- DB\_USER
 \- GROUP
 \- IDP\_GROUP
 \- DATABRICKS\_GROUP
 \- DATABRICKS\_SERVICE\_PRINCIPAL
 \- SNOWFLAKE\_ROLE
 \- SNOWFLAKE\_ACCOUNT\_NAME
 \- SNOWFLAKE\_DATABASE\_ROLE
 \- CEL
 \- EVERYONE
 \- name: accessLevel
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: parent
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: datasetId
 in: query
 schema:
 type: array
 items:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessRequestOverviewQueryResponse"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/data-access-request/approvable-requests:
 get:
 tags:
 \- Data Access Requests
 summary: Lists all User's Approvable Requests
 description: "This HTTP GET method is used to fetch all data access requests\
 \ that the current user (manager or data steward) has the authority to approve.\
 \

This is particularly useful for users with specific roles, such\
 \ as administrators, data stewards or managers, who need to review and manage\
 \ pending requests."
 operationId: getApprovableRequests
 parameters:
 \- name: accountId
 in: query
 required: true
 schema:
 minLength: 1
 type: string
 \- name: userId
 in: query
 description: "When userId is specified, the requester should have READ permission\
 \ on that user. When it is not specified, the 'userId' will be handled with\
 \ the current user"
 schema:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/ListDataAccessRequestOverviewOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/data-access-request/submit-request:
 post:
 tags:
 \- Data Access Requests
 summary: Create a Data Access Request
 description: "This HTTP POST method allows a user to submit a request for access\
 \ to a specific dataset.

The data access request details include,\
 \ the username, the data access level, usage purpose and the data access rule."
 operationId: submitRequest
 parameters:
 \- name: accountId
 in: query
 required: true
 schema:
 minLength: 1
 type: string
 \- name: parentId
 in: query
 description: "Parent ID is required query param, should be a data policy ID"
 schema:
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/UserAccessRequestInput"
 responses:
 "202":
 description: "Status OK, request created."
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/data-flow/analytics/{accountId}/tools:
 get:
 tags:
 \- Audit Log
 summary: Retrieve an Aggregated List of Tools
 description: "This HTTP GET method is used to fetch a list of analytics tools\
 \ that are linked to a specific account. These tools include software or platforms\
 \ used for data analysis, BI tools, or other analytics-related tasks."
 operationId: genericToolsStats
 parameters:
 \- name: accountId
 in: path
 required: true
 schema:
 type: string
 \- name: from
 in: query
 description: "Start query time represented by milliseconds since Jan 1, 1970,\
 \ 00:00:00.000 GMT"
 required: true
 schema:
 type: integer
 format: int64
 example: 1625573940000
 \- name: to
 in: query
 description: "End query time represented by milliseconds since Jan 1, 1970,\
 \ 00:00:00.000 GMT"
 required: true
 schema:
 type: integer
 format: int64
 example: 1625660399999
 \- name: dataStoreIdsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: dataStoreTypes
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: userNamesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: authMethodFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolTypesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolDriversFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: locationsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: tagsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: incidentIdsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: policyNamesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: countriesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: citiesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: ipsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: actionTypesFilter
 in: query
 description: Filter for action types
 schema:
 type: array
 items:
 type: string
 enum:
 \- ACTION\_NONE
 \- ACTION\_ALERT
 \- ACTION\_BLOCK
 \- ACTION\_MASK
 \- ACTION\_REQUEST\_BLOCK
 \- ACTION\_ROW\_FILTER
 \- ACTION\_ORCH\_MASK\_POLICY\_EXECUTED
 \- ACTION\_ORCH\_ROW\_FILTER\_POLICY\_EXECUTED
 \- name: tagCategoriesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: hasIncidentsFilter
 in: query
 schema:
 type: boolean
 \- name: hasIncidentsFilterV2
 in: query
 schema:
 type: boolean
 \- name: hasDataStoreErrorsFilter
 in: query
 schema:
 type: boolean
 \- name: includeAdministrateQueriesFilter
 in: query
 schema:
 type: boolean
 default: false
 \- name: governedQueries
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- GOVERNED
 \- UNGOVERNED
 \- name: groupsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: datasetsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: securityPoliciesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: flowId
 in: query
 schema:
 type: string
 \- name: accessPermissionIds
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: queryIdFilter
 in: query
 schema:
 type: string
 \- name: genericPropertiesFilter
 in: query
 schema:
 type: string
 \- name: recordsRangeFilter
 in: query
 description: \|-
 This is a range parameter for the number of records returned from query of the form 'min:max'.

for example, '1:30' is a min of 1 and a max of 30, ':20' is without min and a max of 20
 schema:
 type: string
 \- name: volumesRangeFilter
 in: query
 description: \|-
 This is a range parameter for the data volume returned from the query of the form 'min:max'.

for example, '1:30' is a min of 1 and a max of 30, ':20' is without min and a max of 20
 schema:
 type: string
 \- name: responseTime
 in: query
 description: \|-
 This is a range parameter for the data store response time of the query of the form 'min:max'.

for example, '1:30' is a min of 1 and a max of 30, ':20' is without min and a max of 20
 schema:
 type: string
 \- name: processingTime
 in: query
 description: \|-
 This is a range parameter for the processing time it took satori while running the query of the form 'min:max'.

for example, '1:30' is a min of 1 and a max of 30, ':20' is without min and a max of 20
 schema:
 type: string
 \- name: statementType
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: loginName
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: purposeSearch
 in: query
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, metrics returned"
 content:
 application/json:
 schema:
 type: array
 items:
 $ref: "#/components/schemas/ActionListEntry"
 example: \|2
 \[\
 {\
 "toolName": "e.g. Python"\
 "numberOfQueries": 74\
 },\
 {}\
 \]
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/data-flow/analytics/{accountId}/counters:
 get:
 tags:
 \- Audit Log
 summary: Retrieve a Data Flow Aggregated Counters
 description: This HTTP GET method is used to fetch a set of counters or metrics
 that provide insights into the data flow activities and performance for the
 specified account.
 operationId: getDataFlowCounters
 parameters:
 \- name: accountId
 in: path
 required: true
 schema:
 type: string
 \- name: from
 in: query
 description: "Start query time represented by milliseconds since Jan 1, 1970,\
 \ 00:00:00.000 GMT"
 required: true
 schema:
 type: integer
 format: int64
 example: 1625573940000
 \- name: to
 in: query
 description: "End query time represented by milliseconds since Jan 1, 1970,\
 \ 00:00:00.000 GMT"
 required: true
 schema:
 type: integer
 format: int64
 example: 1625660399999
 \- name: dataStoreIdsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: dataStoreTypes
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: userNamesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: authMethodFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolTypesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolDriversFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: locationsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: tagsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: incidentIdsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: policyNamesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: countriesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: citiesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: ipsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: actionTypesFilter
 in: query
 description: Filter for action types
 schema:
 type: array
 items:
 type: string
 enum:
 \- ACTION\_NONE
 \- ACTION\_ALERT
 \- ACTION\_BLOCK
 \- ACTION\_MASK
 \- ACTION\_REQUEST\_BLOCK
 \- ACTION\_ROW\_FILTER
 \- ACTION\_ORCH\_MASK\_POLICY\_EXECUTED
 \- ACTION\_ORCH\_ROW\_FILTER\_POLICY\_EXECUTED
 \- name: tagCategoriesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: hasIncidentsFilter
 in: query
 schema:
 type: boolean
 \- name: hasIncidentsFilterV2
 in: query
 schema:
 type: boolean
 \- name: hasDataStoreErrorsFilter
 in: query
 schema:
 type: boolean
 \- name: includeAdministrateQueriesFilter
 in: query
 schema:
 type: boolean
 default: false
 \- name: governedQueries
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- GOVERNED
 \- UNGOVERNED
 \- name: groupsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: datasetsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: securityPoliciesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: flowId
 in: query
 schema:
 type: string
 \- name: accessPermissionIds
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: queryIdFilter
 in: query
 schema:
 type: string
 \- name: genericPropertiesFilter
 in: query
 schema:
 type: string
 \- name: recordsRangeFilter
 in: query
 description: \|-
 This is a range parameter for the number of records returned from query of the form 'min:max'.

for example, '1:30' is a min of 1 and a max of 30, ':20' is without min and a max of 20
 schema:
 type: string
 \- name: statementType
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: loginName
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: purposeSearch
 in: query
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, metrics returned"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/StatsGenericOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/data-flow/analytics/{accountId}/actions:
 get:
 tags:
 \- Audit Log
 summary: Retrieve an Aggregated List of Actions
 description: This HTTP GET method is used to fetch a list of actions or events
 that have occurred within the data flow analytics processes for the specified
 account.
 operationId: violationSummaryAPI
 parameters:
 \- name: accountId
 in: path
 required: true
 schema:
 type: string
 \- name: from
 in: query
 description: "Start query time represented by milliseconds since Jan 1, 1970,\
 \ 00:00:00.000 GMT"
 required: true
 schema:
 type: integer
 format: int64
 example: 1625573940000
 \- name: to
 in: query
 description: "End query time represented by milliseconds since Jan 1, 1970,\
 \ 00:00:00.000 GMT"
 required: true
 schema:
 type: integer
 format: int64
 example: 1625660399999
 \- name: dataStoreIdsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: dataStoreTypes
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: userNamesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: authMethodFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolTypesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolDriversFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: locationsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: tagsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: incidentIdsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: policyNamesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: countriesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: citiesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: ipsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: actionTypesFilter
 in: query
 description: Filter for action types
 schema:
 type: array
 items:
 type: string
 enum:
 \- ACTION\_NONE
 \- ACTION\_ALERT
 \- ACTION\_BLOCK
 \- ACTION\_MASK
 \- ACTION\_REQUEST\_BLOCK
 \- ACTION\_ROW\_FILTER
 \- ACTION\_ORCH\_MASK\_POLICY\_EXECUTED
 \- ACTION\_ORCH\_ROW\_FILTER\_POLICY\_EXECUTED
 \- name: tagCategoriesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: hasIncidentsFilter
 in: query
 schema:
 type: boolean
 \- name: hasIncidentsFilterV2
 in: query
 schema:
 type: boolean
 \- name: hasDataStoreErrorsFilter
 in: query
 schema:
 type: boolean
 \- name: includeAdministrateQueriesFilter
 in: query
 schema:
 type: boolean
 default: false
 \- name: governedQueries
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- GOVERNED
 \- UNGOVERNED
 \- name: groupsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: datasetsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: securityPoliciesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: flowId
 in: query
 schema:
 type: string
 \- name: accessPermissionIds
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: queryIdFilter
 in: query
 schema:
 type: string
 \- name: genericPropertiesFilter
 in: query
 schema:
 type: string
 \- name: recordsRangeFilter
 in: query
 description: \|-
 This is a range parameter for the number of records returned from query of the form 'min:max'.

for example, '1:30' is a min of 1 and a max of 30, ':20' is without min and a max of 20
 schema:
 type: string
 \- name: statementType
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: loginName
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: purposeSearch
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/ViolationsResponse"
 "400":
 description: Bad request
 security:
 \- BearerAuth: \[\]
 /api/data-flow/{accountId}/export:
 get:
 tags:
 \- Audit Log
 summary: Export all Data Flows
 description: "\[Deprecated - use /api/export/data-flow\] This HTTP GET method\
 \ is used to export audit logs in CSV format.

The exported data is\
 \ in CSV format and includes various types of information such as a list of\
 \ governed and ungoverned queries, masking and filtering actions, classification\
 \ categories, response and processing times, generic properties and login\
 \ name."
 operationId: export
 parameters:
 \- name: accountId
 in: path
 required: true
 schema:
 type: string
 \- name: from
 in: query
 description: "Start query time represented by milliseconds since Jan 1, 1970,\
 \ 00:00:00.000 GMT"
 required: true
 schema:
 type: integer
 format: int64
 example: 1625573940000
 \- name: to
 in: query
 description: "End query time represented by milliseconds since Jan 1, 1970,\
 \ 00:00:00.000 GMT"
 required: true
 schema:
 type: integer
 format: int64
 example: 1625660399999
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: fields
 in: query
 description: Field names which will be returned as columns in the responded
 list
 schema:
 type: array
 items:
 type: string
 enum:
 \- flow\_timestamp
 \- identity.name
 \- data\_store.id
 \- data\_store.name
 \- data\_store.type
 \- datasets.name
 \- datasets.id
 \- tags.name
 \- locations.length
 \- locations.location
 \- query.query\_type
 \- volume.value
 \- records.value
 \- query.original\_query
 \- tool
 \- incident\_ids
 \- actions.policy\_names
 \- result\_set.column\_name
 \- actions.type
 \- identity.authentication.method
 \- query.db\_statement\_type
 \- perf\_stats.processing\_time
 \- perf\_stats.ds\_response\_time
 \- name: dataStoreIdsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: dataStoreTypes
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: userNamesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: authMethodFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolTypesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolDriversFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: locationsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: tagsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: incidentIdsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: policyNamesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: countriesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: citiesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: ipsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: actionTypesFilter
 in: query
 description: Filter for action types
 schema:
 type: array
 items:
 type: string
 enum:
 \- ACTION\_NONE
 \- ACTION\_ALERT
 \- ACTION\_BLOCK
 \- ACTION\_MASK
 \- ACTION\_REQUEST\_BLOCK
 \- ACTION\_ROW\_FILTER
 \- ACTION\_ORCH\_MASK\_POLICY\_EXECUTED
 \- ACTION\_ORCH\_ROW\_FILTER\_POLICY\_EXECUTED
 \- name: tagCategoriesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: hasIncidentsFilter
 in: query
 schema:
 type: boolean
 \- name: hasIncidentsFilterV2
 in: query
 schema:
 type: boolean
 \- name: hasDataStoreErrorsFilter
 in: query
 schema:
 type: boolean
 \- name: includeAdministrateQueriesFilter
 in: query
 schema:
 type: boolean
 default: false
 \- name: governedQueries
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- GOVERNED
 \- UNGOVERNED
 \- name: groupsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: datasetsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: securityPoliciesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: flowId
 in: query
 schema:
 type: string
 \- name: accessPermissionIds
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: queryIdFilter
 in: query
 schema:
 type: string
 \- name: genericPropertiesFilter
 in: query
 schema:
 type: string
 \- name: recordsRangeFilter
 in: query
 description: \|-
 This is a range parameter for the number of records returned from query of the form 'min:max'.

for example, '1:30' is a min of 1 and a max of 30, ':20' is without min and a max of 20
 schema:
 type: string
 \- name: statementType
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: loginName
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: purposeSearch
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 deprecated: true
 security:
 \- BearerAuth: \[\]
 /api/data-flow/{accountId}/metrics:
 get:
 tags:
 \- Audit Log
 summary: Retrieve an Account's Counters
 description: "This HTTP GET method is used to fetch various metrics that track\
 \ the performance and status of data flow activities for the specified account.\
 \

These metrics include things like data processing rates, error rates,\
 \ throughput and a list of governed and ungoverned queries, masking and filtering\
 \ actions, classification categories, response and processing times, generic\
 \ properties and login name."
 operationId: metrics
 parameters:
 \- name: accountId
 in: path
 required: true
 schema:
 type: string
 \- name: from
 in: query
 description: "Start query time represented by milliseconds since Jan 1, 1970,\
 \ 00:00:00.000 GMT"
 required: true
 schema:
 type: integer
 format: int64
 example: 1625573940000
 \- name: to
 in: query
 description: "End query time represented by milliseconds since Jan 1, 1970,\
 \ 00:00:00.000 GMT"
 required: true
 schema:
 type: integer
 format: int64
 example: 1625660399999
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: dataStoreIdsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: dataStoreTypes
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: userNamesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: authMethodFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolTypesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolDriversFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: locationsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: tagsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: incidentIdsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: policyNamesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: countriesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: citiesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: ipsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: actionTypesFilter
 in: query
 description: Filter for action types
 schema:
 type: array
 items:
 type: string
 enum:
 \- ACTION\_NONE
 \- ACTION\_ALERT
 \- ACTION\_BLOCK
 \- ACTION\_MASK
 \- ACTION\_REQUEST\_BLOCK
 \- ACTION\_ROW\_FILTER
 \- ACTION\_ORCH\_MASK\_POLICY\_EXECUTED
 \- ACTION\_ORCH\_ROW\_FILTER\_POLICY\_EXECUTED
 \- name: tagCategoriesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: hasIncidentsFilter
 in: query
 schema:
 type: boolean
 \- name: hasIncidentsFilterV2
 in: query
 schema:
 type: boolean
 \- name: hasDataStoreErrorsFilter
 in: query
 schema:
 type: boolean
 \- name: includeAdministrateQueriesFilter
 in: query
 schema:
 type: boolean
 default: false
 \- name: governedQueries
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- GOVERNED
 \- UNGOVERNED
 \- name: groupsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: datasetsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: securityPoliciesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: flowId
 in: query
 schema:
 type: string
 \- name: accessPermissionIds
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: queryIdFilter
 in: query
 schema:
 type: string
 \- name: genericPropertiesFilter
 in: query
 schema:
 type: string
 \- name: recordsRangeFilter
 in: query
 description: \|-
 This is a range parameter for the number of records returned from query of the form 'min:max'.

for example, '1:30' is a min of 1 and a max of 30, ':20' is without min and a max of 20
 schema:
 type: string
 \- name: statementType
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: loginName
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: purposeSearch
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DashboardMetricsOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/data-flow/{accountId}/query:
 get:
 tags:
 \- Audit Log
 summary: List all Data Flows
 description: "This HTTP GET method is used to execute a query or retrieve the\
 \ results of a query that has been executed against the audit log for the\
 \ specified account.

The data includes a list of data flows, pagination,\
 \ filters and sorting as well as a list of governed and ungoverned queries,\
 \ masking and filtering actions, classification categories, security policies,\
 \ data access permissions, response and processing time, query name and login\
 \ name."
 operationId: query
 parameters:
 \- name: accountId
 in: path
 required: true
 schema:
 type: string
 \- name: from
 in: query
 description: "Start query time represented by milliseconds since Jan 1, 1970,\
 \ 00:00:00.000 GMT"
 required: true
 schema:
 type: integer
 format: int64
 example: 1625573940000
 \- name: to
 in: query
 description: "End query time represented by milliseconds since Jan 1, 1970,\
 \ 00:00:00.000 GMT"
 required: true
 schema:
 type: integer
 format: int64
 example: 1625660399999
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: page
 in: query
 schema:
 minimum: 0
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 maximum: 1000
 minimum: 1
 type: integer
 format: int32
 default: 100
 \- name: nextPageToken
 in: query
 description: "This parameter is used for iterate query result pages without\
 \ re-run the query for each page. Initial query should contain this parameter\
 \ (for example, set to empty for the first page), while all following queries\
 \ should contain it. Each page result will contain the \`nextPageToken\` field\
 \ with the value of the token for the next page."
 schema:
 type: string
 \- name: dataStoreIdsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: dataStoreTypes
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: userNamesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: authMethodFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolTypesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolDriversFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: locationsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: tagsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: incidentIdsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: policyNamesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: countriesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: citiesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: ipsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: actionTypesFilter
 in: query
 description: Filter for action types
 schema:
 type: array
 items:
 type: string
 enum:
 \- ACTION\_NONE
 \- ACTION\_ALERT
 \- ACTION\_BLOCK
 \- ACTION\_MASK
 \- ACTION\_REQUEST\_BLOCK
 \- ACTION\_ROW\_FILTER
 \- ACTION\_ORCH\_MASK\_POLICY\_EXECUTED
 \- ACTION\_ORCH\_ROW\_FILTER\_POLICY\_EXECUTED
 \- name: tagCategoriesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: hasIncidentsFilter
 in: query
 schema:
 type: boolean
 \- name: hasIncidentsFilterV2
 in: query
 schema:
 type: boolean
 \- name: hasDataStoreErrorsFilter
 in: query
 schema:
 type: boolean
 \- name: includeAdministrateQueriesFilter
 in: query
 schema:
 type: boolean
 default: false
 \- name: governedQueries
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- GOVERNED
 \- UNGOVERNED
 \- name: groupsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: datasetsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: securityPoliciesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: flowId
 in: query
 schema:
 type: string
 \- name: accessPermissionIds
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: queryIdFilter
 in: query
 schema:
 type: string
 \- name: genericPropertiesFilter
 in: query
 schema:
 type: string
 \- name: recordsRangeFilter
 in: query
 description: \|-
 This is a range parameter for the number of records returned from query of the form 'min:max'.

for example, '1:30' is a min of 1 and a max of 30, ':20' is without min and a max of 20
 schema:
 type: string
 \- name: statementType
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: loginName
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: purposeSearch
 in: query
 schema:
 type: string
 \- name: queryName
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataFlowsQueriesOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/enterprise-audit/{accountId}/snowflake:
 get:
 tags:
 \- Data Export
 summary: Retrieve Snowflake Data Export Settings
 description: This HTTP GET method is used to fetch the settings for exporting
 audit logs to a Snowflake account.
 operationId: getEnterpriseAuditOfSnowflake
 parameters:
 \- name: accountId
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/EnterpriseAuditSnowflakeOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/global-config/network/management-outbound-ips:
 get:
 tags:
 \- Global Settings
 summary: List Management Console Outbound IPs
 description: This HTTP GET method is used to obtain the IP addresses that are
 used by the Satori management console to connect to various systems.
 operationId: getManagementOutboundIps
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/ManagementIpsOutput"
 "401":
 description: Invalid Authorization
 /api/identity-providers/{providerId}/saml/azure/activate-certificate:
 post:
 tags:
 \- Identity Providers
 summary: Activate an Azure SAML Identity Provider certificate
 description: This HTTP POST method is used to activate a specific Satori certificate
 of an Azure AD SAML identity provider. The specified certificate will be set
 as active and all other certificates will be deactivated.
 operationId: activateAzureSamlCertificate
 parameters:
 \- name: providerId
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AzureSamlCertificateInput"
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/SamlIdpOutput"
 "400":
 description: Bad request - Certificate not found or invalid
 "401":
 description: Invalid Authorization
 "404":
 description: Identity Provider or certificate not found
 security:
 \- BearerAuth: \[\]
 /api/identity-providers/{id}:
 get:
 tags:
 \- Identity Providers
 summary: Retrieve an Identity Provider
 description: "This HTTP GET method is used to fetch detailed information about\
 \ a specific identity provider, such as its version, status, type, creation\
 \ date and time, provider name and the linked data stores."
 operationId: byId\_3
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/IdentityProviderOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 "404":
 description: Identity Provider not found
 security:
 \- BearerAuth: \[\]
 /api/identity-providers/{accountId}/saml/azure:
 post:
 tags:
 \- Identity Providers
 summary: Create an Azure SAML Identity Provider
 description: This HTTP POST method is used to set up Azure Active Directory
 as a SAML identity provider for a specific account.
 operationId: createAzureSamlIdentityProvider
 parameters:
 \- name: accountId
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AzureSamlIdentityProviderInput"
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/SamlIdpOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/identity-providers/{providerId}/saml/azure/delete-certificate:
 post:
 tags:
 \- Identity Providers
 summary: Delete an Azure SAML Identity Provider certificate
 description: This HTTP POST method is used to delete a specific Satori certificate
 from an Azure AD SAML identity provider. The active certificate cannot be
 deleted. At least one certificate must remain in the identity provider.
 operationId: deleteAzureSamlCertificate
 parameters:
 \- name: providerId
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AzureSamlCertificateInput"
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/SamlIdpOutput"
 "400":
 description: Bad request - Cannot delete active certificate or last certificate
 "401":
 description: Invalid Authorization
 "404":
 description: Identity Provider or certificate not found
 security:
 \- BearerAuth: \[\]
 /api/identity-providers/{accountId}/{id}:
 delete:
 tags:
 \- Identity Providers
 summary: Delete an Identity Provider
 description: "This HTTP DELETE method is used to delete a specific identity\
 \ provider configuration from an account.

This is done when the identity\
 \ provider is no longer required, or if you want to replace it with a different\
 \ provider."
 operationId: deleteIdentityProvider
 parameters:
 \- name: accountId
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 \- name: id
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/IdentityProviderOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 "404":
 description: Identity Provider not found
 "409":
 description: identity provider is assigned to one or more data store
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataStoreQueryOutput"
 security:
 \- BearerAuth: \[\]
 /api/identity-providers/{providerId}/saml/azure/extend:
 post:
 tags:
 \- Identity Providers
 summary: Extend an Azure SAML Identity Provider certificate
 description: This HTTP POST method is used to extend the satori certificate
 of an Azure AD SAML identity provider.
 operationId: extendAzureSamlIdentityProvider
 parameters:
 \- name: providerId
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/SamlIdpOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 "404":
 description: Identity Provider not found
 security:
 \- BearerAuth: \[\]
 /api/identity-providers/{providerId}/saml/azure/generate-certificate:
 post:
 tags:
 \- Identity Providers
 summary: Generate new certificate to Azure SAML Identity Provider
 description: This HTTP POST method creates and adds a new Satori certificate
 to an existing Azure AD SAML identity provider. 3 certificates are allowed
 per identity provider.
 operationId: generateAzureSamlCertificate
 parameters:
 \- name: providerId
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/SamlIdpOutput"
 "400":
 description: Bad request - Maximum certificates reached or invalid provider
 "401":
 description: Invalid Authorization
 "404":
 description: Identity Provider not found
 security:
 \- BearerAuth: \[\]
 /api/identity-providers:
 get:
 tags:
 \- Identity Providers
 summary: List all Identity Providers
 description: "This HTTP GET method is used to fetch a list of all identity providers,\
 \ giving an overview of the different authentication services available."
 operationId: getIdentityProviders
 parameters:
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: dataStoreId
 in: query
 schema:
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/IdentityProviderQueryOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/identity-providers/{providerId}/saml/azure:
 put:
 tags:
 \- Identity Providers
 summary: Update an Azure SAML Identity Provider
 description: This HTTP PUT method is used to modify the settings of an Azure
 AD SAML identity provider and certificates.
 operationId: updateAzureSamlIdentityProvider
 parameters:
 \- name: providerId
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AzureSamlIdentityProviderInput"
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/SamlIdpOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 "404":
 description: Identity Provider not found
 security:
 \- BearerAuth: \[\]
 /api/locations/{id}:
 delete:
 tags:
 \- "Data Inventory \[DEPRECATED\]"
 summary: Delete a Location Record
 description: This HTTP DELETE method is used to permanently delete a location
 from the system. It is used when a location is no longer relevant or if a
 location was added by mistake.
 operationId: deleteById\_3
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "204":
 description: Status OK.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 deprecated: true
 security:
 \- BearerAuth: \[\]
 /api/locations/{locationId}/history/v2:
 get:
 tags:
 \- "Data Inventory \[DEPRECATED\]"
 summary: List a History for Location Record
 description: "This HTTP GET method is used to provide a historical record of\
 \ events, changes or updates related to the specified location."
 operationId: getLocationHistoryV2
 parameters:
 \- name: locationId
 in: path
 required: true
 schema:
 type: string
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 \- name: nextPageToken
 in: query
 description: "This parameter is used for iterate query result pages without\
 \ re-run the query for each page. Initial query should contain this parameter\
 \ (for example, set to empty for the first page), while all following queries\
 \ should contain it. Each page result will contain the \`nextPageToken\` field\
 \ with the value of the token for the next page."
 schema:
 type: string
 \- name: from
 in: query
 schema:
 type: integer
 format: int64
 \- name: to
 in: query
 schema:
 type: integer
 format: int64
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/LocationHistoryQueryResponseOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 deprecated: true
 security:
 \- BearerAuth: \[\]
 /api/locations/{locationId}/reset:
 put:
 tags:
 \- "Data Inventory \[DEPRECATED\]"
 summary: Reset all Classification Tags
 description: This HTTP PUT method is used to reset the classification state
 of the specified location. This includes clearing configurations and resetting
 attributes to their default values.
 operationId: resetById
 parameters:
 \- name: locationId
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/LocationOutput"
 "401":
 description: Invalid Authorization
 "404":
 description: Bad request
 deprecated: true
 security:
 \- BearerAuth: \[\]
 /api/locations/{locationId}:
 put:
 tags:
 \- "Data Inventory \[DEPRECATED\]"
 summary: Update Classification
 description: "This HTTP PUT method is used to enable users to update the information\
 \ associated with a specific location. Such as, changing the location's name,\
 \ type, address and user notes."
 operationId: updateById\_1
 parameters:
 \- name: locationId
 in: path
 required: true
 schema:
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/UpdateLocationInput"
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/LocationOutput"
 "404":
 description: Bad request
 "401":
 description: Invalid Authorization
 deprecated: true
 security:
 \- BearerAuth: \[\]
 /api/v1/masking/{id}:
 get:
 tags:
 \- Masking Profiles
 summary: Retrieve a Masking Profile
 description: This HTTP GET method is used to retrieve detailed information about
 a specific masking profile configuration.
 operationId: byId\_4
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, masking profile found."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/MaskProfileOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 put:
 tags:
 \- Masking Profiles
 summary: Update a Masking Profile
 description: "This HTTP PUT method is used to modify the masking profile rules\
 \ for a particular dataset resource. These rules determine how data is masked,\
 \ obfuscated or anonymized."
 operationId: updateById\_2
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/MaskProfileInput"
 required: true
 responses:
 "200":
 description: "Status OK, masking profile updated"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/MaskProfileOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 delete:
 tags:
 \- Masking Profiles
 summary: Delete a Masking Profile
 description: "This HTTP DELETE method is used when a particular masking profile\
 \ configuration is no longer required, such as when data masking requirements\
 \ change or a specific configuration was created in error."
 operationId: deleteById\_4
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "204":
 description: Status OK.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/masking:
 get:
 tags:
 \- Masking Profiles
 summary: List all Masking Profiles
 description: "This HTTP GET method is useful for administrators or data stewards\
 \ who need to review, audit, or manage the data masking settings across all\
 \ of the datasets."
 operationId: getAll\_3
 parameters:
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/MaskProfileQueryResponse"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 post:
 tags:
 \- Masking Profiles
 summary: Create a Masking Profile
 description: "This HTTP POST method is used when you need to add a new masking\
 \ profile rule to protect certain data fields, such as Social Security Numbers,\
 \ credit card details, or email addresses from being exposed in their entirety."
 operationId: create\_2
 parameters:
 \- name: accountId
 in: query
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/MaskProfileInput"
 required: true
 responses:
 "201":
 description: "Status OK, masking profile created"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/MaskProfileOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/masking/templates:
 get:
 tags:
 \- Masking Profiles
 summary: List all Masking Profile Templates
 description: This HTTP GET method is used for retrieving predefined masking
 profile templates.

Pre-defined masking profiles simplify the process
 of creating masking configurations by providing commonly used patterns and
 settings.
 operationId: getAllTemplates
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/MaskProfileQueryResponse"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/network-access-policy/assign/{id}/{type}/{memberId}:
 post:
 tags:
 \- Network Access Policy
 summary: Add a Member to Network Policy
 description: This HTTP POST method is used to enforce specific network access
 rules by assigning them to different members of an organization.
 operationId: assign
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 \- name: type
 in: path
 required: true
 schema:
 type: string
 enum:
 \- management
 \- datastore
 \- name: memberId
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, member assigned to network policy."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/NetworkPolicyOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/network-access-policy/{id}:
 get:
 tags:
 \- Network Access Policy
 summary: Find a Network Policy
 description: "This HTTP GET method is used for reviewing the details of a network\
 \ access policy, which includes the rules governing network access, the members\
 \ to whom the policy applies."
 operationId: byId\_5
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, network policy found."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/NetworkPolicyOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 put:
 tags:
 \- Network Access Policy
 summary: Update a Network Policy
 description: This HTTP PUT method is used for making changes to the configuration
 of a network access policy.
 operationId: update
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/NetworkPolicyInput"
 responses:
 "200":
 description: "Status OK, network policy updated."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/NetworkPolicyOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 delete:
 tags:
 \- Network Access Policy
 summary: Delete a Network Policy
 description: "This HTTP DELETE method is used when you need to remove a network\
 \ access policy that is no longer required or has been replaced by a new policy.\
 \

NOTE: Deleting a policy ensures that it is no longer applied within\
 \ the system, this is critical for maintaining the correct access controls."
 operationId: deleteById\_5
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "204":
 description: Status OK.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/network-access-policy/{accountId}:
 post:
 tags:
 \- Network Access Policy
 summary: Create a Network Policy
 description: "This HTTP POST method is used for establishing new network access\
 \ policies tailored to specific accounts.

NOTE: By creating a policy,\
 \ you can define how network access should be controlled for users, groups,\
 \ or roles associated with that account."
 operationId: create\_3
 parameters:
 \- name: accountId
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/NetworkPolicyInput"
 responses:
 "201":
 description: "Status OK, network policy created."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/NetworkPolicyOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/network-access-policy:
 get:
 tags:
 \- Network Access Policy
 summary: Find Network Policies by Account ID
 description: "This HTTP GET method is used to retrieve a list of all network\
 \ access policies that are currently configured in the system.

This\
 \ allows you to view and manage the network access rules and conditions applied\
 \ to various accounts, users or groups."
 operationId: getAll\_4
 parameters:
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: memberId
 in: query
 schema:
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/NetworkPolicyQueryResponse"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/security-policies/{id}:
 get:
 tags:
 \- Security Policies
 summary: Retrieve a Security Policy
 description: "This HTTP GET method is used to retrieve detailed information\
 \ about a specific security policy.

This includes details such as\
 \ the policy name, description, dynamic masking rules and data filtering actions."
 operationId: byId\_6
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 \- name: withStats
 in: query
 description: Expand the response with security policy stats
 schema:
 type: boolean
 default: false
 responses:
 "200":
 description: "Status OK, security policy found."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/SecurityPolicyOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 put:
 tags:
 \- Security Policies
 summary: Update a security policy
 description: "This HTTP PUT method is used to allow administrators, data stewards\
 \ or authorized users (managers) to update the details of a specific security\
 \ policy.

This involves editing or creating the dynamic masking rules\
 \ and data filters or updating its description to reflect new security requirements."
 operationId: updateById\_3
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/SecurityPolicyInput"
 required: true
 responses:
 "200":
 description: "Status OK, security policy updated"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/SecurityPolicyOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 delete:
 tags:
 \- Security Policies
 summary: Delete a Security Policy
 description: "This HTTP DELETE method is used to allow administrators, data\
 \ stewards or authorized users (managers) to delete an existing security policy.\
 \

The security policy is deleted when it is no longer required, has\
 \ been replaced by a new security policy, or if the system is undergoing changes\
 \ that render the policy obsolete."
 operationId: deleteById\_6
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 \- name: force
 in: query
 description: "Once forced, the policy will be deleted from all its references"
 schema:
 type: boolean
 responses:
 "204":
 description: Status OK.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/security-policies:
 get:
 tags:
 \- Security Policies
 summary: List all Security Policies
 description: "This HTTP GET method is used to provide a list of all security\
 \ policies within the system.

The list includes summaries of each\
 \ security policy, such as the security policy name, description, users and\
 \ queries."
 operationId: getAll\_5
 parameters:
 \- name: accountId
 in: query
 required: true
 schema:
 minLength: 1
 type: string
 \- name: withStats
 in: query
 description: Expand the response with security policy stats
 schema:
 type: boolean
 default: false
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/SecurityPolicyMinimalQueryResponse"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 post:
 tags:
 \- Security Policies
 summary: Create a Security Policy
 description: "This HTTP POST method is used to enable the creation of a new\
 \ security policy, which is then enforced within the system. This is useful\
 \ when new security requirements arise."
 operationId: create\_4
 parameters:
 \- name: accountId
 in: query
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/SecurityPolicyInput"
 required: true
 responses:
 "201":
 description: "Status OK, security policy created"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/SecurityPolicyOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/security-policies/statistics:
 get:
 tags:
 \- Security Policies
 summary: List a Security Policy Statistics
 description: This HTTP GET method is used to provide an aggregated list of the
 security policies that have been implemented.
 operationId: getSecurityPoliciesStatistics
 parameters:
 \- name: accountId
 in: query
 required: true
 schema:
 minLength: 1
 type: string
 \- name: securityPolicyIds
 in: query
 schema:
 type: array
 items:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/SecurityPolicyStatisticsQueryResponse"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/users/{id}:
 get:
 tags:
 \- Users and Roles
 summary: Retrieve an User
 description: "This HTTP GET method is used to provide the details of a specific\
 \ user, including personal information, account settings, roles and permissions."
 operationId: byId\_7
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, user found."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/UserResourceDto"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 delete:
 tags:
 \- Users and Roles
 summary: Delete a User
 description: "This HTTP DELETE method's primary purpose is to permanently remove\
 \ a user from the system.

This includes user deactivation, account\
 \ closure, or in response to security concerns (for example, removing accounts\
 \ of former employees)."
 operationId: deleteById\_7
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "204":
 description: Status OK.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/users:
 get:
 tags:
 \- Users and Roles
 summary: List all Users
 description: "This HTTP GET method is used to retrieve a list of users from\
 \ the system.

The user information for each user includes, account\
 \ ID, display name, first name, last name, creation and update dates, roles,\
 \ attributes aliases, temporary credentials expiration times and personal\
 \ access tokens."
 operationId: getAll\_6
 parameters:
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 \- name: usersType
 in: query
 schema:
 type: string
 default: BOTH
 enum:
 \- MANAGED\_USER
 \- SATORI\_USER
 \- BOTH
 \- name: personalAccessTokens
 in: query
 schema:
 type: boolean
 \- name: roleId
 in: query
 description: Satori Role ID
 schema:
 uniqueItems: true
 type: array
 items:
 type: string
 \- name: status
 in: query
 description: The user activation status
 schema:
 type: string
 enum:
 \- PENDING\_ACTIVATION
 \- ACTIVE
 \- DISABLED
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/UsersQueryOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 deprecated: true
 security:
 \- BearerAuth: \[\]
 post:
 tags:
 \- Users and Roles
 summary: Create a User
 description: "This HTTP POST method is used to add a new user to the system\
 \ with all the necessary details, such as their account ID, first name, last\
 \ name, email and password."
 operationId: create\_5
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/UserInput"
 responses:
 "201":
 description: "Status OK, user created."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/UserResourceDto"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "403":
 description: Resource Limit Exceeded
 security:
 \- BearerAuth: \[\]
 /api/users/{id}/database-credentials:
 get:
 tags:
 \- Users and Roles
 summary: Retrieve Satori Temporary Credentials
 description: This HTTP GET method is used to provide access to the database
 credentials assigned to a specific user.
 operationId: getUserDatabaseCredentials
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 \- name: withPassword
 in: query
 description: Exposes temporary password
 schema:
 type: boolean
 responses:
 "200":
 description: "Status OK, credentials found"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/UserDatabaseCredentialsOutput"
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 put:
 tags:
 \- Users and Roles
 summary: Regenerate Satori Temporary Credentials
 description: This HTTP PUT method is used to modify the database credentials
 assigned to a specific user.
 operationId: reGenerateUserDatabaseCredentials
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, credentials regenerated"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/UserDatabaseCredentialsOutput"
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/users/{id}/roles:
 get:
 tags:
 \- Users and Roles
 summary: Retrieve User's Role
 description: This HTTP GET method is used to provide a list of roles assigned
 to a specific user.
 operationId: getUserRoles
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, roles found"
 content:
 application/json:
 schema:
 type: array
 items:
 $ref: "#/components/schemas/RoleOutput"
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 put:
 tags:
 \- Users and Roles
 summary: Update User's Role
 description: "This HTTP PUT method is used for updating the roles assigned to\
 \ a specific user, changing their permissions and access levels as required."
 operationId: setUserRoles
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/RolesSet"
 required: true
 responses:
 "200":
 description: "Status OK, user role was changed"
 "401":
 description: Invalid Authorization
 "404":
 description: Provided role id lookup failed
 security:
 \- BearerAuth: \[\]
 /api/users/{id}/reset-mfa:
 delete:
 tags:
 \- Users and Roles
 summary: Reset user MFA
 description: "This HTTP DELETE method is used to reset or clear the MFA settings\
 \ associated with a user’s account.

This is necessary if a user is\
 \ having trouble with their MFA setup, if they need to switch MFA methods\
 \ or if the system requires a reset for security reasons."
 operationId: resetMFA
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "204":
 description: "Status OK, MFA was reset"
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/users/{id}/send-activation-mail:
 put:
 tags:
 \- Users and Roles
 summary: Send an Activation Mail
 description: This HTTP PUT method is used to send an activation or verification
 email to the user.

This email contains a link that the user must click
 to activate their account or confirm their email address.
 operationId: sendActivationMail
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, instructions have been sent to mail."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/ActivationOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/users/{id}/toggle-password-login:
 put:
 tags:
 \- Users and Roles
 summary: Toggle (enable/disable) password login
 description: "This HTTP PUT method is used to toggle the availability of password-based\
 \ login for a user.

Enabling this option allows the user to log in\
 \ with their password, while disabling it might require the user to use other\
 \ authentication methods, such as multi-factor authentication (MFA) or single\
 \ sign-on (SSO)."
 operationId: togglePasswordLogin
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/users/{id}/access-settings:
 put:
 tags:
 \- Users and Roles
 summary: Update access settings for specific user
 description: This HTTP PUT method is used to modify the access settings assigned
 to a specific user.
 operationId: updateAccessSettings
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AccessSettingsDto"
 required: true
 responses:
 "200":
 description: "Status OK, updated access settings"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/UserResourceDto"
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/users/{id}/attributes/custom:
 put:
 tags:
 \- Users and Roles
 summary: Update custom user attributes
 description: "This HTTP PUT method is used to update or set custom attributes\
 \ for a user. Custom attributes are additional fields that are not part of\
 \ the standard user profile but are used for storing extra information. These\
 \ attributes can include, number, boolean and or string.

NOTE: The\
 \ attribute must include a key (custom attribute name) and a value."
 operationId: updateCustomAttributesById
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 requestBody:
 content:
 application/json:
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, user found."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/UserWithGroupsOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/users/{id}/profile:
 put:
 tags:
 \- Users and Roles
 summary: Update a User Profile
 description: "This HTTP PUT method is used to modify the user's profile information.\
 \ This is used for updating basic details, contact information or other user-specific\
 \ data."
 operationId: updateUserProfile
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/UserProfileInput"
 responses:
 "200":
 description: "Status OK, user profile updated."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/UserResourceDto"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/asset/{id}:
 get:
 tags:
 \- Data Inventory
 summary: Retrieve an Inventory Asset
 description: "This HTTP GET method is used to fetch details about a specific\
 \ asset. The asset details include, the asset name, status, asset details\
 \ (schema, table, column, values and types) and the creation date."
 operationId: getById\_1
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, asset found."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AssetOutput"
 "400":
 description: Bad configuration request
 "404":
 description: Resource not found
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 put:
 tags:
 \- Data Inventory
 summary: Update an Inventory Asset
 description: This HTTP PUT method is used to modify the inventory asset details
 operationId: update\_1
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/UpdateAssetInput"
 required: true
 responses:
 "200":
 description: "Status OK, asset updated"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AssetOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 delete:
 tags:
 \- Data Inventory
 summary: Delete an Inventory Asset
 description: This HTTP DELETE method is used to permanently delete an asset
 from the system. It is used when an asset is no longer relevant or if an asset
 was added by mistake.
 operationId: deleteBy
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "202":
 description: "Accepted, delete asset in progress."
 "400":
 description: Bad configuration request
 "404":
 description: Resource not found
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/asset/{dataStoreId}/export-tags-sql:
 get:
 tags:
 \- Data Inventory
 summary: Export all Tags for Snowflake
 description: This HTTP GET method is used to export tags associated with a specific
 (Snowflake) data store in an SQL format.
 operationId: exportSql
 parameters:
 \- name: dataStoreId
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: Status OK.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/asset/{accountId}/direct-children:
 get:
 tags:
 \- Data Inventory
 summary: List all Asset's Direct Children
 description: The HTTP GET method is used to retrieve all direct child assets
 associated with a particular asset.
 operationId: getAssetDirectChildren
 parameters:
 \- name: accountId
 in: path
 required: true
 schema:
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 \- name: dataStoreId
 in: query
 required: true
 schema:
 type: string
 \- name: parentId
 in: query
 schema:
 type: string
 \- name: assetType
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- TABLE
 \- COLUMN
 \- SEMANTIC\_MODEL
 \- REPORT
 \- DASHBOARD
 \- DATABASE
 \- SCHEMA
 \- JSON\_PATH
 \- WAREHOUSE
 \- ENDPOINT
 \- TYPE
 \- FIELD
 \- EXTERNAL\_LOCATION
 \- CATALOG
 \- BUCKET
 \- OBJECT
 \- COLLECTION
 \- VIEW
 \- ACCOUNT\_ROLE
 \- SHARED\_DB
 \- name: calculateTotalCount
 in: query
 description: "If true, the total number of assets (before pagination) will\
 \ be calculated, default is false"
 schema:
 type: boolean
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AssetQueryOutput"
 "400":
 description: Bad request
 "404":
 description: Provided data store or account not found
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/asset/{assetId}/history:
 get:
 tags:
 \- Data Inventory
 summary: List a History for Asset
 description: "This HTTP GET method is used to provide a historical record of\
 \ events, changes or updates related to the specified asset."
 operationId: getAssetHistory
 parameters:
 \- name: assetId
 in: path
 required: true
 schema:
 type: string
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 \- name: nextPageToken
 in: query
 description: "This parameter is used for iterate query result pages without\
 \ re-run the query for each page. Initial query should contain this parameter\
 \ (for example, set to empty for the first page), while all following queries\
 \ should contain it. Each page result will contain the \`nextPageToken\` field\
 \ with the value of the token for the next page."
 schema:
 type: string
 \- name: from
 in: query
 schema:
 type: integer
 format: int64
 \- name: to
 in: query
 schema:
 type: integer
 format: int64
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/LocationHistoryQueryResponseOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/asset/{assetId}/reset:
 put:
 tags:
 \- Data Inventory
 summary: Reset all Classification Tags
 description: This HTTP PUT method is used to reset the classification state
 of the specified asset. This includes clearing configurations and resetting
 attributes to their default values.
 operationId: resetById\_1
 parameters:
 \- name: assetId
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AssetOutput"
 "401":
 description: Invalid Authorization
 "404":
 description: Bad request
 security:
 \- BearerAuth: \[\]
 /api/v1/asset/{accountId}/search:
 get:
 tags:
 \- Data Inventory
 summary: Search Inventory Assets
 description: This HTTP GET method is used to enable users to search for assets
 associated with a particular account.
 operationId: search
 parameters:
 \- name: accountId
 in: path
 required: true
 schema:
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 \- name: dataStoreId
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: datasetId
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: locationPrefix
 in: query
 schema:
 type: string
 \- name: tagsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: categoriesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: createdFrom
 in: query
 schema:
 type: integer
 format: int64
 \- name: createdTo
 in: query
 schema:
 type: integer
 format: int64
 \- name: updatedFrom
 in: query
 schema:
 type: integer
 format: int64
 \- name: updatedTo
 in: query
 schema:
 type: integer
 format: int64
 \- name: updatedByUser
 in: query
 description: Indicator for filtering only location that were updated by a
 user.
 schema:
 type: boolean
 \- name: locationType
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- RELATIONAL\_LOCATION
 \- MYSQL\_LOCATION
 \- ATHENA\_LOCATION
 \- MONGO\_LOCATION
 \- S3\_LOCATION
 \- DATABRICKS\_LOCATION
 \- DATABRICKS\_EXTERNAL\_LOCATION
 \- GRAPHQL\_LOCATION
 \- SNOWFLAKE\_WAREHOUSE\_LOCATION
 \- ASSET\_LOCATION
 \- name: nextPageToken
 in: query
 schema:
 type: string
 \- name: assetType
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- TABLE
 \- COLUMN
 \- SEMANTIC\_MODEL
 \- REPORT
 \- DASHBOARD
 \- DATABASE
 \- SCHEMA
 \- JSON\_PATH
 \- WAREHOUSE
 \- ENDPOINT
 \- TYPE
 \- FIELD
 \- EXTERNAL\_LOCATION
 \- CATALOG
 \- BUCKET
 \- OBJECT
 \- COLLECTION
 \- VIEW
 \- ACCOUNT\_ROLE
 \- SHARED\_DB
 \- name: parentId
 in: query
 description: "Parent ID, see \`directChildren\` filter for parentId filter mode"
 schema:
 type: array
 items:
 type: string
 \- name: directChildren
 in: query
 description: "When true, parentId filter refers only for direct children of\
 \ the parent, otherwise all parent's assets sub-tree. Defaults to false."
 schema:
 type: boolean
 \- name: tag
 in: query
 description: "Filter by classifier IDs, for example: 'tag=EMAIL' or 'tag=UUID'\
 \ for custom classifiers"
 schema:
 type: array
 items:
 type: string
 \- name: category
 in: query
 description: "Filter by category IDs, for example: 'category=pii' or 'category=UUID'\
 \ for custom categories"
 schema:
 type: array
 items:
 type: string
 \- name: dataStoreType
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- SNOWFLAKE
 \- REDSHIFT
 \- BIGQUERY
 \- POSTGRESQL
 \- ATHENA
 \- MSSQL
 \- SYNAPSE
 \- MYSQL
 \- OCEANBASE
 \- API\_SERVER
 \- MARIA\_DB
 \- COCKROACH\_DB
 \- OPENSEARCH
 \- ELASTICSEARCH
 \- GREENPLUM
 \- S3
 \- MONGO
 \- DATABRICKS
 \- FABRIC
 \- AZURE\_OPEN\_AI
 \- OPEN\_AI
 \- BEDROCK
 \- ORACLE
 \- DB2
 \- DYNAMO\_DB
 \- DOCUMENT\_DB
 \- REDIS
 \- MEMCACHED
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AssetSearchQueryOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/asset/{assetId}/classification:
 put:
 tags:
 \- Data Inventory
 summary: Update Classification
 description: The HTTP PUT method allows users to add or remove classifiers associated
 with a specific asset. Users can also provide notes during the update.
 operationId: updateById\_4
 parameters:
 \- name: assetId
 in: path
 required: true
 schema:
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/UpdateLocationInput"
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AssetOutput"
 "404":
 description: Bad request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/asset/update-semi-location:
 put:
 tags:
 \- Data Inventory
 summary: Update a Semi-Structured Assets
 description: The HTTP PUT method allows users to update the details of a JSON
 path.
 operationId: updateSemiPartOfLocation
 parameters:
 \- name: id
 in: query
 schema:
 type: string
 \- name: semiPart
 in: query
 description: a valid JSONPath leading by $
 schema:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AssetOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/data-access-controllers/{id}/package/download:
 get:
 tags:
 \- Data Access Controllers (DACs)
 summary: Download a Package
 description: This HTTP GET method is used to download a package (specific version)
 that is linked with the specified data access controller (DAC). This package
 includes files or resources required for setting up or configuring the DAC.
 operationId: downloadPackageForDac
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 \- name: version
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/data-access-controllers/{id}/package/releases:
 get:
 tags:
 \- Data Access Controllers (DACs)
 summary: List all Available Packages
 description: This HTTP GET method is used to list the available releases or
 versions of the package associated with the specified data access controller
 (DAC).
 operationId: getAllAvailableVersionsForDac
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 \- name: recommended
 in: query
 schema:
 type: boolean
 default: true
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AvailablePackageVersionQueryOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/data-access-controllers:
 get:
 tags:
 \- Data Access Controllers (DACs)
 summary: List all Data Access Control
 description: "This HTTP GET method is used to retrieve a list of all the data\
 \ access controllers (DACs), that are used for administrative tasks, reporting\
 \ or management of data access within the system."
 operationId: getAllDataAccessControllers
 parameters:
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: allowForCreation
 in: query
 description: Include only DACs that are available for data store creation
 schema:
 type: boolean
 default: true
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 \- name: type
 in: query
 schema:
 type: string
 enum:
 \- PUBLIC
 \- PRIVATE
 \- PRIVATE\_MANAGED
 \- name: region
 in: query
 schema:
 type: string
 \- name: cloudProvider
 in: query
 schema:
 type: string
 enum:
 \- GCP
 \- AZURE
 \- AWS
 \- BYOC
 \- name: uniqueName
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessQueryOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/data-access-controllers/private:
 get:
 tags:
 \- Data Access Controllers (DACs)
 summary: List all Private Data Access Controls
 description: This HTTP GET method is used to retrieve a list of private or restricted
 data access controllers (DACs).
 operationId: getAllPrivateDataAccessControllers
 parameters:
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 \- name: metrics
 in: query
 schema:
 type: boolean
 default: false
 \- name: status
 in: query
 schema:
 type: string
 enum:
 \- OK
 \- WARN
 \- ERROR
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessQueryOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/data-access-controllers/{id}:
 get:
 tags:
 \- Data Access Controllers (DACs)
 summary: Retrieve a Data Access Controller
 description: This HTTP GET method is used to get detailed information about
 a specific data access controller (DAC).
 operationId: getDataAccessControllerById
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 \- name: accountId
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessControllerOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/data-access-controllers/package/releases:
 get:
 tags:
 \- Data Access Controllers (DACs)
 summary: List a Recommended and Beta Versions
 description: This HTTP GET method is used to retrieve a list of package releases
 associated with data access controllers (DACs).
 operationId: getRecommendedAndBetaVersions
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/AvailablePackageVersionQueryOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/data-access-controllers/{id}/upload-logs:
 post:
 tags:
 \- Data Access Controllers (DACs)
 summary: Trigger an Upload Log Action
 description: This HTTP POST method is used to upload log files associated with
 a specific data access controller (DAC).
 operationId: postUploadLogRequest
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: Status OK.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/data-access-controllers/update-log-collection:
 post:
 tags:
 \- Data Access Controllers (DACs)
 summary: Update DACs Log Collection Configuration
 description: This HTTP POST method is used to update the log collection settings
 for a specific data access controller (DAC).
 operationId: updateDacLogCollection
 parameters:
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: dacId
 in: query
 schema:
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/LogCollection"
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessControllerOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/data-access-controllers/{id}/upgrade-config:
 put:
 tags:
 \- Data Access Controllers (DACs)
 summary: Update a Data Access Controller Upgrade Configuration
 description: "This HTTP PUT method is used to update the log collection configuration\
 \ for one or more data access controllers.

NOTE: Each request must\
 \ include either **dacId** or **accountId**."
 operationId: updateDacUpgradeConfig
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/UpgradeConfigDto"
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessControllerOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/dataset:
 get:
 tags:
 \- Datasets
 summary: Query datasets by account id
 description: This HTTP GET method is used to retrieve a list of datasets available
 in the system.
 operationId: queryDatasets
 parameters:
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 \- name: dataStoresFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: dataStoreTypeFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: locationsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: minimal
 in: query
 schema:
 type: boolean
 default: false
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 oneOf:
 \- $ref: "#/components/schemas/DataSetMinimalQueryResponse"
 \- $ref: "#/components/schemas/DataSetQueryResponse"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 post:
 tags:
 \- Datasets
 summary: Create a Dataset
 description: "This HTTP POST method is used to create a new dataset with the\
 \ provided details. This includes defining the dataset’s name, description,\
 \ approvers (data stewards/access approvers), adding metadata as well as adding\
 \ an included and excluded location/s."
 operationId: createDataset
 parameters:
 \- name: accountId
 in: query
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataSetInput"
 required: true
 responses:
 "201":
 description: "Status OK, dataset created"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataSetOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/dataset/{id}:
 get:
 tags:
 \- Datasets
 summary: Get a Dataset
 description: "This HTTP GET method is used to fetch detailed information about\
 \ a specific dataset. This includes dataset name, description, metadata, schema,\
 \ classifiers, included and excluded location/s, permissions and default security\
 \ policies."
 operationId: getDatasetById
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, dataset found."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataSetOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 put:
 tags:
 \- Datasets
 summary: Update a Dataset
 description: "This HTTP PUT method is used to update the dataset with the provided\
 \ details. This includes changes to the dataset’s name, description, schema,\
 \ classifiers, included and excluded location/s, permissions and default security\
 \ policies."
 operationId: updateDatasetById
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataSetInput"
 required: true
 responses:
 "200":
 description: "Status OK, dataset updated"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataSetOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 delete:
 tags:
 \- Datasets
 summary: Delete a Dataset
 description: This HTTP DELETE method is used to delete the dataset with the
 specified ID. This action removes all associated data and metadata from the
 system and it is typically irreversible.
 operationId: deleteDatasetById
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "204":
 description: Status OK.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/dataset/{id}/access-details:
 get:
 tags:
 \- Datasets
 summary: Dataset Access Details
 description: "This HTTP GET method is used to fetch detailed information about\
 \ the access permissions and history for a specific dataset.

This\
 \ includes user roles, permission levels, approvers, instant access rules,\
 \ pending access requests and any recent access or changes made to the dataset,\
 \ for a specific or the current user."
 operationId: getDatasetAccessDetails
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 \- name: userId
 in: query
 description: "Optional. Administrator users or service accounts can get access\
 \ details for specific users in their account. If not specified, the API\
 \ is based on the current user."
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DatasetAccessDetailsOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/dataset/{id}/connection-details:
 get:
 tags:
 \- Datasets
 summary: Dataset Connection Details
 description: "This HTTP GET method is used to provide the necessary connection\
 \ details required to access or interact with a dataset. This includes database\
 \ connection strings, dataset ID, name, description, locations, API endpoints,\
 \ authentication tokens, and deployment type for a specific or the current\
 \ user."
 operationId: getDatasetConnectionDetails
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 \- name: userId
 in: query
 description: "Optional. Administrator users or service accounts can get access\
 \ details for specific users in their account. If not specified, the API\
 \ is based on the current user."
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DatasetConnectionDetailsOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/dataset/access-details:
 get:
 tags:
 \- Datasets
 summary: Datasets Access Details
 description: "This HTTP GET method is used to retrieve user access information\
 \ across multiple datasets. This includes a list of datasets and their corresponding\
 \ access permissions, roles, and possibly audit logs or history of access\
 \ for a specific or the current user."
 operationId: queryDatasetsAccessDetails
 parameters:
 \- name: accountId
 in: query
 required: true
 schema:
 minLength: 1
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 \- name: favorites
 in: query
 schema:
 type: boolean
 \- name: recent
 in: query
 schema:
 type: boolean
 \- name: dataPolicyIds
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: includeDataAccessRuleType
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- INSTANT\_ACCESS
 \- SELF\_SERVICE
 \- ACCESS\_REQUEST
 \- name: excludeDataAccessRuleType
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- INSTANT\_ACCESS
 \- SELF\_SERVICE
 \- ACCESS\_REQUEST
 \- name: hasPendingRequest
 in: query
 schema:
 type: boolean
 \- name: userId
 in: query
 description: "Optional. Administrator users or service accounts can get access\
 \ details for specific users in their account. If not specified, the API\
 \ is based on the current user."
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DatasetsAccessDetailsQueryOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/dataset/access-details-dbs:
 get:
 tags:
 \- Datasets
 summary: Data Stores Access Details
 description: "This HTTP GET method is used to retrieve access details for multiple\
 \ datasets or a general overview of dataset access permissions. This includes\
 \ a list of datasets along with who has access, what permissions they have,\
 \ and any relevant audit logs for a specific user."
 operationId: queryDetailedDatastoreDetails
 parameters:
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: userId
 in: query
 description: "Optional. Administrator users or service accounts can get access\
 \ details for specific users in their account. If not specified, the API\
 \ is based on the current user."
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DatasetDetailsCliQueryOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/datastore:
 get:
 tags:
 \- Data Stores
 summary: Find Data Stores by Account ID
 description: "This HTTP GET method is used to find a datastore with the account\
 \ ID. The information retrieved includes, the data store name, hostname, satori\
 \ host name, port, creation on and last updated dates, name of the creator\
 \ and the DAC ID."
 operationId: find
 parameters:
 \- name: accountId
 in: query
 required: true
 schema:
 minLength: 1
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 \- name: ids
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: dataStoreType
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- SNOWFLAKE
 \- REDSHIFT
 \- BIGQUERY
 \- POSTGRESQL
 \- ATHENA
 \- MSSQL
 \- SYNAPSE
 \- MYSQL
 \- OCEANBASE
 \- API\_SERVER
 \- MARIA\_DB
 \- COCKROACH\_DB
 \- OPENSEARCH
 \- ELASTICSEARCH
 \- GREENPLUM
 \- S3
 \- MONGO
 \- DATABRICKS
 \- FABRIC
 \- AZURE\_OPEN\_AI
 \- OPEN\_AI
 \- BEDROCK
 \- ORACLE
 \- DB2
 \- DYNAMO\_DB
 \- DOCUMENT\_DB
 \- REDIS
 \- MEMCACHED
 \- name: cloudProvider
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- GCP
 \- AZURE
 \- AWS
 \- BYOC
 \- name: activeDataStore
 in: query
 schema:
 type: boolean
 \- name: region
 in: query
 schema:
 type: string
 \- name: cloudAccountId
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: dacId
 in: query
 schema:
 type: array
 items:
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataStoreQueryOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 post:
 tags:
 \- Data Stores
 summary: Create a Data Store
 description: "This HTTP POST method is used to create a new data store within\
 \ the system. This API call allows you to define and establish a new storage\
 \ location where data can be managed, stored and accessed."
 operationId: createDataStore
 parameters:
 \- name: accountId
 in: query
 schema:
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataStoreInput"
 responses:
 "201":
 description: "Status OK, data store created"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataStoreOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 "403":
 description: Resource Limit Exceeded
 "404":
 description: Provided account not found
 security:
 \- BearerAuth: \[\]
 /api/v1/datastore/demo:
 post:
 tags:
 \- Data Stores
 summary: Create a Demo Data Store
 description: "This HTTP POST method is used to create or activate a new demo\
 \ data store in the system. This API call allows you to set up a demo data\
 \ store on a specific user account, which can be used for testing, demos,\
 \ or investigative purposes."
 operationId: createDemoDataStore
 parameters:
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: type
 in: query
 schema:
 type: string
 enum:
 \- SNOWFLAKE
 \- REDSHIFT
 \- BIGQUERY
 \- POSTGRESQL
 \- ATHENA
 \- MSSQL
 \- SYNAPSE
 \- MYSQL
 \- OCEANBASE
 \- API\_SERVER
 \- MARIA\_DB
 \- COCKROACH\_DB
 \- OPENSEARCH
 \- ELASTICSEARCH
 \- GREENPLUM
 \- S3
 \- MONGO
 \- DATABRICKS
 \- FABRIC
 \- AZURE\_OPEN\_AI
 \- OPEN\_AI
 \- BEDROCK
 \- ORACLE
 \- DB2
 \- DYNAMO\_DB
 \- DOCUMENT\_DB
 \- REDIS
 \- MEMCACHED
 responses:
 "201":
 description: "Status OK, data store created"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataStoreOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 "403":
 description: Resource Limit Exceeded
 "404":
 description: Provided account not found
 security:
 \- BearerAuth: \[\]
 /api/v1/datastore/{id}:
 get:
 tags:
 \- Data Stores
 summary: Get a Data Store
 description: "This HTTP GET method is used to retrieve detailed information\
 \ about a specific data store.

This API call allows you to access\
 \ the configuration, status, and other relevant details of the specified data\
 \ store."
 operationId: getDataStoreById
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataStoreOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 "404":
 description: Provided data store not found
 security:
 \- BearerAuth: \[\]
 put:
 tags:
 \- Data Stores
 summary: Update a Data Store
 description: "This HTTP PUT method is used to update the configuration or details\
 \ of an existing data store.

This API call allows you to modify settings,\
 \ properties, or other aspects of the specified data store."
 operationId: updateDataStoreById
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataStoreInput"
 responses:
 "200":
 description: "Status OK, data store updated"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataStoreOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 "404":
 description: Provided data store or account not found
 security:
 \- BearerAuth: \[\]
 delete:
 tags:
 \- Data Stores
 summary: Delete a Data Store
 description: This HTTP DELETE method is used to remove an existing data store
 identified by the ID.

This API call permanently deletes the data store
 and all its associated data and configurations.
 operationId: deleteDataStoreById
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "204":
 description: "Status OK, data store deleted"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 "404":
 description: Provided data store not found
 security:
 \- BearerAuth: \[\]
 /api/v1/datastore/{id}/generate-custom-ingress-port:
 get:
 tags:
 \- Data Stores
 summary: Generate a Custom Ingress Port
 description: "This HTTP GET method is used to generate or retrieve a custom\
 \ ingress port for a specific data store.

This API call provides a\
 \ port that can be used for accessing or routing traffic to the data store,\
 \ typically for custom networking configurations or specific use cases."
 operationId: generateCustomIngressPort
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, port generated"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataStoreOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 "404":
 description: Provided data store or account not found
 security:
 \- BearerAuth: \[\]
 /api/v1/datastore/{id}/identity-provider:
 put:
 tags:
 \- Data Stores
 summary: Update Data Store Identity Provider
 description: This HTTP PUT method is used to update or configure the identity
 provider settings for a specific data store.

This API call allows
 you to modify the identity provider that manages authentication and access
 control for the data store.
 operationId: updateIdentityProviderId
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 \- name: identityProviderId
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataStoreOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 "404":
 description: Provided data store not found
 security:
 \- BearerAuth: \[\]
 /api/v1/directory/group:
 get:
 tags:
 \- User Directory
 summary: Query Directory Objects by Account ID
 description: "This HTTP GET method is used to retrieve a list of groups from\
 \ the directory service.

This API call allows you to access details\
 \ about all groups that exist within the directory, including the number of\
 \ group members, group name, description, ID, creation and update info as\
 \ well as who created the group."
 operationId: queryDirectoryGroups
 parameters:
 \- name: accountId
 in: query
 required: true
 schema:
 minLength: 1
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DirectoryQueryOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 post:
 tags:
 \- User Directory
 summary: Create New Directory Object
 description: "This HTTP POST method is used to create a new group within the\
 \ directory service.

This API call allows you to define and add a\
 \ new group, including specifying its name, description, and any initial members\
 \ of the group."
 operationId: createDirectoryGroup
 parameters:
 \- name: accountId
 in: query
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DirectoryObjectInput"
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 oneOf:
 \- $ref: "#/components/schemas/DirectoryObjectOutput"
 \- $ref: "#/components/schemas/DirectoryGroupOutput"
 "401":
 description: Invalid Authorization
 "404":
 description: Bad request
 security:
 \- BearerAuth: \[\]
 /api/v1/directory/group/{id}:
 get:
 tags:
 \- User Directory
 summary: Get a Directory Object
 description: "This HTTP GET method is used to retrieve detailed information\
 \ about a specific group.

This API call allows you to access a group's\
 \ details including the group name, description, ID, creation and update info\
 \ as well as who created the group."
 operationId: getDirectoryGroupById
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, directory object found."
 content:
 application/json:
 schema:
 oneOf:
 \- $ref: "#/components/schemas/DirectoryObjectOutput"
 \- $ref: "#/components/schemas/DirectoryGroupOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 put:
 tags:
 \- User Directory
 summary: Update Directory Object by ObjectId
 description: "This HTTP PUT method is used to update the details of an existing\
 \ group within the directory service.

This API call allows you to\
 \ modify the group's name, description and members."
 operationId: updateDirectoryGroupById
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DirectoryObjectInput"
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 oneOf:
 \- $ref: "#/components/schemas/DirectoryObjectOutput"
 \- $ref: "#/components/schemas/DirectoryGroupOutput"
 "401":
 description: Invalid Authorization
 "404":
 description: Bad request
 security:
 \- BearerAuth: \[\]
 delete:
 tags:
 \- User Directory
 summary: Delete a Directory Object
 description: This HTTP DELETE method is used to remove an existing group from
 the directory service.
 operationId: deleteDirectoryGroupById
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 \- name: force
 in: query
 schema:
 type: boolean
 default: false
 responses:
 "204":
 description: Status OK.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/export/asset:
 get:
 tags:
 \- Export Data
 summary: Export Data Inventory (Assets)
 description: "The HTTP GET method exports all assets related to a specific account.\
 \ The data inventory is exported in CSV format, with a maximum limit of 100,000\
 \ records."
 operationId: exportAssetToCSV
 parameters:
 \- name: accountId
 in: query
 required: true
 schema:
 minLength: 1
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 \- name: dataStoreId
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: datasetId
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: locationPrefix
 in: query
 schema:
 type: string
 \- name: tagsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: categoriesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: createdFrom
 in: query
 schema:
 type: integer
 format: int64
 \- name: createdTo
 in: query
 schema:
 type: integer
 format: int64
 \- name: updatedFrom
 in: query
 schema:
 type: integer
 format: int64
 \- name: updatedTo
 in: query
 schema:
 type: integer
 format: int64
 \- name: updatedByUser
 in: query
 description: Indicator for filtering only location that were updated by a
 user.
 schema:
 type: boolean
 \- name: locationType
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- RELATIONAL\_LOCATION
 \- MYSQL\_LOCATION
 \- ATHENA\_LOCATION
 \- MONGO\_LOCATION
 \- S3\_LOCATION
 \- DATABRICKS\_LOCATION
 \- DATABRICKS\_EXTERNAL\_LOCATION
 \- GRAPHQL\_LOCATION
 \- SNOWFLAKE\_WAREHOUSE\_LOCATION
 \- ASSET\_LOCATION
 \- name: nextPageToken
 in: query
 schema:
 type: string
 \- name: assetType
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- TABLE
 \- COLUMN
 \- SEMANTIC\_MODEL
 \- REPORT
 \- DASHBOARD
 \- DATABASE
 \- SCHEMA
 \- JSON\_PATH
 \- WAREHOUSE
 \- ENDPOINT
 \- TYPE
 \- FIELD
 \- EXTERNAL\_LOCATION
 \- CATALOG
 \- BUCKET
 \- OBJECT
 \- COLLECTION
 \- VIEW
 \- ACCOUNT\_ROLE
 \- SHARED\_DB
 \- name: parentId
 in: query
 description: "Parent ID, see \`directChildren\` filter for parentId filter mode"
 schema:
 type: array
 items:
 type: string
 \- name: directChildren
 in: query
 description: "When true, parentId filter refers only for direct children of\
 \ the parent, otherwise all parent's assets sub-tree. Defaults to false."
 schema:
 type: boolean
 \- name: tag
 in: query
 description: "Filter by classifier IDs, for example: 'tag=EMAIL' or 'tag=UUID'\
 \ for custom classifiers"
 schema:
 type: array
 items:
 type: string
 \- name: category
 in: query
 description: "Filter by category IDs, for example: 'category=pii' or 'category=UUID'\
 \ for custom categories"
 schema:
 type: array
 items:
 type: string
 \- name: dataStoreType
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- SNOWFLAKE
 \- REDSHIFT
 \- BIGQUERY
 \- POSTGRESQL
 \- ATHENA
 \- MSSQL
 \- SYNAPSE
 \- MYSQL
 \- OCEANBASE
 \- API\_SERVER
 \- MARIA\_DB
 \- COCKROACH\_DB
 \- OPENSEARCH
 \- ELASTICSEARCH
 \- GREENPLUM
 \- S3
 \- MONGO
 \- DATABRICKS
 \- FABRIC
 \- AZURE\_OPEN\_AI
 \- OPEN\_AI
 \- BEDROCK
 \- ORACLE
 \- DB2
 \- DYNAMO\_DB
 \- DOCUMENT\_DB
 \- REDIS
 \- MEMCACHED
 \- name: fields
 in: query
 description: Field names which will be returned as columns in the responded
 list
 schema:
 type: array
 items:
 type: string
 enum:
 \- dataStoreId
 \- dataStore.type
 \- dataStore.name
 \- assetType
 \- name
 \- description
 \- locationObject.fullLocation
 \- tags
 \- createdAt
 \- updatedAt
 responses:
 "200":
 description: Status OK
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/export/data-access-request-overview:
 get:
 tags:
 \- Export Data
 summary: Export Data Access Request Overview
 description: The HTTP GET method exports the Data Access Request Overview in
 CSV format.
 operationId: exportDataAccessRequestOverviewToCsv
 parameters:
 \- name: accountId
 in: query
 required: true
 schema:
 minLength: 1
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 \- name: identity
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: identityType
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- USER
 \- DB\_USER
 \- GROUP
 \- IDP\_GROUP
 \- DATABRICKS\_GROUP
 \- DATABRICKS\_SERVICE\_PRINCIPAL
 \- SNOWFLAKE\_ROLE
 \- SNOWFLAKE\_ACCOUNT\_NAME
 \- SNOWFLAKE\_DATABASE\_ROLE
 \- CEL
 \- EVERYONE
 \- name: accessLevel
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: parent
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: datasetId
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: fields
 in: query
 description: Field names which will be returned as columns in the responded
 list
 schema:
 type: array
 items:
 type: string
 enum:
 \- type
 \- datasetId
 \- dataset.id
 \- dataset.name
 \- identity.identityType
 \- identity.identity
 \- identity.displayName
 \- accessLevel
 \- timeLimit
 \- unusedTimeLimit
 \- securityPolicies.id
 \- securityPolicies.name
 \- maskingProfiles.id
 \- maskingProfiles.name
 \- approvers
 \- requireApproverNote
 \- createdAt
 \- updatedAt
 \- suspended
 responses:
 "200":
 description: Status OK
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/export/data-access-rule-history:
 get:
 tags:
 \- Export Data
 summary: Export Data Access Rule History
 description: The HTTP GET method exports the Data Access Rule History in CSV
 format.
 operationId: exportDataAccessRuleHistoryToCsv
 parameters:
 \- name: accountId
 in: query
 required: true
 schema:
 minLength: 1
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 \- name: nextPageToken
 in: query
 description: "This parameter is used for iterate query result pages without\
 \ re-run the query for each page. Initial query should contain this parameter\
 \ (for example, set to empty for the first page), while all following queries\
 \ should contain it. Each page result will contain the \`nextPageToken\` field\
 \ with the value of the token for the next page."
 schema:
 type: string
 \- name: from
 in: query
 schema:
 type: integer
 format: int64
 \- name: to
 in: query
 schema:
 type: integer
 format: int64
 \- name: performedBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: performedBySystem
 in: query
 description: Allows to include Account Activity records performed by System.
 schema:
 type: boolean
 \- name: dataConsumers
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: excludeSubActions
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: fields
 in: query
 description: Field names which will be returned as columns in the responded
 list
 schema:
 type: array
 items:
 type: string
 enum:
 \- timestamp
 \- dataset.id
 \- dataset.name
 \- performByIdentity
 \- end\_user\_identity
 \- action\_sub\_type
 \- system\_note
 \- user\_note
 \- access\_approver\_note
 responses:
 "200":
 description: Status OK
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/export/data-access-rule-overview:
 get:
 tags:
 \- Export Data
 summary: Export Data Access Rules Overview
 description: The HTTP GET method exports the Data Access Rules Overview in CSV
 format.
 operationId: exportDataAccessRuleOverviewToCsv
 parameters:
 \- name: accountId
 in: query
 required: true
 schema:
 minLength: 1
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 \- name: type
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- INSTANT\_ACCESS
 \- SELF\_SERVICE
 \- ACCESS\_REQUEST
 \- INSTANT\_ACCESS\_REQUEST
 \- name: identity
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: identityType
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- USER
 \- DB\_USER
 \- GROUP
 \- IDP\_GROUP
 \- DATABRICKS\_GROUP
 \- DATABRICKS\_SERVICE\_PRINCIPAL
 \- SNOWFLAKE\_ROLE
 \- SNOWFLAKE\_ACCOUNT\_NAME
 \- SNOWFLAKE\_DATABASE\_ROLE
 \- CEL
 \- EVERYONE
 \- name: accessLevel
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- READ\_ONLY
 \- READ\_WRITE
 \- OWNER
 \- name: suspended
 in: query
 schema:
 type: boolean
 \- name: parent
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: datasetId
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: fields
 in: query
 description: Field names which will be returned as columns in the responded
 list
 schema:
 type: array
 items:
 type: string
 enum:
 \- type
 \- datasetId
 \- dataset.id
 \- dataset.name
 \- identity.identityType
 \- identity.identity
 \- identity.displayName
 \- accessLevel
 \- timeLimit
 \- unusedTimeLimit
 \- securityPolicies.id
 \- securityPolicies.name
 \- maskingProfiles.id
 \- maskingProfiles.name
 \- approvers
 \- requireApproverNote
 \- createdAt
 \- updatedAt
 \- message
 \- purpose
 \- suspended
 responses:
 "200":
 description: Status OK
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/export/data-flow:
 get:
 tags:
 \- Export Data
 summary: Export all Data Flows
 description: "This HTTP GET method is used to export audit logs in CSV format.\
 \

The exported data is in CSV format and includes various types of\
 \ information such as a list of governed and ungoverned queries, masking and\
 \ filtering actions, classification categories, response and processing times,\
 \ generic properties and login name."
 operationId: exportDataFlowToCSV
 parameters:
 \- name: accountId
 in: query
 required: true
 schema:
 minLength: 1
 type: string
 \- name: from
 in: query
 description: "Start query time represented by milliseconds since Jan 1, 1970,\
 \ 00:00:00.000 GMT"
 required: true
 schema:
 type: integer
 format: int64
 example: 1625573940000
 \- name: to
 in: query
 description: "End query time represented by milliseconds since Jan 1, 1970,\
 \ 00:00:00.000 GMT"
 required: true
 schema:
 type: integer
 format: int64
 example: 1625660399999
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: fields
 in: query
 description: Field names which will be returned as columns in the responded
 list
 schema:
 type: array
 items:
 type: string
 enum:
 \- flow\_timestamp
 \- identity.name
 \- data\_store.id
 \- data\_store.name
 \- data\_store.type
 \- datasets.name
 \- datasets.id
 \- tags.name
 \- locations.length
 \- locations.location
 \- query.query\_type
 \- volume.value
 \- records.value
 \- query.original\_query
 \- tool
 \- incident\_ids
 \- actions.policy\_names
 \- result\_set.column\_name
 \- actions.type
 \- identity.authentication.method
 \- query.db\_statement\_type
 \- perf\_stats.processing\_time
 \- perf\_stats.ds\_response\_time
 \- name: dataStoreIdsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: dataStoreTypes
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: userNamesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: authMethodFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolTypesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: toolDriversFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: locationsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: tagsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: incidentIdsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: policyNamesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: countriesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: citiesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: ipsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: actionTypesFilter
 in: query
 description: Filter for action types
 schema:
 type: array
 items:
 type: string
 enum:
 \- ACTION\_NONE
 \- ACTION\_ALERT
 \- ACTION\_BLOCK
 \- ACTION\_MASK
 \- ACTION\_REQUEST\_BLOCK
 \- ACTION\_ROW\_FILTER
 \- ACTION\_ORCH\_MASK\_POLICY\_EXECUTED
 \- ACTION\_ORCH\_ROW\_FILTER\_POLICY\_EXECUTED
 \- name: tagCategoriesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: hasIncidentsFilter
 in: query
 schema:
 type: boolean
 \- name: hasIncidentsFilterV2
 in: query
 schema:
 type: boolean
 \- name: hasDataStoreErrorsFilter
 in: query
 schema:
 type: boolean
 \- name: includeAdministrateQueriesFilter
 in: query
 schema:
 type: boolean
 default: false
 \- name: governedQueries
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- GOVERNED
 \- UNGOVERNED
 \- name: groupsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: datasetsFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: securityPoliciesFilter
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: flowId
 in: query
 schema:
 type: string
 \- name: accessPermissionIds
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: queryIdFilter
 in: query
 schema:
 type: string
 \- name: genericPropertiesFilter
 in: query
 schema:
 type: string
 \- name: recordsRangeFilter
 in: query
 description: \|-
 This is a range parameter for the number of records returned from query of the form 'min:max'.

for example, '1:30' is a min of 1 and a max of 30, ':20' is without min and a max of 20
 schema:
 type: string
 \- name: statementType
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: loginName
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: purposeSearch
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/groups/{id}:
 get:
 tags:
 \- Groups
 summary: Retrieve an IdP Group
 description: "This HTTP GET method is used to retrieve detailed information\
 \ about a specific group.

This API call allows you to access details\
 \ about a specific IdP group including details such as, the group name, description,\
 \ email address, display name, members, ID, creation and last update date\
 \ and time. "
 operationId: retrieve
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, group found."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/IdpGroupOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/groups:
 get:
 tags:
 \- Groups
 summary: List all IdP Groups
 description: "This HTTP GET method is used to retrieve a list of all groups\
 \ in the system.

This API call allows you to access details about\
 \ each IdP group, including the group members, access settings, temporary\
 \ credentials expiration time and date."
 operationId: retrieveAll
 parameters:
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 \- name: accountId
 in: query
 required: true
 schema:
 minLength: 1
 type: string
 \- name: names
 in: query
 description: List of group names to filter by
 schema:
 type: array
 items:
 type: string
 \- name: memberId
 in: query
 schema:
 type: string
 \- name: memberEmail
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/IdpGroupQueryResponse"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/taxonomy/custom/category:
 post:
 tags:
 \- Taxonomy
 summary: Create a Custom Category
 description: "This HTTP POST method is used to create a new custom category\
 \ within a taxonomy system.

This API call allows you to define and\
 \ add a new category with specified attributes, which can be used to classify\
 \ or organize data within the taxonomy."
 operationId: createCustomTaxonomyCategory
 parameters:
 \- name: accountId
 in: query
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/TaxonomyCategoryInput"
 required: true
 responses:
 "201":
 description: "Status OK, custom taxonomy category created"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/TaxonomyNodeOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/taxonomy/custom/classifier:
 post:
 tags:
 \- Taxonomy
 summary: Create a Custom Classifier
 description: "This HTTP POST method is used to create a new custom classifier\
 \ in a custom category folder of the taxonomy system.

This API call\
 \ allows you to define and add a new classifier, which can be used to categorize\
 \ or organize data according to specific criteria or rules."
 operationId: createCustomTaxonomyClassifier
 parameters:
 \- name: accountId
 in: query
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/TaxonomyCustomClassifierInput"
 required: true
 responses:
 "201":
 description: "Status OK, custom taxonomy classifier created"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/TaxonomyNodeOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/taxonomy/custom/{id}:
 get:
 tags:
 \- Taxonomy
 summary: Retrieve a Custom Node
 description: "This HTTP GET method is used to retrieve detailed information\
 \ about a specific custom taxonomy item.

This API call provides details\
 \ about the custom taxonomy, such as its attributes, categories, classifiers,\
 \ and any other relevant information associated with it."
 operationId: getCustomTaxonomyNodeById
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, custom taxonomy node found."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/TaxonomyNodeOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 delete:
 tags:
 \- Taxonomy
 summary: Delete a Custom Node
 description: This HTTP DELETE method is used to remove a specific custom taxonomy
 item.

This API call permanently deletes the taxonomy item and all
 its associated data.
 operationId: deleteCustomTaxonomyNodeById
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "204":
 description: Status OK.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/taxonomy/custom:
 get:
 tags:
 \- Taxonomy
 summary: List all Custom Taxonomy
 description: "This HTTP GET method is used to retrieve a list of all custom\
 \ taxonomy items within the system.

This API call provides information\
 \ about each custom taxonomy, including their attributes and classifications."
 operationId: getAllCustomTaxonomyNodesForAccountId
 parameters:
 \- name: accountId
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/TaxonomyNodeQueryResponse"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/taxonomy/satori:
 get:
 tags:
 \- Taxonomy
 summary: List all Satori Taxonomy
 description: "This HTTP GET method is used to retrieve information about the\
 \ Satori taxonomy within the system.

This API call provides details\
 \ about the Satori taxonomy, including its structure, categories, classifiers,\
 \ and any other relevant information associated with it."
 operationId: getAllSatoriTaxonomyNodes
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/SatoriTaxonomyQueryResponse"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/taxonomy/custom/remove-from-locations/{id}:
 delete:
 tags:
 \- Taxonomy
 summary: Remove a Custom Classifier from all Locations
 description: "This HTTP DELETE method is used to remove a specific custom taxonomy\
 \ item from associated locations.

This API call disassociates the\
 \ taxonomy item from any locations it was previously linked to, without deleting\
 \ the taxonomy item itself."
 operationId: removeCustomTaxonomyNodeFromLocations
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "202":
 description: Status OK. Operation accepted.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/taxonomy/satori/remove-from-locations/{id}:
 delete:
 tags:
 \- Taxonomy
 summary: Remove a Satori Classifier from all Locations
 description: "This HTTP DELETE method is used to remove a specific Satori taxonomy\
 \ item from associated locations.

This API call disassociates the\
 \ taxonomy item from any locations it was previously linked to, without deleting\
 \ the taxonomy item itself."
 operationId: removeSatoriTaxonomyNodeFromLocations
 parameters:
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "202":
 description: Status OK. Operation accepted.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/taxonomy/custom/category/{id}:
 put:
 tags:
 \- Taxonomy
 summary: Update a Custom Category
 description: "This HTTP PUT method is used to update the details of an existing\
 \ custom taxonomy category.

This API call allows you to modify the\
 \ attributes, name, description, or other relevant properties of the specified\
 \ category within the taxonomy system."
 operationId: updateCustomTaxonomyCategoryById
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/TaxonomyCategoryInput"
 required: true
 responses:
 "200":
 description: "Status OK, custom taxonomy category updated"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/TaxonomyNodeOutput"
 "400":
 description: Bad request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/taxonomy/custom/classifier/{id}:
 put:
 tags:
 \- Taxonomy
 summary: Update a Custom Classifier
 description: "This HTTP PUT method is used to update the details of an existing\
 \ custom taxonomy classifier.

This API call allows you to modify attributes,\
 \ name, description, or other relevant properties of the specified classifier\
 \ within the taxonomy system."
 operationId: updateCustomTaxonomyClassifierById
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/TaxonomyCustomClassifierInput"
 required: true
 responses:
 "200":
 description: "Status OK, custom taxonomy classifier updated"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/TaxonomyNodeOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/users:
 get:
 tags:
 \- Users and Roles
 summary: List all Users
 description: Lists all users
 operationId: queryUsers
 parameters:
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 \- name: usersType
 in: query
 schema:
 type: string
 default: BOTH
 enum:
 \- MANAGED\_USER
 \- SATORI\_USER
 \- BOTH
 \- name: personalAccessTokens
 in: query
 schema:
 type: boolean
 \- name: roleId
 in: query
 description: Satori Role ID
 schema:
 uniqueItems: true
 type: array
 items:
 type: string
 \- name: status
 in: query
 description: The user activation status
 schema:
 type: string
 enum:
 \- PENDING\_ACTIVATION
 \- ACTIVE
 \- DISABLED
 \- name: idpGroups
 in: query
 schema:
 type: array
 items:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/UsersQueryOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/data-access-rule/instant-access:
 get:
 tags:
 \- Data Access Rules
 summary: List all Data Access Permissions
 description: This HTTP GET method is used to retrieve information about data
 access rules that provide instant access.
 operationId: getAllByParent
 parameters:
 \- name: parentId
 in: query
 description: "Parent ID is a required query param, could be a dataset ID or\
 \ a data policy ID"
 required: true
 schema:
 minLength: 1
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessPermissionQueryResponse"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 post:
 tags:
 \- Data Access Rules
 summary: Create a Data Access Permission
 description: This HTTP POST method is used to create or define a new data access
 rule that grants instant access.
 operationId: create\_6
 parameters:
 \- name: parentId
 in: query
 description: "Parent ID is a required query param, could be a dataset ID or\
 \ a data policy ID"
 required: true
 schema:
 minLength: 1
 type: string
 \- name: accessRequestId
 in: query
 schema:
 type: string
 \- name: allowOverrideExistingUserAccess
 in: query
 schema:
 type: boolean
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessPermissionRuleInput"
 responses:
 "201":
 description: "Status OK, data access rule created"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessRuleOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/data-access-rule/instant-access/{id}:
 get:
 tags:
 \- Data Access Rules
 summary: Retrieve a Data Access Permission
 description: This HTTP GET method is used to retrieve detailed information about
 a specific data access rule that provides instant access.
 operationId: getById\_2
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, data access permission found."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessPermissionRuleOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 put:
 tags:
 \- Data Access Rules
 summary: Update a Data Access Permission
 description: This HTTP PUT method is used to update the details of an existing
 data access rule that provides instant access.
 operationId: updateById\_5
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessPermissionRuleUpdateInput"
 required: true
 responses:
 "200":
 description: "Status OK, data access rule updated"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessPermissionRuleOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 delete:
 tags:
 \- Data Access Rules
 summary: Delete a Data Access Permission
 description: This HTTP DELETE method is used to remove a specific data access
 rule that provides instant access.
 operationId: deleteById\_8
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "204":
 description: Status OK.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/data-access-rule/access-request:
 get:
 tags:
 \- Data Access Rules
 summary: List all Data Access Requests
 description: This HTTP GET method is used to retrieve information about data
 access rules related to access requests.
 operationId: getAllByParent\_1
 parameters:
 \- name: parentId
 in: query
 description: "Parent ID is a required query param, could be a dataset ID or\
 \ a data policy ID"
 required: true
 schema:
 minLength: 1
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessRequestRuleQueryResponse"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 post:
 tags:
 \- Data Access Rules
 summary: Create a Data Access Request Rule
 description: This HTTP POST method is used to create or define a new data access
 rule related to access requests.
 operationId: create\_7
 parameters:
 \- name: parentId
 in: query
 description: "Parent ID is a required query param, could be a dataset ID or\
 \ a data policy ID"
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessRequestRuleInput"
 responses:
 "201":
 description: "Status OK, data access rule created"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessRuleOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/data-access-rule/access-request/{id}:
 get:
 tags:
 \- Data Access Rules
 summary: Retrieve a Data Access Request
 description: This HTTP GET method is used to retrieve detailed information about
 a specific data access rule related to access requests.
 operationId: getById\_3
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, data access request found."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessRequestRuleOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 put:
 tags:
 \- Data Access Rules
 summary: Update a Data Access Request
 description: "This HTTP PUT method is used to retrieve detailed information\
 \ about a specific data access rule, which is related to handling access requests."
 operationId: updateById\_6
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessRequestRuleUpdateInput"
 required: true
 responses:
 "200":
 description: "Status OK, data access rule updated"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessRequestRuleOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 delete:
 tags:
 \- Data Access Rules
 summary: Delete a Data Access Request
 description: This HTTP DELETE method is used to remove a specific data access
 rule that pertains to access requests.
 operationId: deleteById\_9
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "204":
 description: Status OK.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/v1/data-access-rule:
 get:
 tags:
 \- Data Access Rules
 summary: List all Data Access Rules
 description: This HTTP GET method is used to retrieve a list of all data access
 rules in the system.
 operationId: query\_1
 parameters:
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 \- name: type
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- INSTANT\_ACCESS
 \- SELF\_SERVICE
 \- ACCESS\_REQUEST
 \- INSTANT\_ACCESS\_REQUEST
 \- name: identity
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: identityType
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- USER
 \- DB\_USER
 \- GROUP
 \- IDP\_GROUP
 \- DATABRICKS\_GROUP
 \- DATABRICKS\_SERVICE\_PRINCIPAL
 \- SNOWFLAKE\_ROLE
 \- SNOWFLAKE\_ACCOUNT\_NAME
 \- SNOWFLAKE\_DATABASE\_ROLE
 \- CEL
 \- EVERYONE
 \- name: accessLevel
 in: query
 schema:
 type: array
 items:
 type: string
 enum:
 \- READ\_ONLY
 \- READ\_WRITE
 \- OWNER
 \- name: suspended
 in: query
 schema:
 type: boolean
 \- name: parent
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: datasetId
 in: query
 schema:
 type: array
 items:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessRuleResourceQueryResponseOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/data-access-rule/history:
 get:
 tags:
 \- Data Access Rules
 summary: List Data Access Rule History
 description: "This HTTP GET method is used to retrieve the history or log of\
 \ changes related to data access rules.

This API call provides information\
 \ about past modifications, including updates, deletions, and creation of\
 \ access rules, along with timestamps and the users who made the changes."
 operationId: queryHistory
 parameters:
 \- name: accountId
 in: query
 schema:
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 \- name: nextPageToken
 in: query
 description: "This parameter is used for iterate query result pages without\
 \ re-run the query for each page. Initial query should contain this parameter\
 \ (for example, set to empty for the first page), while all following queries\
 \ should contain it. Each page result will contain the \`nextPageToken\` field\
 \ with the value of the token for the next page."
 schema:
 type: string
 \- name: from
 in: query
 schema:
 type: integer
 format: int64
 \- name: to
 in: query
 schema:
 type: integer
 format: int64
 \- name: performedBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: performedBySystem
 in: query
 description: Allows to include Account Activity records performed by System.
 schema:
 type: boolean
 \- name: dataConsumers
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: excludeSubActions
 in: query
 schema:
 type: array
 items:
 type: string
 responses:
 "200":
 description: Status OK
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/ResourceQueryPageResponseOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/data-access-rule/self-service:
 get:
 tags:
 \- Data Access Rules
 summary: List all Data Access Self-Service
 description: 'This HTTP GET method is used to retrieve information about data
 access rules specifically related to self-service access. '
 operationId: getAllByParent\_2
 parameters:
 \- name: parentId
 in: query
 description: "Parent ID is a required query param, could be a dataset ID or\
 \ a data policy ID"
 required: true
 schema:
 minLength: 1
 type: string
 \- name: page
 in: query
 schema:
 type: integer
 format: int32
 default: 0
 \- name: pageSize
 in: query
 schema:
 type: integer
 format: int32
 default: 5
 \- name: orderBy
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: orderDirection
 in: query
 schema:
 type: array
 items:
 type: string
 \- name: search
 in: query
 schema:
 type: string
 responses:
 "200":
 description: Status OK.
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessSelfServiceRuleQueryResponse"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 post:
 tags:
 \- Data Access Rules
 summary: Create a Data Access Self-Service
 description: This HTTP POST method is used to create or define a new data access
 rule for self-service access.
 operationId: create\_8
 parameters:
 \- name: parentId
 in: query
 description: "Parent ID is a required query param, could be a dataset ID or\
 \ a data policy ID"
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessSelfServiceRuleInput"
 responses:
 "201":
 description: "Status OK, data access rule created"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessRuleOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 security:
 \- BearerAuth: \[\]
 /api/v1/data-access-rule/self-service/{id}:
 get:
 tags:
 \- Data Access Rules
 summary: Retrieve a Data Access Self-Service
 description: "This HTTP GET method is used to retrieve detailed information\
 \ about a specific self-service data access rule.

This API call provides\
 \ details about the self service data access rule’s configuration, conditions,\
 \ and any permissions or settings."
 operationId: getById\_4
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: "Status OK, data access self-service rule found."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessSelfServiceRuleOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 put:
 tags:
 \- Data Access Rules
 summary: Update a Data Access Self-Service
 description: This HTTP PUT method is used to update the details of an existing
 self-service data access rule.
 operationId: updateById\_7
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 minLength: 1
 type: string
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessSelfServiceRuleUpdateInput"
 required: true
 responses:
 "200":
 description: "Status OK, data access rule updated"
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/DataAccessSelfServiceRuleOutput"
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 delete:
 tags:
 \- Data Access Rules
 summary: Delete a Data Access Self-Service
 description: 'This HTTP DELETE method is used to remove a specific self-service
 data access rule. '
 operationId: deleteById\_10
 parameters:
 \- name: id
 in: path
 required: true
 schema:
 type: string
 responses:
 "204":
 description: Status OK.
 "400":
 description: Bad configuration request
 "401":
 description: Invalid Authorization
 "404":
 description: Resource not found
 security:
 \- BearerAuth: \[\]
 /api/authentication/token:
 post:
 tags:
 \- Service Account Authentication
 summary: Create Authentication Bearer
 description: "This HTTP POST method is used to generate or request an authentication\
 \ token.

NOTE: The token usually has a defined validity period and\
 \ is used to authenticate subsequent API requests."
 operationId: authenticate
 requestBody:
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/TokenAuthenticationInput"
 responses:
 "201":
 description: "Status OK, bearer created."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/TokenOutput"
 "400":
 description: Bad configuration request
 /api/authentication/oauth/token:
 post:
 tags:
 \- Service Account Authentication
 summary: Create OAuth Authentication Token
 description: This HTTP POST method is used for obtaining authentication tokens
 that allow secure access to resources protected by OAuth 2.0.
 operationId: oAuthClientCredentialsAuthentication
 requestBody:
 content:
 application/x-www-form-urlencoded:
 schema:
 type: object
 properties:
 grant\_type:
 type: string
 client\_id:
 type: string
 client\_secret:
 type: string
 responses:
 "201":
 description: "Status OK, bearer created."
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/OAuthTokenOutput"
 "400":
 description: Bad configuration request
components:
 schemas:
 AWSMarketplaceDto:
 required:
 \- marketplaceAccountId
 \- marketplaceCustomerId
 \- marketplaceProductCode
 \- provider
 type: object
 allOf:
 \- $ref: "#/components/schemas/MarketplaceDto"
 \- type: object
 properties:
 marketplaceAccountId:
 minLength: 1
 type: string
 marketplaceCustomerId:
 minLength: 1
 type: string
 marketplaceProductCode:
 minLength: 1
 type: string
 AccountDataPortalSettingsDto:
 type: object
 properties:
 defaultTemporaryCredentialsExpirationTime:
 $ref: "#/components/schemas/ExpirationTimeDto"
 preDefinedDataAccessPurposes:
 type: array
 items:
 $ref: "#/components/schemas/PreDefinedDataAccessPurposeDto"
 defaultPurpose:
 type: string
 enablePersonalAccessToken:
 type: boolean
 AccountOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 name:
 type: string
 ssoEnabled:
 type: boolean
 ssoMetadataXml:
 type: string
 ssoValidLoginHours:
 type: integer
 format: int32
 demoAccount:
 type: boolean
 dataStorageLocation:
 type: string
 enum:
 \- US
 \- EU
 marketplaceDetails:
 $ref: "#/components/schemas/MarketplaceDto"
 dataPortalSettings:
 $ref: "#/components/schemas/AccountDataPortalSettingsDto"
 subscription:
 $ref: "#/components/schemas/AccountSubscriptionDto"
 featureVersion:
 type: string
 notificationsSettings:
 type: array
 items:
 $ref: "#/components/schemas/NotificationSettingOutput"
 usersNotificationSettings:
 type: array
 items:
 $ref: "#/components/schemas/UserNotificationsSettingsDto"
 customEmailUserAttribute:
 type: string
 awsExternalId:
 type: string
 commvaultTenantId:
 type: string
 usersNotificationsSettings:
 type: array
 writeOnly: true
 items:
 $ref: "#/components/schemas/UserNotificationsSettingsDto"
 AccountSubscriptionDto:
 type: object
 properties:
 type:
 type: string
 enum:
 \- PROSPECT
 \- DEMO
 \- TEST\_DRIVE
 \- PAID\_CUSTOMER
 \- PAST\_CUSTOMER
 \- PARTNER
 \- E2E
 AzureMarketplaceDto:
 required:
 \- provider
 type: object
 allOf:
 \- $ref: "#/components/schemas/MarketplaceDto"
 \- type: object
 properties:
 customerTenantId:
 type: string
 BaseNotificationChannel:
 type: object
 properties:
 type:
 type: string
 enum:
 \- EMAIL
 \- SLACK
 ExpirationTimeDto:
 type: object
 properties:
 value:
 type: integer
 format: int32
 timeframe:
 type: string
 enum:
 \- Nanos
 \- Micros
 \- Millis
 \- Seconds
 \- Minutes
 \- Hours
 \- HalfDays
 \- Days
 \- Weeks
 \- Months
 \- Years
 \- Decades
 \- Centuries
 \- Millennia
 \- Eras
 \- Forever
 description:
 type: string
 MarketplaceDto:
 required:
 \- provider
 type: object
 properties:
 provider:
 type: string
 enum:
 \- AWS
 \- AZURE
 discriminator:
 propertyName: provider
 NotificationSettingOutput:
 type: object
 properties:
 notificationKeys:
 type: array
 items:
 type: string
 recipients:
 type: array
 items:
 type: string
 channel:
 type: string
 enum:
 \- EMAIL
 \- SLACK
 active:
 type: boolean
 updatedAt:
 type: string
 format: date-time
 PreDefinedDataAccessPurposeDto:
 type: object
 properties:
 purpose:
 type: string
 requiredReason:
 type: boolean
 UserNotificationsSettingsDto:
 type: object
 properties:
 type:
 type: string
 enum:
 \- ACCESS\_GRANTED
 \- ACCESS\_DENIED
 \- ACCESS\_REVOKED
 \- ACCESS\_REQUEST\_PENDING\_APPROVAL
 channels:
 type: array
 items:
 $ref: "#/components/schemas/BaseNotificationChannel"
 active:
 type: boolean
 overriddenDefault:
 type: boolean
 slackIntegrationActive:
 type: boolean
 PreDefinedDataAccessPurposesOutput:
 type: object
 properties:
 purposes:
 type: array
 items:
 $ref: "#/components/schemas/PreDefinedDataAccessPurposeDto"
 defaultPurpose:
 type: string
 AccountThemeOutput:
 type: object
 properties:
 enabled:
 type: boolean
 logo:
 $ref: "#/components/schemas/AssetsParam"
 backgroundColor:
 type: string
 primaryColor:
 type: string
 textPrimaryColor:
 type: string
 AssetsParam:
 type: object
 properties:
 filename:
 type: string
 mimeType:
 type: string
 size:
 type: integer
 format: int32
 originalFilename:
 type: string
 IdentityMinimalOutput:
 type: object
 properties:
 id:
 type: string
 name:
 type: string
 type:
 type: string
 DataAccessIdentityOutput:
 type: object
 properties:
 identityType:
 type: string
 enum:
 \- USER
 \- DB\_USER
 \- GROUP
 \- IDP\_GROUP
 \- DATABRICKS\_GROUP
 \- DATABRICKS\_SERVICE\_PRINCIPAL
 \- SNOWFLAKE\_ROLE
 \- SNOWFLAKE\_ACCOUNT\_NAME
 \- SNOWFLAKE\_DATABASE\_ROLE
 \- CEL
 \- EVERYONE
 identity:
 type: string
 id:
 type: string
 displayName:
 type: string
 IdentitiesExpirationTimeOutput:
 type: object
 properties:
 identitiesAndExpirationTime:
 type: array
 items:
 $ref: "#/components/schemas/IdentityWithExpirationTime"
 IdentityWithExpirationTime:
 type: object
 properties:
 identity:
 $ref: "#/components/schemas/DataAccessIdentityOutput"
 temporaryCredentialsExpirationTime:
 $ref: "#/components/schemas/ExpirationTimeDto"
 NotificationsSettingsOutput:
 type: array
 properties:
 empty:
 type: boolean
 first:
 $ref: "#/components/schemas/NotificationSettingOutput"
 last:
 $ref: "#/components/schemas/NotificationSettingOutput"
 items:
 $ref: "#/components/schemas/NotificationSettingOutput"
 NotificationSettingDto:
 type: object
 properties:
 notificationKeys:
 type: array
 items:
 type: string
 recipients:
 type: array
 items:
 type: string
 channel:
 type: string
 enum:
 \- EMAIL
 \- SLACK
 active:
 type: boolean
 AccountSettingsInput:
 required:
 \- name
 type: object
 properties:
 name:
 minLength: 1
 type: string
 ssoEnabled:
 type: boolean
 ssoMetadataXml:
 type: string
 ssoValidLoginHours:
 type: integer
 format: int32
 FormDataContentDisposition:
 type: object
 properties:
 type:
 type: string
 parameters:
 type: object
 additionalProperties:
 type: string
 fileName:
 type: string
 creationDate:
 type: string
 format: date-time
 modificationDate:
 type: string
 format: date-time
 readDate:
 type: string
 format: date-time
 size:
 type: integer
 format: int64
 name:
 type: string
 AccountServiceOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 accountId:
 type: string
 description:
 type: string
 bot:
 type: boolean
 blocked:
 type: boolean
 bruteForceBlocked:
 type: boolean
 AccountServiceKeyOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 accountId:
 type: string
 description:
 type: string
 bot:
 type: boolean
 blocked:
 type: boolean
 bruteForceBlocked:
 type: boolean
 apiKey:
 type: string
 ApiIdentityInput:
 required:
 \- accountId
 \- description
 type: object
 properties:
 accountId:
 minLength: 1
 type: string
 description:
 minLength: 1
 type: string
 AccountServiceQueryOutput:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/AccountServiceOutput"
 count:
 type: integer
 format: int64
 RoleOutput:
 type: object
 properties:
 id:
 type: string
 name:
 type: string
 description:
 type: string
 DacAccessTokenOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 name:
 type: string
 expirationTime:
 type: string
 format: date-time
 permissions:
 type: array
 items:
 type: string
 enum:
 \- CLIENT\_ACCESS
 \- SPECIAL\_URL
 enable:
 type: boolean
 token:
 type: string
 DacAccessTokenInput:
 required:
 \- name
 type: object
 properties:
 name:
 minLength: 1
 type: string
 expirationTime:
 type: string
 format: date-time
 permissions:
 type: array
 items:
 type: string
 enum:
 \- CLIENT\_ACCESS
 \- SPECIAL\_URL
 enable:
 type: boolean
 DacAccessTokenQueryResponse:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/DacAccessTokenWithoutTokenOutput"
 count:
 type: integer
 format: int64
 DacAccessTokenWithoutTokenOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 name:
 type: string
 expirationTime:
 type: string
 format: date-time
 permissions:
 type: array
 items:
 type: string
 enum:
 \- CLIENT\_ACCESS
 \- SPECIAL\_URL
 enable:
 type: boolean
 ApproveAccessRequestInput:
 type: object
 properties:
 approverNote:
 type: string
 DataAccessRequestOutput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/DataAccessRuleOutput"
 \- type: object
 properties:
 timeLimit:
 $ref: "#/components/schemas/DurationTimeLimitOutput"
 user:
 type: string
 message:
 type: string
 purpose:
 type: string
 dataAccessLevel:
 type: string
 enum:
 \- READ\_ONLY
 \- READ\_WRITE
 \- OWNER
 requireApproverNote:
 type: boolean
 userPermissions:
 $ref: "#/components/schemas/UserAccessRequestResourcePermissions"
 DataAccessUnusedTimeLimitOutput:
 type: object
 properties:
 unusedDaysUntilRevocation:
 type: integer
 format: int32
 shouldRevoke:
 type: boolean
 DurationTimeLimitOutput:
 type: object
 properties:
 shouldExpire:
 type: boolean
 unitType:
 type: string
 enum:
 \- MINUTES
 \- HOURS
 \- DAYS
 \- WEEKS
 \- MONTHS
 \- YEARS
 units:
 type: integer
 format: int32
 UserAccessRequestResourcePermissions:
 type: object
 properties:
 canEdit:
 type: boolean
 canApprove:
 type: boolean
 DeleteAccessRequestInput:
 type: object
 properties:
 rejectionNote:
 type: string
 DataAccessRequestQueryResponse:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/DataAccessRequestOutput"
 count:
 type: integer
 format: int64
 DataAccessRequestOverviewOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 identity:
 $ref: "#/components/schemas/DataAccessIdentityOutput"
 accessLevel:
 type: string
 enum:
 \- READ\_ONLY
 \- READ\_WRITE
 \- OWNER
 timeLimit:
 $ref: "#/components/schemas/DurationTimeLimit"
 unusedTimeLimit:
 $ref: "#/components/schemas/DataAccessUnusedTimeLimit"
 message:
 type: string
 purpose:
 type: string
 dataset:
 $ref: "#/components/schemas/IdAndName"
 securityPolicies:
 type: array
 items:
 $ref: "#/components/schemas/IdAndName"
 maskingProfiles:
 type: array
 items:
 $ref: "#/components/schemas/IdAndName"
 requireApproverNote:
 type: boolean
 userPermissions:
 $ref: "#/components/schemas/UserAccessRequestResourcePermissions"
 id:
 type: string
 DataAccessRequestOverviewQueryResponse:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/DataAccessRequestOverviewOutput"
 count:
 type: integer
 format: int64
 DataAccessUnusedTimeLimit:
 type: object
 properties:
 unusedDaysUntilRevocation:
 type: integer
 format: int32
 shouldRevoke:
 type: boolean
 DurationTimeLimit:
 type: object
 properties:
 shouldExpire:
 type: boolean
 unitType:
 type: string
 enum:
 \- MINUTES
 \- HOURS
 \- DAYS
 \- WEEKS
 \- MONTHS
 \- YEARS
 units:
 type: integer
 format: int32
 IdAndName:
 type: object
 properties:
 id:
 type: string
 name:
 type: string
 ListDataAccessRequestOverviewOutput:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/DataAccessRequestOverviewOutput"
 count:
 type: integer
 format: int64
 UserAccessRequestInput:
 type: object
 properties:
 message:
 type: string
 purpose:
 type: string
 dataAccessLevel:
 type: string
 enum:
 \- READ\_ONLY
 \- READ\_WRITE
 \- OWNER
 dataAccessRuleId:
 type: string
 ActionListEntry:
 type: object
 properties:
 toolName:
 type: string
 numberOfQueries:
 type: integer
 StatsGenericOutput:
 type: object
 properties:
 datastoresInUse:
 type: integer
 format: int32
 distinctUserAccess:
 type: integer
 format: int32
 bytesProcessed:
 type: integer
 numberOfQueries:
 type: integer
 lastQueriedAt:
 type: string
 format: date-time
 ViolationsResponse:
 type: object
 properties:
 masked:
 type: integer
 blocked:
 type: integer
 alerted:
 type: integer
 others:
 type: integer
 DashboardMetricsOutput:
 type: object
 properties:
 dataStoresCount:
 type: integer
 format: int64
 activeDataStoresCount:
 type: integer
 format: int64
 governedQueriesCount:
 type: integer
 format: int64
 queriesCount:
 type: integer
 format: int64
 usersCount:
 type: integer
 format: int64
 DataFlowsQueriesOutput:
 type: object
 properties:
 records:
 type: array
 items:
 type: object
 count:
 type: integer
 format: int64
 nextPageToken:
 type: string
 dsIdsToNamesMap:
 type: object
 additionalProperties:
 type: string
 EnterpriseAuditSnowflakeOutput:
 type: object
 properties:
 enabled:
 type: boolean
 description: indicates if Audit logs are exported to Snowflake
 region:
 type: string
 description: a Snowflake region where the Audit logs shared (should be the
 same region as shared account)
 sharedAccount:
 type: string
 description: Audit logs are shared with this customer's Snowflake account
 ManagementIpsOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 ips:
 type: array
 items:
 type: string
 SamlIdpOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 providerName:
 type: string
 linkedDataStores:
 type: array
 items:
 type: string
 providerPublicCert:
 type: string
 providerLoginUrl:
 type: string
 providerIdentifier:
 type: string
 consumerEntityId:
 type: string
 consumerServiceUrl:
 type: string
 satoriPublicCert:
 type: string
 satoriPublicCerts:
 type: array
 items:
 $ref: "#/components/schemas/SatoriPublicCertificate"
 provider:
 type: string
 writeOnly: true
 SatoriPublicCertificate:
 type: object
 properties:
 publicCert:
 type: string
 expiryDate:
 type: string
 format: date-time
 active:
 type: boolean
 AzureSamlCertificateInput:
 required:
 \- satoriPublicCert
 type: object
 properties:
 satoriPublicCert:
 minLength: 1
 type: string
 IdentityProviderOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 providerName:
 type: string
 linkedDataStores:
 type: array
 items:
 type: string
 provider:
 type: string
 writeOnly: true
 AzureSamlIdentityProviderInput:
 required:
 \- provider
 type: object
 properties:
 provider:
 type: string
 enum:
 \- OKTA\_API
 \- AZURE\_SAML
 \- AZURE\_API
 \- ONELOGIN\_API
 \- SCIM
 providerPublicCert:
 type: string
 providerIdentifier:
 type: string
 providerLoginUrl:
 type: string
 consumerEntityId:
 type: string
 consumerServiceUrl:
 type: string
 AWSIamRoleCredentialsOutput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/CredentialsOutput"
 \- type: object
 properties:
 awsServiceRoleARN:
 type: string
 AWSServicePrincipalTokenCredentialsOutput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/CredentialsOutput"
 \- type: object
 properties:
 clientId:
 type: string
 AzureM2MServicePrincipalTokenCredentialsOutput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/CredentialsOutput"
 \- type: object
 properties:
 clientId:
 type: string
 AzureServicePrincipalTokenCredentialsOutput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/CredentialsOutput"
 \- type: object
 properties:
 tenantId:
 type: string
 clientId:
 type: string
 CloudProviderRegions:
 type: object
 properties:
 cloudProvider:
 type: string
 enum:
 \- GCP
 \- AZURE
 \- AWS
 \- BYOC
 regions:
 type: array
 items:
 $ref: "#/components/schemas/RegionsMetadata"
 CredentialsOutput:
 type: object
 properties:
 hasPassword:
 type: boolean
 type:
 type: string
 enum:
 \- RSA\_KEY\_PAIR
 \- USERNAME\_PASSWORD
 \- AZURE\_SERVICE\_PRINCIPAL\_TOKEN
 \- AZURE\_M2M\_SERVICE\_PRINCIPAL\_TOKEN
 \- AWS\_SERVICE\_PRINCIPAL\_TOKEN
 \- AWS\_IAM\_ROLE
 \- SERVICE\_TOKEN
 discriminator:
 propertyName: type
 DataStoreDiscoveryDetailsOutput:
 type: object
 properties:
 objectId:
 type: string
 externalId:
 type: string
 cloudAccountId:
 type: string
 cloudAccountProvider:
 type: string
 enum:
 \- AWS
 \- SNOWFLAKE
 \- MONGO\_ATLAS
 \- DATABRICKS
 engineType:
 type: string
 cloudAccountName:
 type: string
 cluster:
 type: boolean
 DataStoreMinimalOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 name:
 type: string
 hostname:
 type: string
 satoriHostname:
 type: string
 dataAccessControllerId:
 type: string
 parent:
 type: string
 type:
 type: string
 projectIds:
 type: array
 items:
 type: string
 originPort:
 type: integer
 format: int32
 hasIdp:
 type: boolean
 demo:
 type: boolean
 dataStoreSettings:
 $ref: "#/components/schemas/DataStoreSettingsOutput"
 regions:
 type: array
 items:
 $ref: "#/components/schemas/CloudProviderRegions"
 discoveryDetails:
 $ref: "#/components/schemas/DataStoreDiscoveryDetailsOutput"
 environment:
 type: string
 DataStoreQueryOutput:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/DataStoreMinimalOutput"
 count:
 type: integer
 format: int64
 DataStoreSettingsOutput:
 type: object
 description: specific datastore settings
 oneOf:
 \- $ref: "#/components/schemas/MongoDBSettingsDto"
 \- $ref: "#/components/schemas/DatabricksDBSettingsOutput"
 \- $ref: "#/components/schemas/FabricDBSettingsOutput"
 DatabricksDBSettingsOutput:
 type: object
 properties:
 accountId:
 type: string
 warehouseId:
 type: string
 workspaceId:
 type: string
 orchestrationSettings:
 $ref: "#/components/schemas/OrchestrationSettingsDto"
 credentials:
 $ref: "#/components/schemas/CredentialsOutput"
 description: Required on creation of Databricks data store.
 FabricDBSettingsOutput:
 type: object
 properties:
 workspaceId:
 type: string
 orchestrationSettings:
 $ref: "#/components/schemas/OrchestrationSettingsDto"
 credentials:
 $ref: "#/components/schemas/CredentialsOutput"
 description: Required on creation of Fabric data store.
 MongoDBSettingsDto:
 type: object
 properties:
 deploymentType:
 type: string
 enum:
 \- MONGODB
 \- MONGODB\_SRV
 originConnectivitySecured:
 type: boolean
 awsServiceRoleArn:
 type: string
 description: Optional for MONGODB\_SRV deployment. The IAM role ARN assumed
 by the DAC and used for updating records in the hosted DNS zone.
 awsHostedZoneId:
 type: string
 description: Optional for MONGODB\_SRV deployment. The Hosted AWS DNS Zone
 created for mapping MongoDB SRV records to Satori.
 description: Required on creation of MongoDB data store.
 OrchestrationSettingsDto:
 type: object
 properties:
 enabled:
 type: boolean
 userAttributeKeyName:
 type: string
 RSAKeyPairCredentialsOutput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/CredentialsOutput"
 \- type: object
 properties:
 username:
 type: string
 publicKey:
 type: string
 RegionsMetadata:
 type: object
 properties:
 name:
 type: string
 countryName:
 type: string
 countryCode:
 type: string
 TokenCredentialsOutput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/CredentialsOutput"
 UsernamePasswordCredentialsOutput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/CredentialsOutput"
 \- type: object
 properties:
 username:
 type: string
 IdentityProviderQueryOutput:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/IdentityProviderOutput"
 count:
 type: integer
 format: int64
 IdentityInfo:
 type: object
 properties:
 type:
 type: string
 name:
 type: string
 id:
 type: string
 displayName:
 type: string
 LocationHistoryOutput:
 type: object
 properties:
 id:
 type: string
 identity:
 $ref: "#/components/schemas/IdentityInfo"
 actionType:
 type: string
 actionSubType:
 type: string
 timestamp:
 type: string
 format: date-time
 userNote:
 type: string
 systemNote:
 type: string
 statusChanged:
 type: string
 enum:
 \- CLASSIFIED
 \- UNCLASSIFIED
 \- DELETED
 classifiersAdded:
 type: array
 items:
 type: string
 classifiersRemoved:
 type: array
 items:
 type: string
 LocationHistoryQueryResponseOutput:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/LocationHistoryOutput"
 count:
 type: integer
 format: int64
 nextPageToken:
 type: string
 AbstractLocationDto:
 type: object
 properties:
 type:
 type: string
 deprecated: true
 enum:
 \- RELATIONAL\_LOCATION
 \- MYSQL\_LOCATION
 \- ATHENA\_LOCATION
 \- MONGO\_LOCATION
 \- S3\_LOCATION
 \- DATABRICKS\_LOCATION
 \- DATABRICKS\_EXTERNAL\_LOCATION
 \- GRAPHQL\_LOCATION
 \- SNOWFLAKE\_WAREHOUSE\_LOCATION
 \- ASSET\_LOCATION
 description: "Deprecated, use locationPath field."
 deprecated: true
 discriminator:
 propertyName: type
 AssetLocationDto:
 type: object
 allOf:
 \- $ref: "#/components/schemas/AbstractLocationDto"
 \- type: object
 properties:
 assetType:
 type: string
 enum:
 \- TABLE
 \- COLUMN
 \- SEMANTIC\_MODEL
 \- REPORT
 \- DASHBOARD
 \- DATABASE
 \- SCHEMA
 \- JSON\_PATH
 \- WAREHOUSE
 \- ENDPOINT
 \- TYPE
 \- FIELD
 \- EXTERNAL\_LOCATION
 \- CATALOG
 \- BUCKET
 \- OBJECT
 \- COLLECTION
 \- VIEW
 \- ACCOUNT\_ROLE
 \- SHARED\_DB
 name:
 type: string
 locationParts:
 type: array
 items:
 type: string
 parentTypes:
 type: array
 items:
 type: string
 enum:
 \- TABLE
 \- COLUMN
 \- SEMANTIC\_MODEL
 \- REPORT
 \- DASHBOARD
 \- DATABASE
 \- SCHEMA
 \- JSON\_PATH
 \- WAREHOUSE
 \- ENDPOINT
 \- TYPE
 \- FIELD
 \- EXTERNAL\_LOCATION
 \- CATALOG
 \- BUCKET
 \- OBJECT
 \- COLLECTION
 \- VIEW
 \- ACCOUNT\_ROLE
 \- SHARED\_DB
 AthenaLocationDto:
 type: object
 allOf:
 \- $ref: "#/components/schemas/AbstractLocationDto"
 \- type: object
 properties:
 catalog:
 type: string
 db:
 type: string
 table:
 type: string
 column:
 type: string
 semiPath:
 $ref: "#/components/schemas/RelationalSemiPathField"
 DatabricksExternalLocationDto:
 type: object
 allOf:
 \- $ref: "#/components/schemas/AbstractLocationDto"
 \- type: object
 properties:
 name:
 type: string
 url:
 type: string
 DatabricksLocationDto:
 type: object
 allOf:
 \- $ref: "#/components/schemas/AbstractLocationDto"
 \- type: object
 properties:
 catalog:
 type: string
 schema:
 type: string
 table:
 type: string
 column:
 type: string
 semiPath:
 $ref: "#/components/schemas/RelationalSemiPathField"
 GraphQLLocationDto:
 type: object
 allOf:
 \- $ref: "#/components/schemas/AbstractLocationDto"
 \- type: object
 properties:
 endpoint:
 type: string
 rootType:
 type: string
 field:
 type: string
 semiPath:
 $ref: "#/components/schemas/RelationalSemiPathField"
 LocationOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 dataStoreId:
 type: string
 location:
 $ref: "#/components/schemas/AbstractLocationDto"
 status:
 type: string
 tags:
 type: array
 items:
 $ref: "#/components/schemas/TagOutput"
 MongoLocationDto:
 type: object
 allOf:
 \- $ref: "#/components/schemas/AbstractLocationDto"
 \- type: object
 properties:
 db:
 type: string
 collection:
 type: string
 MySqlLocationDto:
 type: object
 allOf:
 \- $ref: "#/components/schemas/AbstractLocationDto"
 \- type: object
 properties:
 db:
 type: string
 table:
 type: string
 column:
 type: string
 semiPath:
 $ref: "#/components/schemas/RelationalSemiPathField"
 RelationalLocationDto:
 type: object
 allOf:
 \- $ref: "#/components/schemas/AbstractLocationDto"
 \- type: object
 properties:
 db:
 type: string
 schema:
 type: string
 table:
 type: string
 column:
 type: string
 semiPath:
 $ref: "#/components/schemas/RelationalSemiPathField"
 RelationalSemiPathField:
 type: object
 properties:
 value:
 type: string
 type:
 type: string
 enum:
 \- JSON
 S3LocationDto:
 type: object
 allOf:
 \- $ref: "#/components/schemas/AbstractLocationDto"
 \- type: object
 properties:
 bucket:
 type: string
 objectKey:
 type: string
 SnowflakeWorkhouseLocationDto:
 type: object
 allOf:
 \- $ref: "#/components/schemas/AbstractLocationDto"
 \- type: object
 properties:
 name:
 type: string
 TagOutput:
 type: object
 properties:
 name:
 type: string
 displayName:
 type: string
 updatedAt:
 type: string
 format: date-time
 updatedByUser:
 type: boolean
 status:
 type: string
 enum:
 \- ACTIVE
 \- DELETED
 UpdateLocationInput:
 type: object
 properties:
 addTags:
 type: array
 items:
 type: string
 removeTags:
 type: array
 items:
 type: string
 notes:
 type: string
 forceDelete:
 type: boolean
 MaskConfig:
 type: object
 properties:
 type:
 type: string
 enum:
 \- TRUNCATE
 \- TRUNCATE\_END
 \- REPLACE\_CHAR
 \- REPLACE\_STRING
 \- HASH
 \- EMAIL\_PREFIX
 \- EMAIL\_SUFFIX
 \- EMAIL\_FULL
 \- EMAIL\_HASH
 \- CREDIT\_CARD\_PREFIX
 \- CREDIT\_CARD\_FULL
 \- CREDIT\_CARD\_HASH
 \- IP\_SUFFIX
 \- IP\_FULL
 \- IP\_HASH
 \- DATE\_YEAR\_ONLY
 \- DATE\_1970\_AGAIN
 \- NO\_ACTION
 \- REDACT
 \- NUMBER\_ZERO
 \- NUMBER\_ROUND
 \- TRANSFORM
 \- SQL\_FUNCTION
 replacement:
 type: string
 truncate:
 type: integer
 format: int32
 functionId:
 type: string
 sqlFunction:
 type: string
 tag:
 type: string
 continueWith:
 $ref: "#/components/schemas/MaskConfigProperties"
 MaskConfigProperties:
 type: object
 properties:
 type:
 type: string
 enum:
 \- TRUNCATE
 \- TRUNCATE\_END
 \- REPLACE\_CHAR
 \- REPLACE\_STRING
 \- HASH
 \- EMAIL\_PREFIX
 \- EMAIL\_SUFFIX
 \- EMAIL\_FULL
 \- EMAIL\_HASH
 \- CREDIT\_CARD\_PREFIX
 \- CREDIT\_CARD\_FULL
 \- CREDIT\_CARD\_HASH
 \- IP\_SUFFIX
 \- IP\_FULL
 \- IP\_HASH
 \- DATE\_YEAR\_ONLY
 \- DATE\_1970\_AGAIN
 \- NO\_ACTION
 \- REDACT
 \- NUMBER\_ZERO
 \- NUMBER\_ROUND
 \- TRANSFORM
 \- SQL\_FUNCTION
 replacement:
 type: string
 truncate:
 type: integer
 format: int32
 functionId:
 type: string
 sqlFunction:
 type: string
 MaskProfileOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 name:
 type: string
 description:
 type: string
 maskConfigs:
 type: array
 items:
 $ref: "#/components/schemas/MaskConfig"
 MaskProfileInput:
 required:
 \- maskConfigs
 \- name
 type: object
 properties:
 name:
 minLength: 1
 type: string
 description:
 type: string
 maskConfigs:
 minItems: 1
 type: array
 items:
 $ref: "#/components/schemas/MaskConfig"
 MaskProfileQueryResponse:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/MaskProfileOutput"
 count:
 type: integer
 format: int64
 IPRange:
 type: object
 properties:
 ipRange:
 type: string
 NetworkPolicyMember:
 type: object
 properties:
 type:
 type: string
 enum:
 \- management
 \- datastore
 id:
 type: string
 NetworkPolicyOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 name:
 type: string
 allowedRules:
 type: array
 items:
 $ref: "#/components/schemas/NetworkPolicyRule"
 blockedRules:
 type: array
 items:
 $ref: "#/components/schemas/NetworkPolicyRule"
 members:
 type: array
 items:
 $ref: "#/components/schemas/NetworkPolicyMember"
 NetworkPolicyRule:
 type: object
 properties:
 ipRanges:
 type: array
 items:
 $ref: "#/components/schemas/IPRange"
 note:
 type: string
 NetworkPolicyInput:
 type: object
 properties:
 name:
 type: string
 allowedRules:
 type: array
 items:
 $ref: "#/components/schemas/NetworkPolicyRule"
 blockedRules:
 type: array
 items:
 $ref: "#/components/schemas/NetworkPolicyRule"
 NetworkPolicyQueryResponse:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/NetworkPolicyOutput"
 count:
 type: integer
 format: int64
 ApplyMaskingProfileInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/MaskingActionInput"
 \- type: object
 properties:
 maskingProfileId:
 type: string
 AthenaTableLocationPrefixInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/LocationPrefixInput"
 \- type: object
 properties:
 catalog:
 type: string
 db:
 type: string
 table:
 type: string
 CurrentUserPermissions:
 type: object
 properties:
 currentUserIsOwner:
 type: boolean
 canEditPolicies:
 type: boolean
 DataAccessIdentity:
 type: object
 properties:
 identityType:
 type: string
 enum:
 \- USER
 \- DB\_USER
 \- GROUP
 \- IDP\_GROUP
 \- DATABRICKS\_GROUP
 \- DATABRICKS\_SERVICE\_PRINCIPAL
 \- SNOWFLAKE\_ROLE
 \- SNOWFLAKE\_ACCOUNT\_NAME
 \- SNOWFLAKE\_DATABASE\_ROLE
 \- CEL
 \- EVERYONE
 identity:
 type: string
 id:
 type: string
 DataFilterCriteria:
 type: object
 properties:
 condition:
 type: string
 enum:
 \- IS
 \- IS\_NOT
 identity:
 $ref: "#/components/schemas/DataAccessIdentity"
 DataFilterDefaultValues:
 type: object
 properties:
 type:
 type: string
 enum:
 \- STRING
 \- NUMERIC
 \- CEL
 \- SQL
 \- NO\_VALUE
 \- ALL\_OTHER\_VALUES
 values:
 type: array
 items:
 type: string
 DataFilterValues:
 type: object
 properties:
 type:
 type: string
 enum:
 \- STRING
 \- NUMERIC
 \- CEL
 \- SQL
 \- ANY\_VALUE
 \- ALL\_OTHER\_VALUES
 values:
 type: array
 items:
 type: string
 DatabricksTableLocationPrefixInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/LocationPrefixInput"
 \- type: object
 properties:
 catalog:
 type: string
 schema:
 type: string
 table:
 type: string
 GraphQLTableLocationPrefixInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/LocationPrefixInput"
 \- type: object
 properties:
 endpoint:
 type: string
 rootType:
 type: string
 LocationPrefixInput:
 type: object
 properties:
 type:
 type: string
 enum:
 \- RELATIONAL\_TABLE\_LOCATION
 \- MYSQL\_TABLE\_LOCATION
 \- ATHENA\_TABLE\_LOCATION
 \- MONGO\_TABLE\_LOCATION
 \- S3\_TABLE\_LOCATION
 \- DATABRICKS\_TABLE\_LOCATION
 \- GRAPHQL\_TABLE\_LOCATION
 description: "Deprecated, use locationPath field."
 deprecated: true
 discriminator:
 propertyName: type
 MaskingActionInput:
 type: object
 properties:
 type:
 type: string
 enum:
 \- APPLY\_MASKING\_PROFILE
 discriminator:
 propertyName: type
 oneOf:
 \- $ref: "#/components/schemas/ApplyMaskingProfileInput"
 MaskingSecurityProfileInput:
 type: object
 properties:
 active:
 type: boolean
 rules:
 type: array
 items:
 $ref: "#/components/schemas/MaskingSecurityRuleInput"
 MaskingSecurityRuleInput:
 type: object
 properties:
 id:
 type: string
 description:
 type: string
 active:
 type: boolean
 criteria:
 $ref: "#/components/schemas/DataFilterCriteria"
 maskingAction:
 $ref: "#/components/schemas/MaskingActionInput"
 MongoTableLocationPrefixInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/LocationPrefixInput"
 \- type: object
 properties:
 db:
 type: string
 collection:
 type: string
 MySqlTableLocationPrefixInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/LocationPrefixInput"
 \- type: object
 properties:
 db:
 type: string
 table:
 type: string
 NodeLocationDto:
 type: object
 properties:
 name:
 type: string
 type:
 type: string
 description: "\[Optional\] Asset type, when not specified, defaults takes\
 \ place, resolved by data store type and locationPath length."
 enum:
 \- TABLE
 \- COLUMN
 \- SEMANTIC\_MODEL
 \- REPORT
 \- DASHBOARD
 \- DATABASE
 \- SCHEMA
 \- JSON\_PATH
 \- WAREHOUSE
 \- ENDPOINT
 \- TYPE
 \- FIELD
 \- EXTERNAL\_LOCATION
 \- CATALOG
 \- BUCKET
 \- OBJECT
 \- COLLECTION
 \- VIEW
 \- ACCOUNT\_ROLE
 \- SHARED\_DB
 description: "Location path, can be either a dot seperated string \\"a.b.c\\"\
 \ or a list of location parts with name and type \[{name: ...}, {name: ...},\\
 \ {name: ....}\]."
 example: "For input, these are available options: 'a.b.c' or \[{name: 'a'}, {name:\\
 \ 'b'}, {name: 'c'}\] or \[{name: 'a', type: 'DATABASE'}, {name: 'b', type:\\
 \ 'SCHEMA'}, {name: 'c', type: 'VIEW'}\] However, the output will always be\
 \ a fully populated list of location parts"
 RelationalTableLocationPrefixInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/LocationPrefixInput"
 \- type: object
 properties:
 db:
 type: string
 schema:
 type: string
 table:
 type: string
 RowLevelSecurityMap:
 type: object
 properties:
 name:
 type: string
 filters:
 type: array
 items:
 $ref: "#/components/schemas/RowLevelSecurityMapDataFilter"
 defaults:
 $ref: "#/components/schemas/DataFilterDefaultValues"
 RowLevelSecurityMapDataFilter:
 type: object
 properties:
 criteria:
 $ref: "#/components/schemas/DataFilterCriteria"
 values:
 $ref: "#/components/schemas/DataFilterValues"
 RowLevelSecurityProfileInput:
 type: object
 properties:
 active:
 type: boolean
 rules:
 type: array
 items:
 $ref: "#/components/schemas/RowLevelSecurityRuleInput"
 maps:
 type: array
 items:
 $ref: "#/components/schemas/RowLevelSecurityMap"
 RowLevelSecurityRuleFilterInput:
 type: object
 properties:
 locationPath:
 type: array
 description: "Location path, can be either a dot seperated string \\"a.b.c\\"\
 \ or a list of location parts with name and type \[{name: ...}, {name:\\
 \ ...}, {name: ....}\]."
 example: "For input, these are available options: 'a.b.c' or \[{name: 'a'},\\
 \ {name: 'b'}, {name: 'c'}\] or \[{name: 'a', type: 'DATABASE'}, {name:\\
 \ 'b', type: 'SCHEMA'}, {name: 'c', type: 'VIEW'}\] However, the output\
 \ will always be a fully populated list of location parts"
 items:
 $ref: "#/components/schemas/NodeLocationDto"
 dataStoreId:
 type: string
 locationPrefix:
 $ref: "#/components/schemas/LocationPrefixInput"
 logicYaml:
 type: string
 advanced:
 type: boolean
 RowLevelSecurityRuleInput:
 type: object
 properties:
 id:
 type: string
 description:
 type: string
 active:
 type: boolean
 filter:
 $ref: "#/components/schemas/RowLevelSecurityRuleFilterInput"
 S3TableLocationPrefixInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/LocationPrefixInput"
 \- type: object
 properties:
 bucket:
 type: string
 objectKey:
 type: string
 SecurityPolicyOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 name:
 type: string
 stats:
 $ref: "#/components/schemas/SecurityPolicyStats"
 profiles:
 $ref: "#/components/schemas/SecurityProfilesInput"
 currentUserPermissions:
 $ref: "#/components/schemas/CurrentUserPermissions"
 SecurityPolicyStats:
 type: object
 properties:
 assignedToDatasets:
 type: object
 additionalProperties:
 type: string
 SecurityProfilesInput:
 type: object
 properties:
 rowLevelSecurity:
 $ref: "#/components/schemas/RowLevelSecurityProfileInput"
 masking:
 $ref: "#/components/schemas/MaskingSecurityProfileInput"
 SecurityPolicyInput:
 required:
 \- name
 type: object
 properties:
 name:
 minLength: 1
 type: string
 profiles:
 $ref: "#/components/schemas/SecurityProfilesInput"
 SecurityPolicyMinimalOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 name:
 type: string
 currentUserIsOwner:
 type: boolean
 SecurityPolicyMinimalQueryResponse:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/SecurityPolicyMinimalOutput"
 count:
 type: integer
 format: int64
 SecurityPolicyStatisticsOutput:
 type: object
 properties:
 securityPolicyId:
 type: string
 users:
 type: integer
 format: int64
 queries:
 type: integer
 format: int64
 SecurityPolicyStatisticsQueryResponse:
 type: array
 properties:
 empty:
 type: boolean
 first:
 $ref: "#/components/schemas/SecurityPolicyStatisticsOutput"
 last:
 $ref: "#/components/schemas/SecurityPolicyStatisticsOutput"
 items:
 $ref: "#/components/schemas/SecurityPolicyStatisticsOutput"
 AccessSettingsDto:
 type: object
 properties:
 temporaryCredentialsExpirationTime:
 $ref: "#/components/schemas/ExpirationTimeDto"
 JsonNode:
 type: object
 UserResourceDto:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 accountId:
 type: string
 parent:
 type: string
 displayName:
 type: string
 email:
 type: string
 lastName:
 type: string
 firstName:
 type: string
 authMethod:
 type: integer
 format: int32
 activated:
 type: boolean
 status:
 type: string
 enum:
 \- PENDING\_ACTIVATION
 \- ACTIVE
 \- DISABLED
 accessSettings:
 $ref: "#/components/schemas/AccessSettingsDto"
 roles:
 type: array
 items:
 type: string
 attributes:
 type: object
 additionalProperties:
 $ref: "#/components/schemas/JsonNode"
 aliases:
 type: array
 items:
 type: string
 customAttributes:
 type: object
 additionalProperties:
 $ref: "#/components/schemas/JsonNode"
 customAliases:
 type: array
 items:
 type: string
 personalAccessTokenConfigured:
 type: boolean
 managed:
 type: boolean
 UserInput:
 required:
 \- accountId
 type: object
 properties:
 accountId:
 minLength: 1
 type: string
 email:
 type: string
 format: email
 firstName:
 type: string
 lastName:
 type: string
 UserMinimalResourceDto:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 accountId:
 type: string
 parent:
 type: string
 displayName:
 type: string
 email:
 type: string
 lastName:
 type: string
 firstName:
 type: string
 authMethod:
 type: integer
 format: int32
 activated:
 type: boolean
 status:
 type: string
 enum:
 \- PENDING\_ACTIVATION
 \- ACTIVE
 \- DISABLED
 accessSettings:
 $ref: "#/components/schemas/AccessSettingsDto"
 roles:
 type: array
 items:
 type: string
 attributes:
 type: object
 additionalProperties:
 $ref: "#/components/schemas/JsonNode"
 aliases:
 type: array
 items:
 type: string
 personalAccessTokenConfigured:
 type: boolean
 managed:
 type: boolean
 UsersQueryOutput:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/UserMinimalResourceDto"
 count:
 type: integer
 format: int64
 UserDatabaseCredentialsOutput:
 type: object
 properties:
 username:
 type: string
 password:
 type: string
 expiredAt:
 type: string
 format: date-time
 ActivationOutput:
 type: object
 properties:
 uri:
 type: string
 RolesSet:
 type: object
 properties:
 rolesIds:
 uniqueItems: true
 type: array
 items:
 type: string
 UserWithGroupsOutput:
 type: object
 properties:
 id:
 type: string
 fullName:
 type: string
 email:
 type: string
 groups:
 type: array
 items:
 type: string
 UserProfileInput:
 required:
 \- firstName
 \- lastName
 type: object
 properties:
 lastName:
 minLength: 1
 type: string
 firstName:
 minLength: 1
 type: string
 AssetOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 locationParts:
 type: array
 items:
 type: string
 locationPartTypes:
 type: array
 items:
 type: string
 enum:
 \- TABLE
 \- COLUMN
 \- SEMANTIC\_MODEL
 \- REPORT
 \- DASHBOARD
 \- DATABASE
 \- SCHEMA
 \- JSON\_PATH
 \- WAREHOUSE
 \- ENDPOINT
 \- TYPE
 \- FIELD
 \- EXTERNAL\_LOCATION
 \- CATALOG
 \- BUCKET
 \- OBJECT
 \- COLLECTION
 \- VIEW
 \- ACCOUNT\_ROLE
 \- SHARED\_DB
 assetType:
 type: string
 enum:
 \- TABLE
 \- COLUMN
 \- SEMANTIC\_MODEL
 \- REPORT
 \- DASHBOARD
 \- DATABASE
 \- SCHEMA
 \- JSON\_PATH
 \- WAREHOUSE
 \- ENDPOINT
 \- TYPE
 \- FIELD
 \- EXTERNAL\_LOCATION
 \- CATALOG
 \- BUCKET
 \- OBJECT
 \- COLLECTION
 \- VIEW
 \- ACCOUNT\_ROLE
 \- SHARED\_DB
 name:
 type: string
 description:
 type: string
 tags:
 type: array
 items:
 $ref: "#/components/schemas/TagOutput"
 dataStoreId:
 type: string
 dataStoreType:
 type: string
 enum:
 \- SNOWFLAKE
 \- REDSHIFT
 \- BIGQUERY
 \- POSTGRESQL
 \- ATHENA
 \- MSSQL
 \- SYNAPSE
 \- MYSQL
 \- OCEANBASE
 \- API\_SERVER
 \- MARIA\_DB
 \- COCKROACH\_DB
 \- OPENSEARCH
 \- ELASTICSEARCH
 \- GREENPLUM
 \- S3
 \- MONGO
 \- DATABRICKS
 \- FABRIC
 \- AZURE\_OPEN\_AI
 \- OPEN\_AI
 \- BEDROCK
 \- ORACLE
 \- DB2
 \- DYNAMO\_DB
 \- DOCUMENT\_DB
 \- REDIS
 \- MEMCACHED
 properties:
 type: object
 additionalProperties:
 type: object
 AssetQueryOutput:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/AssetOutput"
 count:
 type: integer
 format: int64
 AssetSearchQueryOutput:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/AssetOutput"
 count:
 type: integer
 format: int64
 nextPageToken:
 type: string
 dsIdsToNamesMap:
 type: object
 additionalProperties:
 type: string
 UpdateAssetInput:
 type: object
 properties:
 description:
 type: string
 AvailablePackageVersionOutput:
 type: object
 properties:
 version:
 type: string
 createdAt:
 type: string
 format: date-time
 type:
 type: string
 enum:
 \- PATCH
 \- RECOMMENDED
 \- BETA
 \- CURRENT
 AvailablePackageVersionQueryOutput:
 type: object
 properties:
 count:
 type: integer
 format: int64
 records:
 type: array
 items:
 $ref: "#/components/schemas/AvailablePackageVersionOutput"
 AWSProviderConfigurationInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/ProviderConfigurationDto"
 \- type: object
 properties:
 awsAccountId:
 type: string
 AutoUpgradeConfigDto:
 required:
 \- maintenanceWindow
 type: object
 allOf:
 \- $ref: "#/components/schemas/UpgradeConfigDto"
 \- type: object
 properties:
 maintenanceWindow:
 $ref: "#/components/schemas/MaintenanceWindowDto"
 DataAccessControllerMinimalOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 uniqueName:
 type: string
 region:
 type: string
 cloudProvider:
 type: string
 enum:
 \- GCP
 \- AZURE
 \- AWS
 \- BYOC
 type:
 type: string
 enum:
 \- PUBLIC
 \- PRIVATE
 \- PRIVATE\_MANAGED
 parent:
 type: string
 name:
 type: string
 ips:
 type: array
 items:
 type: string
 loadBalancer:
 type: string
 enum:
 \- INTERNAL
 \- EXTERNAL
 creationStatus:
 type: string
 enum:
 \- NEW
 \- IN\_PROGRESS
 \- CREATED
 domain:
 type: string
 currentVersion:
 $ref: "#/components/schemas/Version"
 upgradeStatus:
 $ref: "#/components/schemas/UpgradeStatus"
 upgradeConfig:
 $ref: "#/components/schemas/UpgradeConfigDto"
 upgradePendingVersion:
 type: string
 logCollection:
 $ref: "#/components/schemas/LogCollection"
 providerConfiguration:
 $ref: "#/components/schemas/ProviderConfigurationDto"
 DataAccessQueryOutput:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/DataAccessControllerMinimalOutput"
 count:
 type: integer
 format: int64
 accountIdsToNamesMap:
 type: object
 additionalProperties:
 type: string
 FrequencyDto:
 type: object
 properties:
 type:
 type: string
 enum:
 \- WEEKLY
 \- MONTHLY
 discriminator:
 propertyName: type
 oneOf:
 \- $ref: "#/components/schemas/WeeklyFrequencyDto"
 \- $ref: "#/components/schemas/MonthlyFrequencyDto"
 LogCollection:
 type: object
 properties:
 permission:
 type: string
 enum:
 \- SATORI
 \- CUSTOMER
 MaintenanceWindowDto:
 required:
 \- duration
 \- frequency
 \- startTime
 type: object
 properties:
 frequency:
 $ref: "#/components/schemas/FrequencyDto"
 startTime:
 type: string
 description: "Start time format is: '00:00' - '23:59'"
 duration:
 type: integer
 description: Duration should be at least 8 hours.
 format: int32
 ManualUpgradeConfigDto:
 type: object
 allOf:
 \- $ref: "#/components/schemas/UpgradeConfigDto"
 MonthlyFrequencyDto:
 required:
 \- day
 type: object
 allOf:
 \- $ref: "#/components/schemas/FrequencyDto"
 \- type: object
 properties:
 day:
 type: integer
 description: Day can be between 1 to 31.
 format: int32
 ProviderConfigurationDto:
 type: object
 SelectiveUpgradeConfigDto:
 type: object
 allOf:
 \- $ref: "#/components/schemas/UpgradeConfigDto"
 \- type: object
 properties:
 version:
 type: string
 description: A version number to be updated immediately
 UpgradeConfigDto:
 type: object
 properties:
 type:
 type: string
 enum:
 \- MANUAL
 \- AUTO
 \- SELECTIVE
 discriminator:
 propertyName: type
 oneOf:
 \- $ref: "#/components/schemas/ManualUpgradeConfigDto"
 \- $ref: "#/components/schemas/AutoUpgradeConfigDto"
 \- $ref: "#/components/schemas/SelectiveUpgradeConfigDto"
 UpgradeStatus:
 type: object
 properties:
 version:
 type: string
 startedAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 finishedAt:
 type: string
 format: date-time
 status:
 type: string
 enum:
 \- IN\_PROGRESS
 \- SUCCESS
 \- FAILURE
 statusMessage:
 type: string
 Version:
 type: object
 properties:
 version:
 type: string
 lastUpdated:
 type: string
 format: date-time
 WeeklyFrequencyDto:
 required:
 \- day
 type: object
 allOf:
 \- $ref: "#/components/schemas/FrequencyDto"
 \- type: object
 properties:
 day:
 type: string
 enum:
 \- SUN
 \- MON
 \- TUE
 \- WED
 \- THU
 \- FRI
 \- SAT
 DataAccessControllerOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 uniqueName:
 type: string
 region:
 type: string
 cloudProvider:
 type: string
 enum:
 \- GCP
 \- AZURE
 \- AWS
 \- BYOC
 type:
 type: string
 enum:
 \- PUBLIC
 \- PRIVATE
 \- PRIVATE\_MANAGED
 parent:
 type: string
 name:
 type: string
 ips:
 type: array
 items:
 type: string
 loadBalancer:
 type: string
 enum:
 \- INTERNAL
 \- EXTERNAL
 creationStatus:
 type: string
 enum:
 \- NEW
 \- IN\_PROGRESS
 \- CREATED
 domain:
 type: string
 currentVersion:
 $ref: "#/components/schemas/Version"
 upgradeStatus:
 $ref: "#/components/schemas/UpgradeStatus"
 upgradeConfig:
 $ref: "#/components/schemas/UpgradeConfigDto"
 upgradePendingVersion:
 type: string
 logCollection:
 $ref: "#/components/schemas/LogCollection"
 providerConfiguration:
 $ref: "#/components/schemas/ProviderConfigurationDto"
 suspendedStrategy:
 $ref: "#/components/schemas/SuspendedStrategy"
 yamlConfiguration:
 type: string
 terraformConfiguration:
 type: string
 gcpProjectName:
 type: string
 revision:
 type: integer
 format: int32
 ingressPortRange:
 type: string
 SuspendedStrategy:
 type: object
 properties:
 stopConfigurationDistribution:
 type: boolean
 ApproverIdentity:
 type: object
 properties:
 type:
 type: string
 enum:
 \- USER
 \- GROUP
 \- DIRECTORY
 \- MANAGER
 discriminator:
 propertyName: type
 DataPolicyRulesOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 priority:
 type: integer
 format: int32
 tagsYaml:
 type: string
 rulesYaml:
 type: string
 DataPolicySecurityPoliciesOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 defaultSecurityPolicyIds:
 type: array
 items:
 type: string
 DataSetCurrentUserPermissions:
 type: object
 properties:
 canEditDataPolicy:
 type: boolean
 canViewDataPolicy:
 type: boolean
 canEditInventory:
 type: boolean
 canViewInventory:
 type: boolean
 DataSetOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 currentUserPermissions:
 $ref: "#/components/schemas/DataSetCurrentUserPermissions"
 name:
 type: string
 description:
 type: string
 ownersIds:
 type: array
 items:
 type: string
 approvers:
 type: array
 items:
 $ref: "#/components/schemas/ApproverIdentity"
 ownersNamesMap:
 type: object
 additionalProperties:
 $ref: "#/components/schemas/IdentityWithManaged"
 includeLocations:
 type: array
 items:
 $ref: "#/components/schemas/DatasetLocationOutput"
 excludeLocations:
 type: array
 items:
 $ref: "#/components/schemas/DatasetLocationOutput"
 dataPolicyId:
 type: string
 permissionsEnabled:
 type: boolean
 customAccessRequestsEnabled:
 type: boolean
 customPolicy:
 $ref: "#/components/schemas/DataPolicyRulesOutput"
 defaultSecurityPolicies:
 $ref: "#/components/schemas/DataPolicySecurityPoliciesOutput"
 externalReference:
 $ref: "#/components/schemas/ExternalReference"
 externalUrl:
 type: string
 DatasetLocationOutput:
 type: object
 properties:
 locationPath:
 type: array
 description: "Location path, can be either a dot seperated string \\"a.b.c\\"\
 \ or a list of location parts with name and type \[{name: ...}, {name:\\
 \ ...}, {name: ....}\]."
 example: "For input, these are available options: 'a.b.c' or \[{name: 'a'},\\
 \ {name: 'b'}, {name: 'c'}\] or \[{name: 'a', type: 'DATABASE'}, {name:\\
 \ 'b', type: 'SCHEMA'}, {name: 'c', type: 'VIEW'}\] However, the output\
 \ will always be a fully populated list of location parts"
 items:
 $ref: "#/components/schemas/NodeLocationDto"
 dataStoreId:
 type: string
 location:
 $ref: "#/components/schemas/AbstractLocationDto"
 DirectoryApproverIdentity:
 type: object
 allOf:
 \- $ref: "#/components/schemas/ApproverIdentity"
 \- type: object
 properties:
 id:
 type: string
 ExternalReference:
 type: object
 properties:
 type:
 type: string
 enum:
 \- COLLIBRA
 GroupApproverIdentity:
 type: object
 allOf:
 \- $ref: "#/components/schemas/ApproverIdentity"
 \- type: object
 properties:
 id:
 type: string
 IdentityWithManaged:
 type: object
 properties:
 id:
 type: string
 name:
 type: string
 type:
 type: string
 managed:
 type: boolean
 ManagerApproverIdentity:
 type: object
 allOf:
 \- $ref: "#/components/schemas/ApproverIdentity"
 UserApproverIdentity:
 type: object
 allOf:
 \- $ref: "#/components/schemas/ApproverIdentity"
 \- type: object
 properties:
 id:
 type: string
 DataPolicyRulesInput:
 type: object
 properties:
 priority:
 type: integer
 format: int32
 tagsYaml:
 type: string
 rulesYaml:
 type: string
 DataPolicySecurityPoliciesInput:
 type: object
 properties:
 defaultSecurityPolicyIds:
 type: array
 items:
 type: string
 DataSetInput:
 required:
 \- excludeLocations
 \- includeLocations
 \- name
 \- ownersIds
 type: object
 properties:
 name:
 minLength: 1
 type: string
 description:
 type: string
 ownersIds:
 type: array
 items:
 type: string
 approvers:
 type: array
 items:
 $ref: "#/components/schemas/ApproverIdentity"
 includeLocations:
 type: array
 items:
 $ref: "#/components/schemas/DataStoreLocationInput"
 excludeLocations:
 type: array
 items:
 $ref: "#/components/schemas/DataStoreLocationInput"
 permissionsEnabled:
 type: boolean
 customAccessRequestsEnabled:
 type: boolean
 customPolicy:
 $ref: "#/components/schemas/DataPolicyRulesInput"
 defaultSecurityPolicies:
 $ref: "#/components/schemas/DataPolicySecurityPoliciesInput"
 externalUrl:
 type: string
 DataStoreLocationInput:
 type: object
 properties:
 locationPath:
 type: array
 description: "Location path, can be either a dot seperated string \\"a.b.c\\"\
 \ or a list of location parts with name and type \[{name: ...}, {name:\\
 \ ...}, {name: ....}\]."
 example: "For input, these are available options: 'a.b.c' or \[{name: 'a'},\\
 \ {name: 'b'}, {name: 'c'}\] or \[{name: 'a', type: 'DATABASE'}, {name:\\
 \ 'b', type: 'SCHEMA'}, {name: 'c', type: 'VIEW'}\] However, the output\
 \ will always be a fully populated list of location parts"
 items:
 $ref: "#/components/schemas/NodeLocationDto"
 dataStoreId:
 type: string
 location:
 $ref: "#/components/schemas/AbstractLocationDto"
 AccessRulesDetails:
 type: object
 properties:
 id:
 type: string
 securityPolicyNames:
 type: array
 items:
 type: string
 type:
 type: string
 enum:
 \- SELF\_SERVICE
 \- ACCESS\_REQUEST
 \- INSTANCE\_REQUEST
 \- INSTANCE\_ACCESS
 accessLevel:
 type: string
 enum:
 \- READ\_ONLY
 \- READ\_WRITE
 \- OWNER
 timeLimit:
 $ref: "#/components/schemas/DataAccessTimeLimitOutput"
 unusedTimeLimit:
 $ref: "#/components/schemas/DataAccessUnusedTimeLimitOutput"
 identity:
 $ref: "#/components/schemas/DataAccessIdentityOutput"
 approvers:
 type: array
 items:
 $ref: "#/components/schemas/DatasetIdentityInfo"
 requestable:
 type: boolean
 DataAccessTimeLimitOutput:
 type: object
 properties:
 shouldExpire:
 type: boolean
 DatasetAccessDetailsOutput:
 type: object
 properties:
 id:
 type: string
 name:
 type: string
 description:
 type: string
 administrators:
 type: array
 items:
 $ref: "#/components/schemas/DatasetIdentityInfo"
 approvers:
 type: array
 items:
 $ref: "#/components/schemas/DatasetIdentityInfo"
 availableAccessRules:
 type: array
 items:
 $ref: "#/components/schemas/AccessRulesDetails"
 instantAccessRule:
 $ref: "#/components/schemas/AccessRulesDetails"
 pendingRequest:
 $ref: "#/components/schemas/PendingRequestDetails"
 customAccessRequestsEnabled:
 type: boolean
 DatasetIdentityInfo:
 type: object
 properties:
 name:
 type: string
 ExpirationTimeLimitOutput:
 type: object
 properties:
 shouldExpire:
 type: boolean
 expiration:
 type: string
 format: date-time
 PendingRequestDetails:
 type: object
 properties:
 id:
 type: string
 message:
 type: string
 purpose:
 type: string
 originRuleId:
 type: string
 DataStoreConnectionDetails:
 type: object
 properties:
 id:
 type: string
 name:
 type: string
 type:
 type: string
 enum:
 \- SNOWFLAKE
 \- REDSHIFT
 \- BIGQUERY
 \- POSTGRESQL
 \- ATHENA
 \- MSSQL
 \- SYNAPSE
 \- MYSQL
 \- OCEANBASE
 \- API\_SERVER
 \- MARIA\_DB
 \- COCKROACH\_DB
 \- OPENSEARCH
 \- ELASTICSEARCH
 \- GREENPLUM
 \- S3
 \- MONGO
 \- DATABRICKS
 \- FABRIC
 \- AZURE\_OPEN\_AI
 \- OPEN\_AI
 \- BEDROCK
 \- ORACLE
 \- DB2
 \- DYNAMO\_DB
 \- DOCUMENT\_DB
 \- REDIS
 \- MEMCACHED
 satoriHostname:
 type: string
 port:
 type: integer
 format: int32
 satoriAuthEnabled:
 type: boolean
 dataStoreSettings:
 $ref: "#/components/schemas/IConnectionSettingsOutput"
 DatasetConnectionDetailsOutput:
 type: object
 properties:
 id:
 type: string
 name:
 type: string
 description:
 type: string
 includeLocations:
 type: array
 items:
 $ref: "#/components/schemas/DatasetLocationOutput"
 excludeLocations:
 type: array
 items:
 $ref: "#/components/schemas/DatasetLocationOutput"
 dataStores:
 type: array
 items:
 $ref: "#/components/schemas/DataStoreConnectionDetails"
 IConnectionSettingsOutput:
 type: object
 description: specific datastore settings
 oneOf:
 \- $ref: "#/components/schemas/MongoDBConnectionSettingOutput"
 MongoDBConnectionSettingOutput:
 type: object
 properties:
 type:
 type: string
 enum:
 \- MONGO
 \- ORCHESTRATION
 deploymentType:
 type: string
 enum:
 \- MONGODB
 \- MONGODB\_SRV
 OrchestrationDBConnectionSettingOutput:
 type: object
 properties:
 type:
 type: string
 enum:
 \- MONGO
 \- ORCHESTRATION
 hostname:
 type: string
 DataSetMinimalOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 name:
 type: string
 currentUserIsOwner:
 type: boolean
 DataSetMinimalQueryResponse:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/DataSetMinimalOutput"
 count:
 type: integer
 format: int64
 DataSetQueryResponse:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/DataSetOutput"
 count:
 type: integer
 format: int64
 DataStoreInfoOutput:
 type: object
 properties:
 id:
 type: string
 name:
 type: string
 type:
 type: string
 enum:
 \- SNOWFLAKE
 \- REDSHIFT
 \- BIGQUERY
 \- POSTGRESQL
 \- ATHENA
 \- MSSQL
 \- SYNAPSE
 \- MYSQL
 \- OCEANBASE
 \- API\_SERVER
 \- MARIA\_DB
 \- COCKROACH\_DB
 \- OPENSEARCH
 \- ELASTICSEARCH
 \- GREENPLUM
 \- S3
 \- MONGO
 \- DATABRICKS
 \- FABRIC
 \- AZURE\_OPEN\_AI
 \- OPEN\_AI
 \- BEDROCK
 \- ORACLE
 \- DB2
 \- DYNAMO\_DB
 \- DOCUMENT\_DB
 \- REDIS
 \- MEMCACHED
 DatasetAccessDetailsMinimalOutput:
 type: object
 properties:
 id:
 type: string
 name:
 type: string
 description:
 type: string
 dataStores:
 type: array
 items:
 $ref: "#/components/schemas/DataStoreInfoOutput"
 hasPendingRequest:
 type: boolean
 hasPermission:
 type: boolean
 canRequest:
 type: boolean
 DatasetsAccessDetailsQueryOutput:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/DatasetAccessDetailsMinimalOutput"
 count:
 type: integer
 format: int64
 DataStoreDetailsCliOutput:
 type: object
 properties:
 id:
 type: string
 name:
 type: string
 type:
 type: string
 enum:
 \- SNOWFLAKE
 \- REDSHIFT
 \- BIGQUERY
 \- POSTGRESQL
 \- ATHENA
 \- MSSQL
 \- SYNAPSE
 \- MYSQL
 \- OCEANBASE
 \- API\_SERVER
 \- MARIA\_DB
 \- COCKROACH\_DB
 \- OPENSEARCH
 \- ELASTICSEARCH
 \- GREENPLUM
 \- S3
 \- MONGO
 \- DATABRICKS
 \- FABRIC
 \- AZURE\_OPEN\_AI
 \- OPEN\_AI
 \- BEDROCK
 \- ORACLE
 \- DB2
 \- DYNAMO\_DB
 \- DOCUMENT\_DB
 \- REDIS
 \- MEMCACHED
 satoriHostname:
 type: string
 port:
 type: integer
 format: int32
 satoriAuthEnabled:
 type: boolean
 dataStoreSettings:
 $ref: "#/components/schemas/IConnectionSettingsOutput"
 dbs:
 type: array
 items:
 type: string
 DatasetDetailsCliOutput:
 type: object
 properties:
 id:
 type: string
 name:
 type: string
 description:
 type: string
 dataStoreIds:
 uniqueItems: true
 type: array
 items:
 type: string
 DatasetDetailsCliQueryOutput:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/DatasetDetailsCliOutput"
 count:
 type: integer
 format: int64
 dataStoreDetails:
 type: array
 items:
 $ref: "#/components/schemas/DataStoreDetailsCliOutput"
 AuthorizationAnalyticsSettingsOutput:
 type: object
 properties:
 credentials:
 $ref: "#/components/schemas/DataStoreCredentialsOutput"
 autoScanEnabled:
 type: boolean
 enabled:
 type: boolean
 BaselinePolicyDto:
 type: object
 properties:
 type:
 type: string
 enum:
 \- BASELINE\_POLICY
 \- DEFAULT\_ACCESS\_LEVEL
 discriminator:
 propertyName: type
 oneOf:
 \- $ref: "#/components/schemas/BaselinePolicyImplDto"
 \- $ref: "#/components/schemas/DefaultAccessLevelDto"
 BaselinePolicyExclusionsDto:
 type: object
 properties:
 excludedIdentities:
 type: array
 description: Only user type is supported.
 items:
 $ref: "#/components/schemas/DataAccessIdentityInput"
 excludedQueryPatterns:
 type: array
 items:
 $ref: "#/components/schemas/ExcludedQueryPatternDto"
 BaselinePolicyImplDto:
 type: object
 allOf:
 \- $ref: "#/components/schemas/BaselinePolicyDto"
 \- type: object
 properties:
 unassociatedQueriesCategory:
 $ref: "#/components/schemas/UnassociatedQueriesCategoryDto"
 unsupportedQueriesCategory:
 $ref: "#/components/schemas/UnsupportedQueriesCategoryDto"
 exclusions:
 $ref: "#/components/schemas/BaselinePolicyExclusionsDto"
 DataAccessIdentityInput:
 required:
 \- identityType
 type: object
 properties:
 identityType:
 type: string
 enum:
 \- USER
 \- DB\_USER
 \- GROUP
 \- IDP\_GROUP
 \- DATABRICKS\_GROUP
 \- DATABRICKS\_SERVICE\_PRINCIPAL
 \- SNOWFLAKE\_ROLE
 \- SNOWFLAKE\_ACCOUNT\_NAME
 \- SNOWFLAKE\_DATABASE\_ROLE
 \- CEL
 \- EVERYONE
 identity:
 type: string
 DataStoreCredentialsOutput:
 type: object
 properties:
 type:
 type: string
 enum:
 \- SNOWFLAKE
 \- REDSHIFT
 \- BIGQUERY
 \- POSTGRESQL
 \- ATHENA
 \- MSSQL
 \- SYNAPSE
 \- MYSQL
 \- OCEANBASE
 \- API\_SERVER
 \- MARIA\_DB
 \- COCKROACH\_DB
 \- OPENSEARCH
 \- ELASTICSEARCH
 \- GREENPLUM
 \- S3
 \- MONGO
 \- DATABRICKS
 \- FABRIC
 \- AZURE\_OPEN\_AI
 \- OPEN\_AI
 \- BEDROCK
 \- ORACLE
 \- DB2
 \- DYNAMO\_DB
 \- DOCUMENT\_DB
 \- REDIS
 \- MEMCACHED
 DataStoreOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 name:
 type: string
 hostname:
 type: string
 satoriHostname:
 type: string
 dataAccessControllerId:
 type: string
 parent:
 type: string
 type:
 type: string
 projectIds:
 type: array
 items:
 type: string
 originPort:
 type: integer
 format: int32
 hasIdp:
 type: boolean
 demo:
 type: boolean
 dataStoreSettings:
 $ref: "#/components/schemas/DataStoreSettingsOutput"
 regions:
 type: array
 items:
 $ref: "#/components/schemas/CloudProviderRegions"
 discoveryDetails:
 $ref: "#/components/schemas/DataStoreDiscoveryDetailsOutput"
 environment:
 type: string
 identityProviderId:
 type: string
 customIngressPort:
 type: integer
 format: int32
 baselineSecurityPolicy:
 $ref: "#/components/schemas/BaselinePolicyDto"
 networkPolicy:
 $ref: "#/components/schemas/NetworkPolicyMinimalOutput"
 satoriAuthSettings:
 $ref: "#/components/schemas/SatoriAuthSettingsOutput"
 authorizationAnalyticsSettings:
 $ref: "#/components/schemas/AuthorizationAnalyticsSettingsOutput"
 sandboxEnvironment:
 $ref: "#/components/schemas/SandboxEnvironment"
 enableProxy:
 type: boolean
 DefaultAccessLevelDto:
 type: object
 allOf:
 \- $ref: "#/components/schemas/BaselinePolicyDto"
 \- type: object
 properties:
 defaultAccessLevel:
 type: string
 enum:
 \- NONE
 \- READ\_ONLY
 \- READ\_WRITE
 \- OWNER
 ExcludedQueryPatternDto:
 type: object
 properties:
 pattern:
 type: string
 NetworkPolicyMinimalOutput:
 type: object
 properties:
 name:
 type: string
 allowedRules:
 type: array
 items:
 $ref: "#/components/schemas/NetworkPolicyRule"
 blockedRules:
 type: array
 items:
 $ref: "#/components/schemas/NetworkPolicyRule"
 SandboxEnvironment:
 type: object
 properties:
 users:
 type: array
 items:
 $ref: "#/components/schemas/SandboxUser"
 SandboxUser:
 type: object
 properties:
 username:
 type: string
 password:
 type: string
 SatoriAuthSettingsOutput:
 type: object
 properties:
 enabled:
 type: boolean
 credentials:
 $ref: "#/components/schemas/CredentialsOutput"
 enablePersonalAccessToken:
 type: boolean
 UnassociatedQueriesCategoryDto:
 type: object
 properties:
 queryAction:
 type: string
 enum:
 \- PASS
 \- REDACT
 \- BLOCK
 UnsupportedQueriesCategoryDto:
 type: object
 properties:
 queryAction:
 type: string
 enum:
 \- PASS
 \- REDACT
 \- BLOCK
 AISecurityPolicy:
 type: object
 properties:
 promptInjectionEnabled:
 type: boolean
 piiProtectionMode:
 type: string
 enum:
 \- OPEN
 \- BLOCK
 \- OPTIONAL
 maskingProfileId:
 type: string
 rateLimit:
 $ref: "#/components/schemas/AISecurityPolicyRateLimit"
 AISecurityPolicyRateLimit:
 type: object
 properties:
 numOfTokens:
 type: integer
 format: int32
 numOfTimeUnit:
 type: integer
 format: int32
 timeUnit:
 type: string
 enum:
 \- NANOSECONDS
 \- MICROSECONDS
 \- MILLISECONDS
 \- SECONDS
 \- MINUTES
 \- HOURS
 \- DAYS
 AWSAccount:
 type: object
 properties:
 id:
 type: string
 name:
 type: string
 arn:
 type: string
 AWSIamRoleCredentialsInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/CredentialsInput"
 \- type: object
 properties:
 awsServiceRoleARN:
 type: string
 AWSServicePrincipalTokenCredentialsInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/CredentialsInput"
 \- type: object
 properties:
 clientId:
 type: string
 clientSecret:
 type: string
 AiDBSettingsDto:
 type: object
 properties:
 modelHost:
 type: string
 modelCategory:
 type: string
 defaultModel:
 type: string
 selectedModels:
 type: array
 items:
 type: string
 customModels:
 type: array
 items:
 $ref: "#/components/schemas/CustomModel"
 securityPolicy:
 $ref: "#/components/schemas/AISecurityPolicy"
 description: Additional Settings for AI Datastore
 AtlasCluster:
 type: object
 properties:
 id:
 type: string
 name:
 type: string
 project:
 $ref: "#/components/schemas/AtlasProject"
 enabled:
 type: boolean
 AtlasCredentialsInput:
 type: object
 properties:
 privateKey:
 type: string
 publicKey:
 type: string
 availableClusters:
 type: array
 items:
 $ref: "#/components/schemas/AtlasCluster"
 AtlasProject:
 type: object
 properties:
 id:
 type: string
 name:
 type: string
 AuthorizationAnalyticsSettingsInput:
 type: object
 properties:
 credentials:
 $ref: "#/components/schemas/DataStoreCredentialsInput"
 autoScanEnabled:
 type: boolean
 enabled:
 type: boolean
 AzureM2MServicePrincipalTokenCredentialsInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/CredentialsInput"
 \- type: object
 properties:
 clientId:
 type: string
 clientSecret:
 type: string
 AzureServicePrincipalTokenCredentialsInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/CredentialsInput"
 \- type: object
 properties:
 tenantId:
 type: string
 clientId:
 type: string
 clientSecret:
 type: string
 BedrockCredentialsInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/DataStoreCredentialsInput"
 \- type: object
 properties:
 availableAccounts:
 type: array
 items:
 $ref: "#/components/schemas/AWSAccount"
 BigQueryCredentialsInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/DataStoreCredentialsInput"
 \- type: object
 properties:
 content:
 type: string
 filename:
 type: string
 availableProjects:
 uniqueItems: true
 type: array
 items:
 $ref: "#/components/schemas/GcpProject"
 client\_email:
 type: string
 CredentialsInput:
 type: object
 properties:
 type:
 type: string
 enum:
 \- RSA\_KEY\_PAIR
 \- USERNAME\_PASSWORD
 \- AZURE\_SERVICE\_PRINCIPAL\_TOKEN
 \- AZURE\_M2M\_SERVICE\_PRINCIPAL\_TOKEN
 \- AWS\_SERVICE\_PRINCIPAL\_TOKEN
 \- AWS\_IAM\_ROLE
 \- SERVICE\_TOKEN
 discriminator:
 propertyName: type
 CustomModel:
 type: object
 properties:
 value:
 type: string
 name:
 type: string
 DataStoreCredentialsInput:
 type: object
 properties:
 type:
 type: string
 enum:
 \- SNOWFLAKE
 \- REDSHIFT
 \- BIGQUERY
 \- POSTGRESQL
 \- ATHENA
 \- MSSQL
 \- SYNAPSE
 \- MYSQL
 \- OCEANBASE
 \- API\_SERVER
 \- MARIA\_DB
 \- COCKROACH\_DB
 \- OPENSEARCH
 \- ELASTICSEARCH
 \- GREENPLUM
 \- S3
 \- MONGO
 \- DATABRICKS
 \- FABRIC
 \- AZURE\_OPEN\_AI
 \- OPEN\_AI
 \- BEDROCK
 \- ORACLE
 \- DB2
 \- DYNAMO\_DB
 \- DOCUMENT\_DB
 \- REDIS
 \- MEMCACHED
 discriminator:
 propertyName: type
 DataStoreInput:
 required:
 \- hostname
 \- name
 type: object
 properties:
 name:
 minLength: 1
 type: string
 hostname:
 minLength: 1
 type: string
 type:
 type: string
 enum:
 \- SNOWFLAKE
 \- REDSHIFT
 \- BIGQUERY
 \- POSTGRESQL
 \- ATHENA
 \- MSSQL
 \- SYNAPSE
 \- MYSQL
 \- OCEANBASE
 \- API\_SERVER
 \- MARIA\_DB
 \- COCKROACH\_DB
 \- OPENSEARCH
 \- ELASTICSEARCH
 \- GREENPLUM
 \- S3
 \- MONGO
 \- DATABRICKS
 \- FABRIC
 \- AZURE\_OPEN\_AI
 \- OPEN\_AI
 \- BEDROCK
 \- ORACLE
 \- DB2
 \- DYNAMO\_DB
 \- DOCUMENT\_DB
 \- REDIS
 \- MEMCACHED
 dataAccessControllerId:
 type: string
 projectIds:
 type: array
 description: "BigQuery - project IDs, Athena - AWS Account ID, CockroachDB\
 \ - cluster ID"
 items:
 type: string
 description: "BigQuery - project IDs, Athena - AWS Account ID, CockroachDB\
 \ - cluster ID"
 originPort:
 type: integer
 format: int32
 baselineSecurityPolicy:
 $ref: "#/components/schemas/BaselinePolicyDto"
 dataStoreSettings:
 $ref: "#/components/schemas/DataStoreSettingsDto"
 customIngressPort:
 type: integer
 format: int32
 satoriHostname:
 type: string
 networkPolicy:
 $ref: "#/components/schemas/NetworkPolicyInput"
 satoriAuthSettings:
 $ref: "#/components/schemas/SatoriAuthSettingsInput"
 authorizationAnalyticsSettings:
 $ref: "#/components/schemas/AuthorizationAnalyticsSettingsInput"
 DataStoreSettingsDto:
 type: object
 description: specific datastore settings
 oneOf:
 \- $ref: "#/components/schemas/MongoDBSettingsDto"
 \- $ref: "#/components/schemas/AiDBSettingsDto"
 \- $ref: "#/components/schemas/DatabricksDBSettingsInput"
 \- $ref: "#/components/schemas/FabricDBSettingsInput"
 DatabricksDBSettingsInput:
 type: object
 properties:
 accountId:
 type: string
 warehouseId:
 type: string
 workspaceId:
 type: string
 orchestrationSettings:
 $ref: "#/components/schemas/OrchestrationSettingsDto"
 credentials:
 $ref: "#/components/schemas/CredentialsInput"
 FabricDBSettingsInput:
 type: object
 properties:
 workspaceId:
 type: string
 orchestrationSettings:
 $ref: "#/components/schemas/OrchestrationSettingsDto"
 credentials:
 $ref: "#/components/schemas/CredentialsInput"
 GcpProject:
 type: object
 properties:
 id:
 type: string
 name:
 type: string
 enabled:
 type: boolean
 MongoCredentialsInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/DataStoreCredentialsInput"
 \- type: object
 properties:
 username:
 type: string
 password:
 type: string
 atlas:
 $ref: "#/components/schemas/AtlasCredentialsInput"
 PostgreSQLCredentialsInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/DataStoreCredentialsInput"
 \- type: object
 properties:
 username:
 type: string
 password:
 type: string
 dbname:
 type: string
 RSAKeyPairCredentialsInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/CredentialsInput"
 \- type: object
 properties:
 username:
 type: string
 privateKey:
 type: string
 publicKey:
 type: string
 RedshiftCredentialsInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/DataStoreCredentialsInput"
 \- type: object
 properties:
 username:
 type: string
 password:
 type: string
 dbname:
 type: string
 S3CredentialsInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/DataStoreCredentialsInput"
 \- type: object
 properties:
 availableAccounts:
 type: array
 items:
 $ref: "#/components/schemas/AWSAccount"
 SatoriAuthSettingsInput:
 type: object
 properties:
 enabled:
 type: boolean
 credentials:
 $ref: "#/components/schemas/CredentialsInput"
 enablePersonalAccessToken:
 type: boolean
 SnowflakeCredentialsInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/DataStoreCredentialsInput"
 \- type: object
 properties:
 username:
 type: string
 password:
 type: string
 account:
 type: string
 role:
 type: string
 warehouse:
 type: string
 TokenCredentialsInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/CredentialsInput"
 \- type: object
 properties:
 token:
 type: string
 UsernamePasswordCredentialsInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/CredentialsInput"
 \- type: object
 properties:
 username:
 type: string
 password:
 type: string
 DirectoryObjectOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 name:
 type: string
 description:
 type: string
 DbRoleMemberOutput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/GroupMemberOutput"
 \- type: object
 properties:
 dsType:
 type: string
 enum:
 \- SNOWFLAKE
 \- REDSHIFT
 \- BIGQUERY
 \- POSTGRESQL
 \- ATHENA
 \- MSSQL
 \- SYNAPSE
 \- MYSQL
 \- OCEANBASE
 \- API\_SERVER
 \- MARIA\_DB
 \- COCKROACH\_DB
 \- OPENSEARCH
 \- ELASTICSEARCH
 \- GREENPLUM
 \- S3
 \- MONGO
 \- DATABRICKS
 \- FABRIC
 \- AZURE\_OPEN\_AI
 \- OPEN\_AI
 \- BEDROCK
 \- ORACLE
 \- DB2
 \- DYNAMO\_DB
 \- DOCUMENT\_DB
 \- REDIS
 \- MEMCACHED
 DirectoryGroupMemberOutput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/GroupMemberOutput"
 \- type: object
 properties:
 id:
 type: string
 DirectoryGroupOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 name:
 type: string
 description:
 type: string
 members:
 type: array
 items:
 $ref: "#/components/schemas/GroupMemberOutput"
 subGroups:
 type: array
 items:
 $ref: "#/components/schemas/DirectoryGroupOutput"
 accessSettings:
 $ref: "#/components/schemas/AccessSettingsDto"
 GroupMemberOutput:
 required:
 \- type
 type: object
 properties:
 name:
 type: string
 type:
 type: string
 discriminator:
 propertyName: type
 oneOf:
 \- $ref: "#/components/schemas/UsernameMemberOutput"
 \- $ref: "#/components/schemas/IdpGroupMemberOutput"
 \- $ref: "#/components/schemas/DbRoleMemberOutput"
 \- $ref: "#/components/schemas/DirectoryGroupMemberOutput"
 IdpGroupMemberOutput:
 type: object
 properties:
 id:
 type: string
 email:
 type: string
 displayName:
 type: string
 UsernameMemberOutput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/GroupMemberOutput"
 \- type: object
 properties:
 id:
 type: string
 email:
 type: string
 DbRoleMemberInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/GroupMemberInput"
 \- type: object
 properties:
 dsType:
 type: string
 description: DataStore type
 enum:
 \- SNOWFLAKE
 \- REDSHIFT
 \- BIGQUERY
 \- POSTGRESQL
 \- ATHENA
 \- MSSQL
 \- SYNAPSE
 \- MYSQL
 \- OCEANBASE
 \- API\_SERVER
 \- MARIA\_DB
 \- COCKROACH\_DB
 \- OPENSEARCH
 \- ELASTICSEARCH
 \- GREENPLUM
 \- S3
 \- MONGO
 \- DATABRICKS
 \- FABRIC
 \- AZURE\_OPEN\_AI
 \- OPEN\_AI
 \- BEDROCK
 \- ORACLE
 \- DB2
 \- DYNAMO\_DB
 \- DOCUMENT\_DB
 \- REDIS
 \- MEMCACHED
 DirectoryGroupMemberInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/GroupMemberInput"
 DirectoryObjectInput:
 type: object
 properties:
 name:
 type: string
 description:
 type: string
 members:
 type: array
 items:
 $ref: "#/components/schemas/GroupMemberInput"
 GroupMemberInput:
 type: object
 properties:
 type:
 type: string
 writeOnly: true
 enum:
 \- USERNAME
 \- IDP\_GROUP
 \- DB\_ROLE
 \- DIRECTORY\_GROUP
 name:
 type: string
 discriminator:
 propertyName: type
 oneOf:
 \- $ref: "#/components/schemas/UsernameMemberInput"
 \- $ref: "#/components/schemas/IdpGroupMemberInput"
 \- $ref: "#/components/schemas/DbRoleMemberInput"
 \- $ref: "#/components/schemas/DirectoryGroupMemberInput"
 IdpGroupMemberInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/GroupMemberInput"
 \- type: object
 properties:
 provider:
 type: string
 enum:
 \- OKTA
 \- AZURE
 \- ONELOGIN
 \- SCIM
 UsernameMemberInput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/GroupMemberInput"
 \- type: object
 properties:
 email:
 type: string
 DirectoryQueryOutput:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/DirectoryObjectOutput"
 count:
 type: integer
 format: int64
 IdpGroupOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 name:
 type: string
 members:
 type: array
 items:
 $ref: "#/components/schemas/IdpGroupMemberOutput"
 accessSettings:
 $ref: "#/components/schemas/AccessSettingsDto"
 IdpGroupQueryResponse:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/IdpGroupOutput"
 count:
 type: integer
 format: int64
 TaxonomyNodeOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 nodeType:
 type: string
 enum:
 \- CATEGORY
 \- CLASSIFIER
 name:
 type: string
 tag:
 type: string
 description:
 type: string
 parentNode:
 type: string
 TaxonomyCategoryInput:
 required:
 \- name
 type: object
 properties:
 name:
 minLength: 1
 type: string
 description:
 type: string
 parentNode:
 type: string
 color:
 type: string
 ClassifierConfig:
 type: object
 properties:
 type:
 type: string
 enum:
 \- SATORI\_BASED
 \- CUSTOM
 \- NON\_AUTOMATIC
 fieldNamePattern:
 type: string
 satoriBaseClassifierId:
 type: string
 fieldType:
 type: string
 enum:
 \- ANY
 \- TEXT
 \- NUMERIC
 \- DATE
 values:
 $ref: "#/components/schemas/ClassifierValues"
 additionalSatoriCategoriesToTag:
 type: array
 items:
 type: string
 ClassifierScopeInput:
 type: object
 properties:
 datasetIds:
 type: array
 items:
 type: string
 includeLocations:
 type: array
 items:
 $ref: "#/components/schemas/DataStoreLocationInput"
 ClassifierValues:
 type: object
 properties:
 values:
 type: array
 items:
 type: string
 caseInsensitive:
 type: boolean
 regex:
 type: boolean
 TaxonomyCustomClassifierInput:
 required:
 \- name
 type: object
 properties:
 name:
 minLength: 1
 type: string
 description:
 type: string
 parentNode:
 type: string
 scope:
 $ref: "#/components/schemas/ClassifierScopeInput"
 config:
 $ref: "#/components/schemas/ClassifierConfig"
 TaxonomyNodeQueryResponse:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/TaxonomyNodeOutput"
 count:
 type: integer
 format: int64
 SatoriTaxonomyNode:
 type: object
 properties:
 id:
 type: string
 nodeType:
 type: string
 enum:
 \- CATEGORY
 \- CLASSIFIER
 parentNode:
 type: string
 tag:
 type: string
 name:
 type: string
 description:
 type: string
 SatoriTaxonomyQueryResponse:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/SatoriTaxonomyNode"
 count:
 type: integer
 format: int64
 DataAccessPermissionOrigin:
 type: object
 properties:
 originType:
 type: string
 enum:
 \- ACCESS\_REQUEST
 \- SELF\_SERVICE
 dateRequested:
 type: string
 format: date-time
 user:
 type: string
 message:
 type: string
 purpose:
 type: string
 DataAccessPermissionRuleOutput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/DataAccessRuleOutput"
 \- type: object
 properties:
 timeLimit:
 $ref: "#/components/schemas/ExpirationTimeLimitOutput"
 origin:
 $ref: "#/components/schemas/DataAccessPermissionOrigin"
 approverNote:
 type: string
 DataAccessRequestRuleOutput:
 type: object
 allOf:
 \- $ref: "#/components/schemas/DataAccessRuleOutput"
 \- type: object
 properties:
 timeLimit:
 $ref: "#/components/schemas/DurationTimeLimitOutput"
 requireApproverNote:
 type: boolean
 approvers:
 type: array
 items:
 $ref: "#/components/schemas/ApproverIdentity"
 permissions:
 $ref: "#/components/schemas/UserAccessRequestResourcePermissions"
 DataAccessRuleOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 type:
 type: string
 enum:
 \- INSTANT\_ACCESS
 \- SELF\_SERVICE
 \- ACCESS\_REQUEST
 \- INSTANT\_ACCESS\_REQUEST
 suspended:
 type: boolean
 identity:
 $ref: "#/components/schemas/DataAccessIdentityOutput"
 accessLevel:
 type: string
 enum:
 \- READ\_ONLY
 \- READ\_WRITE
 \- OWNER
 timeLimit:
 $ref: "#/components/schemas/DataAccessTimeLimitOutput"
 unusedTimeLimit:
 $ref: "#/components/schemas/DataAccessUnusedTimeLimitOutput"
 securityPolicyIds:
 type: array
 items:
 type: string
 discriminator:
 propertyName: type
 DataAccessSelfServiceRuleOutput:
 type: object
 properties:
 entityVersion:
 type: integer
 format: int64
 createdAt:
 type: string
 format: date-time
 updatedAt:
 type: string
 format: date-time
 nameCreatedBy:
 type: string
 nameUpdatedBy:
 type: string
 parentId:
 type: string
 id:
 type: string
 type:
 type: string
 enum:
 \- INSTANT\_ACCESS
 \- SELF\_SERVICE
 \- ACCESS\_REQUEST
 \- INSTANT\_ACCESS\_REQUEST
 suspended:
 type: boolean
 identity:
 $ref: "#/components/schemas/DataAccessIdentityOutput"
 accessLevel:
 type: string
 enum:
 \- READ\_ONLY
 \- READ\_WRITE
 \- OWNER
 timeLimit:
 $ref: "#/components/schemas/DurationTimeLimitOutput"
 unusedTimeLimit:
 $ref: "#/components/schemas/DataAccessUnusedTimeLimitOutput"
 securityPolicyIds:
 type: array
 items:
 type: string
 DataAccessPermissionRuleInput:
 required:
 \- accessLevel
 \- identity
 \- timeLimit
 \- unusedTimeLimit
 type: object
 properties:
 accessLevel:
 type: string
 enum:
 \- READ\_ONLY
 \- READ\_WRITE
 \- OWNER
 timeLimit:
 $ref: "#/components/schemas/ExpirationTimeLimitInput"
 unusedTimeLimit:
 $ref: "#/components/schemas/DataAccessUnusedTimeLimitInput"
 securityPolicyIds:
 type: array
 items:
 type: string
 suspended:
 type: boolean
 identity:
 $ref: "#/components/schemas/DataAccessIdentityInput"
 approverNote:
 type: string
 DataAccessUnusedTimeLimitInput:
 type: object
 properties:
 unusedDaysUntilRevocation:
 maximum: 180
 type: integer
 format: int32
 shouldRevoke:
 type: boolean
 ExpirationTimeLimitInput:
 type: object
 properties:
 shouldExpire:
 type: boolean
 expiration:
 type: string
 format: date-time
 DataAccessPermissionQueryResponse:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/DataAccessPermissionRuleOutput"
 count:
 type: integer
 format: int64
 DataAccessPermissionRuleUpdateInput:
 required:
 \- accessLevel
 \- timeLimit
 \- unusedTimeLimit
 type: object
 properties:
 accessLevel:
 type: string
 enum:
 \- READ\_ONLY
 \- READ\_WRITE
 \- OWNER
 timeLimit:
 $ref: "#/components/schemas/ExpirationTimeLimitInput"
 unusedTimeLimit:
 $ref: "#/components/schemas/DataAccessUnusedTimeLimitInput"
 securityPolicyIds:
 type: array
 items:
 type: string
 suspended:
 type: boolean
 DataAccessRequestRuleInput:
 required:
 \- accessLevel
 \- identity
 \- timeLimit
 \- unusedTimeLimit
 type: object
 properties:
 accessLevel:
 type: string
 enum:
 \- READ\_ONLY
 \- READ\_WRITE
 \- OWNER
 timeLimit:
 $ref: "#/components/schemas/DurationTimeLimitInput"
 unusedTimeLimit:
 $ref: "#/components/schemas/DataAccessUnusedTimeLimitInput"
 securityPolicyIds:
 type: array
 items:
 type: string
 suspended:
 type: boolean
 identity:
 $ref: "#/components/schemas/DataAccessIdentityInput"
 requireApproverNote:
 type: boolean
 approvers:
 type: array
 items:
 $ref: "#/components/schemas/ApproverIdentity"
 DurationTimeLimitInput:
 type: object
 properties:
 shouldExpire:
 type: boolean
 unitType:
 type: string
 enum:
 \- MINUTES
 \- HOURS
 \- DAYS
 \- WEEKS
 \- MONTHS
 \- YEARS
 units:
 type: integer
 format: int32
 DataAccessRequestRuleQueryResponse:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/DataAccessRequestRuleOutput"
 count:
 type: integer
 format: int64
 DataAccessRequestRuleUpdateInput:
 required:
 \- accessLevel
 \- timeLimit
 \- unusedTimeLimit
 type: object
 properties:
 accessLevel:
 type: string
 enum:
 \- READ\_ONLY
 \- READ\_WRITE
 \- OWNER
 timeLimit:
 $ref: "#/components/schemas/DurationTimeLimitInput"
 unusedTimeLimit:
 $ref: "#/components/schemas/DataAccessUnusedTimeLimitInput"
 securityPolicyIds:
 type: array
 items:
 type: string
 suspended:
 type: boolean
 requireApproverNote:
 type: boolean
 approvers:
 type: array
 items:
 $ref: "#/components/schemas/ApproverIdentity"
 DataAccessRuleResourceQueryResponseOutput:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/DataAccessRuleOutput"
 count:
 type: integer
 format: int64
 ResourceQueryPageResponseOutput:
 type: object
 properties:
 records:
 type: array
 items:
 type: object
 count:
 type: integer
 format: int64
 nextPageToken:
 type: string
 DataAccessSelfServiceRuleInput:
 required:
 \- accessLevel
 \- identity
 \- timeLimit
 \- unusedTimeLimit
 type: object
 properties:
 accessLevel:
 type: string
 enum:
 \- READ\_ONLY
 \- READ\_WRITE
 \- OWNER
 timeLimit:
 $ref: "#/components/schemas/DurationTimeLimitInput"
 unusedTimeLimit:
 $ref: "#/components/schemas/DataAccessUnusedTimeLimitInput"
 securityPolicyIds:
 type: array
 items:
 type: string
 suspended:
 type: boolean
 identity:
 $ref: "#/components/schemas/DataAccessIdentityInput"
 DataAccessSelfServiceRuleQueryResponse:
 type: object
 properties:
 records:
 type: array
 items:
 $ref: "#/components/schemas/DataAccessSelfServiceRuleOutput"
 count:
 type: integer
 format: int64
 DataAccessSelfServiceRuleUpdateInput:
 required:
 \- accessLevel
 \- timeLimit
 \- unusedTimeLimit
 type: object
 properties:
 accessLevel:
 type: string
 enum:
 \- READ\_ONLY
 \- READ\_WRITE
 \- OWNER
 timeLimit:
 $ref: "#/components/schemas/DurationTimeLimitInput"
 unusedTimeLimit:
 $ref: "#/components/schemas/DataAccessUnusedTimeLimitInput"
 securityPolicyIds:
 type: array
 items:
 type: string
 suspended:
 type: boolean
 TokenOutput:
 type: object
 properties:
 token:
 type: string
 TokenAuthenticationInput:
 required:
 \- serviceAccountId
 \- serviceAccountKey
 type: object
 properties:
 serviceAccountId:
 minLength: 1
 type: string
 serviceAccountKey:
 minLength: 1
 type: string
 OAuthTokenOutput:
 type: object
 properties:
 access\_token:
 type: string
 token\_type:
 type: string
 expires\_in:
 type: integer
 description: The number of seconds until the token expires
 format: int64
 securitySchemes:
 BearerAuth:
 type: http
 scheme: bearer
