or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

admin-api.mdanalysis.mdconfiguration.mdhtml-generation.mdindex.mdprovisioning.mdsearch.mdupload.mdurl-generation.md
tile.json

provisioning.mddocs/

Provisioning API

Enterprise account management including sub-account creation, user management, and access key generation for multi-tenant applications and large-scale deployments.

Capabilities

Sub-account Management

Create and manage sub-accounts for multi-tenant applications.

/**
 * List sub-accounts
 * @param enabled - Filter by enabled status
 * @param ids - Specific sub-account IDs to retrieve
 * @param prefix - Name prefix filter
 * @param options - Additional options
 * @param callback - Callback function (v1 only)
 * @returns Promise with sub-accounts list
 */
function sub_accounts(
  enabled?: boolean,
  ids?: string[],
  prefix?: string,
  options?: ProvisioningOptions,
  callback?: (error: any, result: any) => void
): Promise<any>;

/**
 * Get sub-account details
 * @param sub_account_id - Sub-account ID
 * @param options - Request options
 * @param callback - Callback function (v1 only)
 * @returns Promise with sub-account details
 */
function sub_account(
  sub_account_id: string,
  options?: ProvisioningOptions,
  callback?: (error: any, result: any) => void
): Promise<any>;

/**
 * Create new sub-account
 * @param name - Sub-account name
 * @param cloud_name - Cloud name for the sub-account
 * @param custom_attributes - Custom attributes
 * @param enabled - Whether the sub-account is enabled
 * @param base_account - Base account ID
 * @param options - Creation options
 * @param callback - Callback function (v1 only)
 * @returns Promise with creation result
 */
function create_sub_account(
  name: string,
  cloud_name: string,
  custom_attributes?: Record<string, any>,
  enabled?: boolean,
  base_account?: string,
  options?: ProvisioningOptions,
  callback?: (error: any, result: any) => void
): Promise<any>;

/**
 * Update sub-account
 * @param sub_account_id - Sub-account ID to update
 * @param name - New name
 * @param cloud_name - New cloud name
 * @param custom_attributes - Updated attributes
 * @param enabled - Enable/disable status
 * @param options - Update options
 * @param callback - Callback function (v1 only)
 * @returns Promise with update result
 */
function update_sub_account(
  sub_account_id: string,
  name?: string,
  cloud_name?: string,
  custom_attributes?: Record<string, any>,
  enabled?: boolean,
  options?: ProvisioningOptions,
  callback?: (error: any, result: any) => void
): Promise<any>;

/**
 * Delete sub-account
 * @param sub_account_id - Sub-account ID to delete
 * @param options - Deletion options
 * @param callback - Callback function (v1 only)
 * @returns Promise with deletion result
 */
function delete_sub_account(
  sub_account_id: string,
  options?: ProvisioningOptions,
  callback?: (error: any, result: any) => void
): Promise<any>;

interface ProvisioningOptions {
  /** Account ID for provisioning operations */
  account_id?: string;
  /** Provisioning API key */
  provisioning_api_key?: string;
  /** Provisioning API secret */
  provisioning_api_secret?: string;
  /** HTTP agent configuration */
  agent?: any;
  /** Content type override */
  content_type?: string;
  [key: string]: any;
}

User Management

Manage users across accounts and sub-accounts.

/**
 * List users
 * @param pending - Include pending users
 * @param user_ids - Specific user IDs
 * @param prefix - Name/email prefix filter
 * @param sub_account_id - Filter by sub-account
 * @param options - Request options
 * @param callback - Callback function (v1 only)
 * @returns Promise with users list
 */
function users(
  pending?: boolean,
  user_ids?: string[],
  prefix?: string,
  sub_account_id?: string,
  options?: ProvisioningOptions,
  callback?: (error: any, result: any) => void
): Promise<any>;

/**
 * Get user details
 * @param user_id - User ID
 * @param options - Request options
 * @param callback - Callback function (v1 only)
 * @returns Promise with user details
 */
function user(
  user_id: string,
  options?: ProvisioningOptions,
  callback?: (error: any, result: any) => void
): Promise<any>;

/**
 * Create new user
 * @param name - User's full name
 * @param email - User's email address
 * @param role - User role
 * @param sub_account_ids - Sub-accounts the user has access to
 * @param options - Creation options
 * @param callback - Callback function (v1 only)
 * @returns Promise with creation result
 */
function create_user(
  name: string,
  email: string,
  role: string,
  sub_account_ids?: string[],
  options?: ProvisioningOptions,
  callback?: (error: any, result: any) => void
): Promise<any>;

/**
 * Update user
 * @param user_id - User ID to update
 * @param name - Updated name
 * @param email - Updated email
 * @param role - Updated role
 * @param sub_account_ids - Updated sub-account access
 * @param options - Update options
 * @param callback - Callback function (v1 only)
 * @returns Promise with update result
 */
function update_user(
  user_id: string,
  name?: string,
  email?: string,
  role?: string,
  sub_account_ids?: string[],
  options?: ProvisioningOptions,
  callback?: (error: any, result: any) => void
): Promise<any>;

/**
 * Delete user
 * @param user_id - User ID to delete
 * @param options - Deletion options
 * @param callback - Callback function (v1 only)
 * @returns Promise with deletion result
 */
function delete_user(
  user_id: string,
  options?: ProvisioningOptions,
  callback?: (error: any, result: any) => void
): Promise<any>;

Access Key Management

Generate and manage API access keys for sub-accounts.

/**
 * List access keys for sub-account
 * @param sub_account_id - Sub-account ID
 * @param options - Listing options
 * @param callback - Callback function (v1 only)
 * @returns Promise with access keys list
 */
function access_keys(
  sub_account_id: string,
  options?: ProvisioningOptions & {
    page_size?: number;
    page?: number;
    sort_by?: string;
    sort_order?: 'asc' | 'desc';
  },
  callback?: (error: any, result: AccessKeysListResponse) => void
): Promise<AccessKeysListResponse>;

/**
 * Generate new access key
 * @param sub_account_id - Sub-account ID
 * @param options - Key generation options
 * @param callback - Callback function (v1 only)
 * @returns Promise with access key details
 */
function generate_access_key(
  sub_account_id: string,
  options?: ProvisioningOptions & {
    name?: string;
    enabled?: boolean;
  },
  callback?: (error: any, result: AccessKeyDetails) => void
): Promise<AccessKeyDetails>;

/**
 * Update access key
 * @param sub_account_id - Sub-account ID
 * @param api_key - API key to update
 * @param options - Update options
 * @param callback - Callback function (v1 only)
 * @returns Promise with updated key details
 */
function update_access_key(
  sub_account_id: string,
  api_key: string,
  options?: ProvisioningOptions & {
    name?: string;
    enabled?: boolean;
  },
  callback?: (error: any, result: AccessKeyDetails) => void
): Promise<AccessKeyDetails>;

/**
 * Delete access key
 * @param sub_account_id - Sub-account ID
 * @param api_key - API key to delete
 * @param options - Deletion options
 * @param callback - Callback function (v1 only)
 * @returns Promise with deletion result
 */
function delete_access_key(
  sub_account_id: string,
  api_key: string,
  options?: ProvisioningOptions,
  callback?: (error: any, result: DeleteAccessKeyResponse) => void
): Promise<DeleteAccessKeyResponse>;

interface AccessKeyDetails {
  name: string;
  api_key: string;
  api_secret: string;
  created_at: string;
  updated_at: string;
  enabled: boolean;
}

interface AccessKeysListResponse {
  access_keys: AccessKeyDetails[];
  total: number;
}

interface DeleteAccessKeyResponse {
  message: 'ok' | 'not_found';
}

Usage Examples:

const cloudinary = require('cloudinary');

// Configure provisioning API
cloudinary.config({
  account_id: 'your_account_id',
  provisioning_api_key: 'your_provisioning_key',
  provisioning_api_secret: 'your_provisioning_secret'
});

// Create sub-account
const subAccount = await cloudinary.v2.provisioning.account.create_sub_account(
  'Client ABC',
  'client-abc-cloud',
  { client_id: 'abc123', tier: 'premium' },
  true
);

// Create user with access to sub-account
const user = await cloudinary.v2.provisioning.account.create_user(
  'John Doe',
  'john@clientabc.com',
  'Admin',
  [subAccount.id]
);

// Generate access keys for sub-account
const accessKey = await cloudinary.v2.provisioning.account.generate_access_key(
  subAccount.id,
  {
    name: 'Production API Key',
    enabled: true
  }
);

console.log('API Key:', accessKey.api_key);
console.log('API Secret:', accessKey.api_secret);

// List all sub-accounts
const subAccounts = await cloudinary.v2.provisioning.account.sub_accounts(true);
console.log('Active sub-accounts:', subAccounts.sub_accounts.length);

Types

interface ProvisioningOptions {
  account_id?: string;
  provisioning_api_key?: string;
  provisioning_api_secret?: string;
  agent?: any;
  content_type?: string;
  [key: string]: any;
}

interface AccessKeyDetails {
  name: string;
  api_key: string;
  api_secret: string;
  created_at: string;
  updated_at: string;
  enabled: boolean;
}

interface AccessKeysListResponse {
  access_keys: AccessKeyDetails[];
  total: number;
}

interface DeleteAccessKeyResponse {
  message: 'ok' | 'not_found';
}