Fortanix Data Security Manager REST API

REST API for the Fortanix Data Security Manager (DSM): account, group, app, user and role administration plus key lifecycle (generate, import, rotate, export, destroy) and cryptographic operations (encrypt, decrypt, sign, verify, digest, HMAC, key agreement, key wrapping, multi-part and batch crypto), approval requests, Lua plugins, audit logs and account statistics.

OpenAPI Specification

fortanix-dsm-openapi-original.json Raw ↑
{
  "openapi": "3.0.0",
  "info": {
    "title": "Fortanix DSM REST API",
    "description": "This is a set of REST APIs for accessing the Fortanix Data Security Manager. This includes APIs for managing accounts, and for performing cryptographic and key management operations. \n\n **Note:** \n- All binary input should be base64-encoded. These fields are marked with `format: byte`. \n- For forward compatibility, any API client is expected to ignore any fields in the response not explicitly mentioned in the documentation. We reserve the right to add new fields at any time to provide new functionality without affecting existing API clients. \n- PATCH requests accept a JSON value describing a partial update to the specified resource. All top-level fields in the PATCH request are optional. If an optional field is omitted, the existing value of that field is preserved. In general, for nested JSON objects, the request must provide the complete object value rather than a partial update.",
    "termsOfService": "https://fortanix.com/legal/agreements-and-standard-terms",
    "contact": {
      "name": "Fortanix Support",
      "url": "https://support.fortanix.com/",
      "email": "support@fortanix.com"
    },
    "license": {
      "name": "Apache 2.0",
      "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "version": "0.1.0-20260710"
  },
  "servers": [
    {
      "url": "{dsmEndpoint}",
      "description": "DSM Endpoint",
      "variables": {
        "dsmEndpoint": {
          "default": "https://amer.smartkey.io",
          "description": "Type your DSM server URL here (include https://)"
        }
      }
    }
  ],
  "components": {
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic"
      },
      "apiKeyAuth": {
        "type": "apiKey",
        "name": "Authorization",
        "in": "header",
        "description": "Please enter your token prefixed with 'Basic ' (e.g., 'Basic your_token_here')"
      },
      "bearerToken": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    },
    "schemas": {
      "Account": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "acct_id": {
                "type": "string",
                "format": "uuid"
              },
              "approval_policy": {
                "$ref": "#/components/schemas/AccountApprovalPolicy"
              },
              "auth_config": {
                "$ref": "#/components/schemas/AuthConfig"
              },
              "client_configurations": {
                "$ref": "#/components/schemas/ClientConfigurations"
              },
              "country": {
                "type": "string",
                "nullable": true
              },
              "created_at": {
                "type": "string",
                "pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$",
                "example": "20170509T070912Z"
              },
              "cryptographic_policy": {
                "$ref": "#/components/schemas/CryptographicPolicy"
              },
              "custom_logo": {
                "type": "string",
                "format": "byte"
              },
              "custom_metadata": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                },
                "nullable": true
              },
              "custom_metadata_attributes": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/CustomAttributeSearchMetadata"
                },
                "nullable": true
              },
              "description": {
                "type": "string",
                "nullable": true
              },
              "disabled_at": {
                "type": "string",
                "pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$",
                "example": "20170509T070912Z"
              },
              "enabled": {
                "type": "boolean"
              },
              "initial_purchase_at": {
                "type": "string",
                "pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$",
                "example": "20170509T070912Z"
              },
              "key_expiry_alert_config": {
                "$ref": "#/components/schemas/KeyExpiryAlertConfig"
              },
              "key_history_policy": {
                "$ref": "#/components/schemas/KeyHistoryPolicy"
              },
              "key_metadata_policy": {
                "$ref": "#/components/schemas/KeyMetadataPolicy"
              },
              "log_bad_requests": {
                "type": "boolean",
                "nullable": true
              },
              "log_retention_days": {
                "type": "integer",
                "nullable": true
              },
              "logging_configs": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/LoggingConfig"
                }
              },
              "mark_key_disable_when_deactivated": {
                "type": "boolean",
                "description": "Enable the user to opt out from the current behaviour of key being marked as disabled at time of deactivation."
              },
              "max_app": {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295,
                "nullable": true
              },
              "max_group": {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295,
                "nullable": true
              },
              "max_operation": {
                "type": "integer",
                "nullable": true
              },
              "max_plugin": {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295,
                "nullable": true
              },
              "max_sobj": {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295,
                "nullable": true
              },
              "max_user": {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295,
                "nullable": true
              },
              "name": {
                "type": "string",
                "maxLength": 4096,
                "pattern": "^[^\\n]*[^\\s\\n][^\\n]*$"
              },
              "notification_pref": {
                "$ref": "#/components/schemas/NotificationPref"
              },
              "organization": {
                "type": "string",
                "nullable": true
              },
              "original_purpose": {
                "$ref": "#/components/schemas/AccountPurposeType"
              },
              "parent_acct_id": {
                "type": "string",
                "format": "uuid",
                "nullable": true
              },
              "pending_subscription_change_request": {
                "$ref": "#/components/schemas/SubscriptionChangeRequest"
              },
              "phone": {
                "type": "string",
                "nullable": true
              },
              "plugin_code_signing_policy": {
                "$ref": "#/components/schemas/PluginCodeSigningPolicy"
              },
              "plugin_enabled": {
                "type": "boolean",
                "nullable": true
              },
              "purpose": {
                "$ref": "#/components/schemas/AccountPurpose"
              },
              "subscription": {
                "$ref": "#/components/schemas/Subscription"
              },
              "totals": {
                "$ref": "#/components/schemas/ObjectCounts"
              },
              "trial_expires_at": {
                "type": "string",
                "pattern": "^\\d{4}\\d{2}\\d{2}T\\d{2}\\d{2}\\d{2}Z$",
                "example": "20170509T070912Z",
                "description": "The date when an account's trial expires.\n\nIt is recommended to rely on this field instead of looking at the account's subscription to determine the expiry date, since not all trial subscriptions have the expiry date explicitly indicated.\n\nThis field is read-only, and is not shown for non-trial accounts."
              },
              "workspace_cse_config": {
                "$ref": "#/components/schemas/WorkspaceCseConfig"
              }
            },
            "required": [
              "acct_id",
              "enabled",
              "logging_configs",
              "mark_key_disable_when_deactivated",
              "name",
              "original_purpose",
              "purpose",
              "subscription"
            ]
          },
          {
            "$ref": "#/components/schemas/ApprovalRequestSettings"
          }
        ]
      },
      "AccountApprovalPolicy": {
        "allOf": [
          {
            "type": "object",
            "description": "Account approval policy.",
            "properties": {
              "policy": {
                "$ref": "#/components/schemas/QuorumPolicy"
              },
              "manage_groups": {
                "type": "boolean",
                "nullable": true
              },
              "protect_authentication_methods": {
                "type": "boolean",
                "nullable": true,
                "description": "When this is true, changes to the account authentication methods require approval."
              },
              "protect_cryptographic_policy": {
                "type": "boolean",
                "nullable": true,
                "description": "When this is true, changes to the account cryptographic policy requires approval."
              },
              "protect_logging_config": {
                "type": "boolean",
                "nullable": true,
                "description": "When this is true, changes to logging configuration require approval."
              },
              "protect_custom_role_updates": {
                "type": "boolean",
                "nullable": true,
                "description": "When set to true, updating custom roles would require approval."
              }
            },
            "required": [
              "policy"
            ]
          }
        ]
      },
      "AccountExtension": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "acct_id": {
                "type": "string",
                "format": "uuid"
              },
              "cryptographic_policy": {
                "$ref": "#/components/schemas/CryptographicPolicy"
              },
              "key_history_policy": {
                "$ref": "#/components/schemas/KeyHistoryPolicy"
              },
              "key_metadata_policy": {
                "$ref": "#/components/schemas/KeyMetadataPolicy"
              },
              "custom_metadata": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "custom_metadata_attributes": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/CustomAttributeSearchMetadata"
                }
              },
              "plugin_code_signing_policy": {
                "$ref": "#/components/schemas/PluginCodeSigningPolicy"
              },
              "mark_key_disabled_when_deactivated": {
                "type": "boolean"
              }
            },
            "required": [
              "acct_id",
              "custom_metadata",
              "custom_metadata_attributes",
              "mark_key_disabled_when_deactivated"
            ]
          }
        ]
      },
      "AccountExtensionCreateRequest": {
        "allOf": [
          {
            "type": "object",
            "description": "The model used to create a new account extension.",
            "properties": {
              "cryptographic_policy": {
                "$ref": "#/components/schemas/CryptographicPolicy"
              },
              "key_history_policy": {
                "$ref": "#/components/schemas/KeyHistoryPolicy"
              },
              "key_metadata_policy": {
                "$ref": "#/components/schemas/KeyMetadataPolicy"
              },
              "custom_metadata": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "custom_metadata_attributes": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/CustomAttributeSearchMetadata"
                }
              },
              "plugin_code_signing_policy": {
                "$ref": "#/components/schemas/PluginCodeSigningPolicy"
              },
              "mark_key_disabled_when_deactivated": {
                "type": "boolean"
              }
            },
            "required": [
              "custom_metadata",
              "custom_metadata_attributes",
              "mark_key_disabled_when_deactivated"
            ]
          }
        ]
      },
      "AccountExtensionRequest": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "cryptographic_policy": {
                "$ref": "#/components/schemas/RemovableCryptographicPolicy"
              },
              "key_history_policy": {
                "$ref": "#/components/schemas/RemovableKeyHistoryPolicy"
              },
              "key_metadata_policy": {
                "$ref": "#/components/schemas/RemovableKeyMetadataPolicy"
              },
              "custom_metadata": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                },
                "nullable": true
              },
              "custom_metadata_attributes": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/CustomAttributeSearchMetadata"
                },
                "nullable": true
              },
              "plugin_code_signing_policy": {
                "$ref": "#/components/schemas/RemovablePluginCodeSigningPolicy"
              },
              "mark_key_disabled_when_deactivated": {
                "type": "boolean",
                "nullable": true
              }
            }
          }
        ]
      },
      "AccountPermissions": {
        "description": "\n\n\n          MANAGE_LOGGING:\n            Permission to manage logging integrations, and enable/disable error\n            logging.\n\n\n          MANAGE_AUTH:\n            Permission to manage SSO and password policy.\n\n\n          MANAGE_WORKSPACE_CSE:\n            Permission to manage Workspace CSE configuration.\n\n\n          UNWRAP_WORKSPACE_CSE_PRIVILEGED:\n            Permission required for Workspace CSE PrivilegedUnwrap API. Note\n            that `UNWRAP_WORKSPACE_CSE` permission in the group where the key is\n            stored is also required.\n\n\n          MANAGE_ACCOUNT_CLIENT_CONFIGS:\n            Permission to manage account level client configurations.\n\n\n          MANAGE_PLUGIN_CODE_SIGNING_POLICY:\n            Permission to manage plugin code signing policy.\n\n\n          CREATE_ACCOUNT_APPROVAL_POLICY:\n            Permission to create account-level approval policy. Note that\n            updating/deleting the approval policy is protected by the approval\n            policy itself.\n\n\n          SET_APPROVAL_REQUEST_EXPIRY:\n            Permission to set approval request expiry for all approval requests\n            created in the account.\n\n\n          MANAGE_APPROVAL_REQUEST_SETTINGS:\n            Permission to manage all approval request settings including\n            approval request expiry. Implies `SET_APPROVAL_REQUEST_EXPIRY`.\n\n\n          UPDATE_ACCOUNT_CUSTOM_METADATA_ATTRIBUTES:\n            Permission to update account's custom metadata attributes.\n\n\n          MANAGE_ACCOUNT_SUBSCRIPTION:\n            Permission to manage account subscription (only relevant for SaaS\n            accounts).\n\n\n          MANAGE_ACCOUNT_PROFILE:\n            Permission to update account name, custom logo, and other profile\n            information.\n\n\n          DELETE_ACCOUNT:\n            Permission to delete the account.\n\n\n          CREATE_ADMIN_APPS:\n            Permission to create administrative apps. Implies `GET_ADMIN_APPS`.\n\n\n          UPDATE_ADMIN_APPS:\n            Permission to update administrative apps. Implies `GET_ADMIN_APPS`.\n\n\n          DELETE_ADMIN_APPS:\n            Permission to delete administrative apps. Implies `GET_ADMIN_APPS`.\n\n\n          RETRIEVE_ADMIN_APP_SECRETS:\n            Permission to retrieve administrative apps' secrets. Note that not\n            all admin app credentials contain secrets. If an admin app's\n            credential does not contain any secrets, `GET_ADMIN_APPS` permission\n            is sufficient to call the `GetAppCredential` API. Implies\n            `GET_ADMIN_APPS`.\n\n\n          MANAGE_ADMIN_APPS:\n            Currently implies `CREATE_ADMIN_APPS`, `UPDATE_ADMIN_APPS`,\n            `DELETE_ADMIN_APPS`, `RETRIEVE_ADMIN_APP_SECRETS` and\n            `GET_ADMIN_APPS` permissions.\n\n\n          CREATE_CUSTOM_ROLES:\n            Permission to create custom user roles. Implies `GET_CUSTOM_ROLES`.\n\n\n          UPDATE_CUSTOM_ROLES:\n            Permission to update custom user roles. Implies `GET_CUSTOM_ROLES`.\n\n\n          DELETE_CUSTOM_ROLES:\n            Permission to delete custom user roles. Implies `GET_CUSTOM_ROLES`.\n\n\n          MANAGE_CUSTOM_ROLES:\n            Currently implies `CREATE_CUSTOM_ROLES`, `UPDATE_CUSTOM_ROLES`,\n            `DELETE_CUSTOM_ROLES` and `GET_CUSTOM_ROLES` permissions.\n\n\n          INVITE_USERS_TO_ACCOUNT:\n            Permission to invite users to the account. Implies `GET_ALL_USERS`.\n\n\n          DELETE_USERS_FROM_ACCOUNT:\n            Permission to remove users from the account. Implies\n            `GET_ALL_USERS`.\n\n\n          UPDATE_USERS_ACCOUNT_ROLE:\n            Permission to change users' role in the account. Implies\n            `GET_ALL_USERS`.\n\n\n          UPDATE_USERS_ACCOUNT_ENABLED_STATE:\n            Permission to enable/disable users in the account. Implies\n            `GET_ALL_USERS`.\n\n\n          MANAGE_ACCOUNT_USERS:\n            Currently implies `INVITE_USERS_TO_ACCOUNT`,\n            `DELETE_USERS_FROM_ACCOUNT`, `UPDATE_USERS_ACCOUNT_ROLE`,\n            `UPDATE_USERS_ACCOUNT_ENABLED_STATE` and `GET_ALL_USERS`\n            permissions.\n\n\n          CREATE_EXTERNAL_ROLES:\n            Permission to create external roles. Implies `GET_EXTERNAL_ROLES`.\n\n\n          SYNC_EXTERNAL_ROLES:\n            Permission to synchronize external roles. Implies\n            `GET_EXTERNAL_ROLES`.\n\n\n          DELETE_EXTERNAL_ROLES:\n            Permission to delete external roles. Implies `GET_EXTERNAL_ROLES`.\n\n\n          MANAGE_EXTERNAL_ROLES:\n            Currently implies `CREATE_EXTERNAL_ROLES`, `SYNC_EXTERNAL_ROLES`,\n            `DELETE_EXTERNAL_ROLES` and `GET_EXTERNAL_ROLES` permissions.\n\n\n          CREATE_ACCOUNT_SOBJECT_POLICIES:\n            Permission to create various account-level security object policies\n            including cryptographic policy, key metadata policy and key history\n            policy.\n\n\n          UPDATE_ACCOUNT_SOBJECT_POLICIES:\n            Permission to update various account-level security object policies\n            including cryptographic policy, key metadata policy and key history\n            policy.\n\n\n          DELETE_ACCOUNT_SOBJECT_POLICIES:\n            Permission to delete various account-level security object policies\n            including cryptographic policy, key metadata policy and key history\n            policy.\n\n\n          MANAGE_ACCOUNT_SOBJECT_POLICIES:\n            Currently implies `CREATE_ACCOUNT_SOBJECT_POLICIES`,\n            `UPDATE_ACCOUNT_SOBJECT_POLICIES`, and\n            `DELETE_ACCOUNT_SOBJECT_POLICIES` permissions.\n\n\n          CREATE_CHILD_ACCOUNTS:\n            Permission to create child accounts. Note that this is only\n            applicable to SaaS accounts with reseller subscription. Implies\n            `GET_CHILD_ACCOUNTS`.\n\n\n          UPDATE_CHILD_ACCOUNTS:\n            Permission to update child accounts. Note that this is only\n            applicable to SaaS accounts with reseller subscription. Implies\n            `GET_CHILD_ACCOUNTS`.\n\n\n          DELETE_CHILD_ACCOUNTS:\n            Permission to delete child accounts. Note that this is only\n            applicable to SaaS accounts with reseller subscription. Implies\n            `GET_CHILD_ACCOUNTS`.\n\n\n          CREATE_CHILD_ACCOUNT_USERS:\n            Permission to create users in child accounts. Note that this is only\n            applicable to SaaS accounts with reseller subscription. Implies\n            `GET_CHILD_ACCOUNTS` and `GET_CHILD_ACCOUNT_USERS`.\n\n\n          GET_CHILD_ACCOUNTS:\n            Permission to get child accounts. Note that this is only applicable\n            to SaaS accounts with reseller subscription.\n\n\n          GET_CHILD_ACCOUNT_USERS:\n            Permission to get child account users. Note that this is only\n            applicable to SaaS accounts with reseller subscription.\n\n\n          MANAGE_CHILD_ACCOUNTS:\n            Currently implies `CREATE_CHILD_ACCOUNTS`, `UPDATE_CHILD_ACCOUNTS`,\n            `DELETE_CHILD_ACCOUNTS`, `CREATE_CHILD_ACCOUNT_USERS`,\n            `GET_CHILD_ACCOUNTS`, and `GET_CHILD_ACCOUNT_USERS` permissions.\n\n\n          CREATE_LOCAL_GROUPS:\n            Permission to create new local groups.\n\n\n          CREATE_EXTERNAL_GROUPS:\n            Permission to create new group backed by external HSM/KMS.\n\n\n          ALLOW_QUORUM_REVIEWER:\n            Controls if the user can act as an approval policy reviewer.\n\n\n          ALLOW_KEY_CUSTODIAN:\n            Controls if the user can act as a key custodian.\n\n\n          GET_ALL_APPROVAL_REQUESTS:\n            Grants read access to **all** approval requests in the account. Note\n            that there is a related group-level permission that is restricted to\n            approval requests related to one group.\n\n\n          GET_ADMIN_APPS:\n            Permission to get administrative apps.\n\n\n          GET_CUSTOM_ROLES:\n            Permission to get custom user roles.\n\n\n          GET_EXTERNAL_ROLES:\n            Permission to get external roles.\n\n\n          GET_ALL_USERS:\n            Permission to get all users. Note that users can always get\n            themselves.\n\n\n          GET_ACCOUNT_USAGE:\n            Grants access to accounts::GetAccountUsage API.\n\n\n          MANAGE_KEY_EXPIRY_ALERTS:\n            Permission to manage key expiry alert configurations.\n\n\n          MANAGE_REPLICATION:\n            Permission to modify an account's `purpose` field (e.g., changing a\n            replication account's settings), or to call any APIs involving\n            replication credentials. If the account is not a replication account,\n            this permission has no effect.\n\n",
        "type": "string",
        "enum": [
          "MANAGE_LOGGING",
          "MANAGE_AUTH",
          "MANAGE_WORKSPACE_CSE",
          "UNWRAP_WORKSPACE_CSE_PRIVILEGED",
          "MANAGE_ACCOUNT_CLIENT_CONFIGS",
          "MANAGE_PLUGIN_CODE_SIGNING_POLICY",
          "CREATE_ACCOUNT_APPROVAL_POLICY",
          "SET_APPROVAL_REQUEST_EXPIRY",
          "MANAGE_APPROVAL_REQUEST_SETTINGS",
          "UPDATE_ACCOUNT_CUSTOM_METADATA_ATTRIBUTES",
          "MANAGE_ACCOUNT_SUBSCRIPTION",
          "MANAGE_ACCOUNT_PROFILE",
          "DELETE_ACCOUNT",
          "CREATE_ADMIN_APPS",
          "UPDATE_ADMIN_APPS",
          "DELETE_ADMIN_APPS",
          "RETRIEVE_ADMIN_APP_SECRETS",
          "MANAGE_ADMIN_APPS",
          "CREATE_CUSTOM_ROLES",
          "UPDATE_CUSTOM_ROLES",
          "DELETE_CUSTOM_ROLES",
          "MANAGE_CUSTOM_ROLES",
          "INVITE_USERS_TO_ACCOUNT",
          "DELETE_USERS_FROM_ACCOUNT",
          "UPDATE_USERS_ACCOUNT_ROLE",
          "UPDATE_USERS_ACCOUNT_ENABLED_STATE",
          "MANAGE_ACCOUNT_USERS",
          "CREATE_EXTERNAL_ROLES",
          "SYNC_EXTERNAL_ROLES",
          "DELETE_EXTERNAL_ROLES",
          "MANAGE_EXTERNAL_ROLES",
          "CREATE_ACCOUNT_SOBJECT_POLICIES",
          "UPDATE_ACCOUNT_SOBJECT_POLICIES",
          "DELETE_ACCOUNT_SOBJECT_POLICIES",
          "MANAGE_ACCOUNT_SOBJECT_POLICIES",
          "CREATE_CHILD_ACCOUNTS",
          "UPDATE_CHILD_ACCOUNTS",
          "DELETE_CHILD_ACCOUNTS",
          "CREATE_CHILD_ACCOUNT_USERS",
          "GET_CHILD_ACCOUNTS",
          "GET_CHILD_ACCOUNT_USERS",
          "MANAGE_CHILD_ACCOUNTS",
          "CREATE_LOCAL_GROUPS",
          "CREATE_EXTERNAL_GROUPS",
          "ALLOW_QUORUM_REVIEWER",
          "ALLOW_KEY_CUSTODIAN",
          "GET_ALL_APPROVAL_REQUESTS",
          "GET_ADMIN_APPS",
          "GET_CUSTOM_ROLES",
          "GET_EXTERNAL_ROLES",
          "GET_ALL_USERS",
          "GET_ACCOUNT_USAGE",
          "MANAGE_KEY_EXPIRY_ALERTS",
          "MANAGE_REPLICATION"
        ]
      },
      "AccountPurpose": {
        "description": "Describes the purpose of the account.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AccountPurposeVariantStandard"
          },
          {
            "$ref": "#/components/schemas/AccountPurposeVariantAccountReplication"
          }
        ],
        "discriminator": {
          "propertyName": "$type",
          "mapping": {
            "Standard": "AccountPurposeVariantStandard",
            "AccountReplication": "AccountPurposeVariantAccountReplication"
          }
        }
      },
      "AccountPurposeVariantStandard": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "$type": {
                "type": "string",
                "enum": [
                  "Standard"
                ]
              }
            },
            "required": [
              "$type"
            ]
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "AccountPurposeVariantAccountReplication": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "$type": {
                "type": "string",
                "enum": [
                  "AccountReplication"
                ]
              }
            },
            "required": [
              "$type"
            ]
          },
          {
            "$ref": "#/components/schemas/AccountReplicationConfiguration"
          }
        ]
      },
      "AccountPurposeType": {
        "description": "The purpose of the account (minus any configuration-related details).",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AccountPurposeTypeVariantStandard"
          },
          {
            "$ref": "#/components/schemas/AccountPurposeTypeVariantAccountReplication"
          }
        ],
        "discriminator": {
          "propertyName": "$type",
          "mapping": {
            "Standard": "AccountPurposeTypeVariantStandard",
            "AccountReplication": "AccountPurposeTypeVariantAccountReplication"
          }
        }
      },
      "AccountPurposeTypeVariantStandard": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "$type": {
                "type": "string",
                "enum": [
                  "Standard"
                ]
              }
            },
            "required": [
              "$type"
            ]
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "AccountPurposeTypeVariantAccountReplication": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "$type": {
                "type": "string",
                "enum": [
                  "AccountReplication"
                ]
              }
            },
            "required": [
              "$type"
            ]
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "AccountReplicationConfiguration": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "connection_settings": {
                "$ref": "#/components/schemas/AccountReplicationConnection"
              },
              "scan_settings": {
                "$ref": "#/components/schemas/AccountReplicationScanSettings"
              }
            },
            "required": [
              "connection_settings",
              "scan_settings"
            ]
          }
        ]
      },
      "AccountReplicationConnection": {
        "allOf": [
          {
            "type": "object",
            "description": "Settings for how a replication account should connect to a source cluster. This type does not\nhandle configuration of a source-side admin app used in the replication process; such setup is\nhandled by separate endpoints.",
            "properties": {
              "url": {
                "type": "string",
                "format": "url",
                "description": "The URL of the DSM cluster containing the account to back up. Only HTTPS is supported."
              },
              "active_replication_credential": {
                "$ref": "#/components/schemas/ReplicationCredentialId"
              }
            },
            "required": [
              "url"
            ]
          }
        ]
      },
      "AccountReplicationScanSettings": {
        "allOf": [
          {
            "type": "object",
            "description": "Settings for how DSM should go about replicating objects from the source account once a connection\nhas been established.\n\nToday, account replication is performed using \"basic\" replication, which exports key material in\nthe clear (over a TLS connection).",
            "properties": {
              "auto_scan": {
                "$ref": "#/components/schemas/AutoScanSettings"
              }
            },
            "required": [
              "auto_scan"
            ]
          }
        ]
      },
      "AccountRequest": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "add_ldap": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AuthConfigLdap"
                },
                "nullable": true,
                "description": "LDAP integrations to add when creating or updating an account.\n\nIn order for this field to take effect during creation, it must be specified alongside the `auth_config` field."
              },
              "add_logging_configs": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LoggingConfigRequest"
                },
                "nullable": true
              },
              "approval_policy": {
                "$ref": "#/components/schemas/AccountApprovalPolicy"
              },
              "auth_config": {
                "$ref": "#/components/schemas/AuthConfig"
              },
              "client_configurations": {
                "$ref": "#/components/schemas/ClientConfigurationsRequest"
              },
              "country": {
                "type": "string",
                "nullable": true
              },
              "cryptographic_policy": {
                "$ref": "#/components/schemas/RemovableCryptographicPolicy"
              },
              "custom_logo": {
                "type": "string",
                "format": "byte"
              },
              "custom_metadata": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                },
                "nullable": true
              },
              "custom_metadata_attributes": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/CustomAttributeSearchMetadata"
                },
                "nu

# --- truncated at 32 KB (797 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fortanix/refs/heads/main/openapi/fortanix-dsm-openapi-original.json
Where this information came from

This is an independent, third-party profile of Fortanix Data Security Manager REST API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.