Documentation

Introduction

Use the /data PATCH endpoints to integrate membership and profile directories, map profile properties to directory attributes, and customize global auxiliary fields.

Prerequisites

1. Complete the Enablement and Header Steps in the Admin API Guide

2. Have access to the application code that calls to the API endpoint(s)

3. Have a corporate directory with which to integrate for end-user membership (login) credentials

4. Have a corporate directory(s) with which to integrate for end-user profile information

5. Designate or create a SecureAuth service account in the directory with read and (optional) write access to membership and profile information

/data Endpoints

The following endpoints are prepended with the URL, https://<SecureAuth IdP Domain>/api/v1/realms/<realm ID>, if running SecureAuth IdP v9.1 – in which realm ID is the ID number of the realm to configure –

or https://<SecureAuth IdP Domain>/api/v2/realms/<realm ID>, if running SecureAuth IdP v9.2 or later

Membership Directory Integration /data/membership PATCH Endpoint

Use this endpoint to configure the realm's Membership Directory integration. This is the information with which the end-user logs into the realm, but may not contain profile information required for authentication or assertion.

NOTE: The supported directory types are LDAP (AD and others), SQL Server, Oracle Database, Microsoft Azure AD, and Web Service (Multi-Data Store) (pulls Membership information from other SecureAuth IdP realms' Membership directory integrations).

HTTP MethodEndpointExampleSecureAuth IdP version
PATCH 
/data/membership 
https://secureauth.company.com/api/v1/realms/26/data/membership 
v9.1
PATCH 
/data/membership 
https://secureauth.company.com/api/v2/realms/26/data/membership 
v9.2 or later
Field Definitions and Accepted Values for Configuration

Defaulted values in bold

FieldDescriptionAccepted ValuesNote
dataStoreTypeCorporate data store from which SecureAuth IdP pulls user membership information for login purposes
  • ADSamAccountName
  • ADUPN
  • ADAM
  • Domino
  • eDirectory
  • SunOne
  • Tivoli
  • OpenLDAP
  • OtherLDAP
  • SQLServer
  • WebService
  • Oracle
  • NoDataStore
  • Azure
 
dataStoreSettings for selected data storeN / A 
domainDomain name of directoryanyFor LDAP directory configurations
allowAnonymousLookupEnable directory search without requiring username or password
  • true

  • false

For LDAP directory configurations
connectionModeHow SecureAuth IdP and directory connect
  • Secure
  • SSL
  • Standard
For LDAP directory configurations
serviceAccountUsername of service account with read (and optional write) privileges for directoryanyFor LDAP directory configurations
serviceAccountPasswordPassword associated to service account usernameanyFor LDAP directory configurations
searchAttributeID used to search directory for user accountany, directory attributeFor LDAP directory configurations
searchFilterWhat SecureAuth IdP expects for username (username=%v in string)any, in required format based on directory selectionFor LDAP directory configurations
useAdvancedAdUserCheckCheck account status of presented username
  • true
  • false
For LDAP directory configurations
validateUserTypeHow SecureAuth IdP validates user from directory information
  • Search
  • Bind
For LDAP directory configurations
userGroupCheckTypeCreate list of allowed or denied user groups, based on selection
  • AllowAccess
  • DenyAccess
For LDAP directory configurations
userGroupsList of user groups allowed or denied access to realm (based on userGroupCheckType selection)anyFor LDAP directory configurations
includeNestedGroupsInclude nested groups in group restrictions
  • true
  • false
For LDAP directory configurations
groupsFieldDirectory attribute that contains user group informationany, directory attributeFor LDAP directory configurations
maxInvalidPasswordAttemptNumber of invalid passwords allowed before user account is lockedany, defaulted to 10For LDAP and SQL Server directory configurations
connectionStringString to enable communication between directory and SecureAuth IdPany, in required format based on directory selectionFor SQL Server and Oracle Database directory configurations
passwordFormatHow SQL Server password is stored in directory
  • Clear
  • Hashed
  • Encrypted
For SQL Server directory configurations
How Oracle password is stored in directory, also dictates which Password SP to use
  • Clear
  • SHA1
  • SHA2
  • MD5
For Oracle Database directory configurations
allowedGroupsList of user groups allowed access to realmanyFor SQL Server, Oracle Database, and Azure AD directory configurations
deniedGroupsList of user groups denied access to realmanyFor SQL Server, Oracle Database, and Azure AD directory configurations
sprocGetUserName of Get User Stored Procedure (SP)anyFor SQL Server and Oracle Database directory configurations
sprocGetPasswordName of Get Password SPanyFor SQL Server and Oracle Database directory configurations
sprocResetPasswordName of Reset Password SPanyFor SQL Server and Oracle Database directory configurations
sprocCreateUserName of Create User SPanyFor SQL Server and Oracle Database directory configurations
passwordSaltUnique string of text to append to passwords before hashedanyFor Oracle Database directory configurations; not applicable for "passwordFormat:"Clear"
sprocChangePasswordName of Change Password SPanyFor Oracle Database directory configurations
sprocLockUserName of Lock User SPanyFor Oracle Database directory configurations
sprocUnlockUserName of Unlock User SPanyFor Oracle Database directory configurations
userNameUsername of Azure AD administrator service accountanyFor Azure AD directory configurations
passwordPassword associated to Azure AD service account usernameanyFor Azure AD directory configurations
tenantDomainDomain name of Azure directoryanyFor Azure AD directory configurations
clientIdClient ID of Native Client Application from Azure directoryanyFor Azure AD directory configurations
usernameUsername provided by SecureAuth IdP for Web Service Data Store (recommended to change from default)anyFor Web Service (Multi-Data Store) directory configurations
passwordPassword associated to Web Service Data Store username (recommended to change from default)anyFor Web Service (Multi-Data Store) directory configurations
failoverWhether SecureAuth IdP responds in event of failure
  • true
  • false
For Web Service (Multi-Data Store) directory configurations
mainUrlsConnected SecureAuth IdP realms in which IdP searches for user membership information
  • realm name (SecureAuth12) for realms on the same appliance
  • full URL (https://secureauth.company.com/secureauth20) for realms on different appliance
For Web Service (Multi-Data Store) directory configurations
useCyberArkVaultUse CyberArk Vault to provide service account / username information
  • null
  • true
For LDAP, SQL, and Oracle directory configurations
cyberArkVaultSettings for CyberArk Vault
  • null
  • N / A
If "useCyberArkVault": true, then no configuration is required for this field, but for subsequent fields
usernameService account username of directory accessed by AIM for credential informationanyIf using CyberArk Vault configurations
addressDomain of service account's directory access by AIM for credential informationanyIf using CyberArk Vault configurations
safeName of access control where credentials are storedanyIf using CyberArk Vault configurations
folderName of folder in which account residesanyIf using CyberArk Vault configurations
caobjectUnique identifier for accountanyIf using CyberArk Vault configurations
Parameters and Response Examples
ParametersSuccess Response
LDAP Data Store (with CyberArk enabled)
{
	"dataStoreType": "ADSamAccountName",
	"dataStore": {
		"server": "LDAP://company.local/",
		"distinguishedName": "DC=company,DC=local",
		"domain": "company.local",
		"allowAnonymousLookup": false,
		"connectionMode": "Secure",
		"useCyberArkVault": true,
		"cyberArkVault": {
			"username": "",
			"address": "",
			"safe": "",
			"folder": "",
			"caobject": ""
		},
		"serviceAccount": "service@domain.com",
		"serviceAccountPassword": null,
		"searchAttribute": "samAccountName",
		"searchFilter": "(&(samAccountName=%v)(objectclass=*))",
		"useAdvancedAdUserCheck": false,
		"validateUserType": "Search",
		"userGroupCheckType": "AllowAccess",
		"userGroups": "",
		"includeNestedGroups": false,
		"groupsField": "memberOf",
		"maxInvalidPasswordAttempt": 10
	}
}
{
"status": "Success",
"message": []
}
SQL Server
{
	"dataStoreType": "SQLServer",
	"dataStore": {
		"connectionString": "-BSA-xxxxxxxx-ESA-",
		"useCyberArkVault": false,
		"cyberArkVault": null,
		"passwordFormat": "Clear",
		"allowedGroups": "",
		"deniedGroups": "",
		"maxInvalidPasswordAttempts": 10,
		"sprocGetUser": "GETUSER",
		"sprocGetPassword": "GETPASSWORD",
		"sprocResetPassword": "RESETPASSWORD",
		"sprocCreateUser": "CREATEUSER"
	}
}
Oracle Database
{
	"dataStoreType": "Oracle",
	"dataStore": {
		"connectionString": "<CONNECTION STRING>",
		"passwordFormat": "Clear",
		"passwordSalt": "",
		"allowedGroups": "group1",
		"deniedGroups": "group2",
		"sprocGetUser": "GETUSER",
		"sprocGetPassword": "GETPASSWORD",
		"sprocUpdateUser": "UPDATEUSER",
		"sprocResetPassword": "RESETPASSWORD",
		"sprocChangePassword": "CHANGEPASSWORD",
		"sprocCreateUser": "CREATEUSER",
		"sprocLockUser": "LOCKUSER",
		"sprocUnlockUser": "UNLOCKUSER",
		"useCyberArkVault": false,
		"cyberArkVault": null
	}
}
Azure AD
{
	"dataStoreType": "Azure",
	"dataStore": {
		"userName": "username",
		"password": *********,
		"tenantDomain": "",
		"clientId": "",
		"allowedGroups": "group1",
		"deniedGroups": "group2"
	}
}
Web Service (Multi-Data Store)
{
	"dataStoreType": "WebService",
	"dataStore": {
		"username": "FBAService",
		"password": null,
		"failover": false,
		"mainUrls": [
			"SecureAuth12"
			"https://secureauth.company.com/secureauth20"
		]
	}
}

Profile Provider Directory Integration(s) /data/profile PATCH Endpoint

Use this endpoint to configure the realm's Profile Provider Directory integration(s). This integration(s) includes end-user profile data, which is utilized for authentication and assertion purposes.

Multiple data stores can be configured, enabling SecureAuth IdP to pull profile information from various sources; and the same directory integration used for the Membership integration can be repeated at this endpoint.

HTTP MethodEndpointExampleSecureAuth IdP version
PATCH
/data/profile
https://secureauth.company.com/api/v1/realms/26/data/profile
v9.1
PATCH
/data/profile
https://secureauth.company.com/api/v2/realms/26/data/profile
v9.2 or later
Field Definitions and Accepted Values for Configuration

Defaulted values in bold

FieldDescriptionAccepted ValuesNote
defaultProviderDefault directory to provide user account profile information
  • LDAPProfileProvider
  • SqlProfileProvider
  • WebServiceProfileProvider
  • OracleProfileProvider
  • AzureProfileProvider
This directory is "source": "DefaultProvider" in the Profile Fields section of the parameters
dataStoreTypeType of LDAP directory integration
  • ADSamAccountName
  • ADUPN
  • ADAM
  • Domino
  • eDirectory
  • SunOne
  • Tivoli
  • OpenLDAP
  • OtherLDAP
If "defaultProvider": "LDAPProfileProvider"
ldapDataStoreSettings for LDAP profile directoryN / A 
connectionModeHow SecureAuth IdP and directory connect
  • Secure
  • SSL
  • Standard
For LDAP directory configurations
connectionStringString to enable communication between directory and SecureAuth IdPany, in required format based on directory selectionFor LDAP, SQL Server, and Oracle Database directory configurations
searchFilterWhat SecureAuth IdP expects for username (username=%v in string)any, in required format based on directory selectionFor LDAP directory configurations
searchAttributeID used to search directory for user accountany, directory attributeFor LDAP directory configurations
userGroupsList of user groups allowed access to realmanyFor LDAP directory configurations
connectionUsernameUsername of service account with read (and optional but recommended write) privileges for directoryanyFor LDAP directory configurations
connectionPasswordPassword associated to service account usernameanyFor LDAP directory configurations
includeNestedGroupsInclude nested groups in group restrictions
  • true
  • false
For LDAP directory configurations
sqlDataStoreSettings for SQL Server profile directoryN / A 
sprocGetUserProfileName of Get User Profile Stored Procedure (SP)anyFor SQL Server directory configurations
sprocUpdateProfileName of Update User Profile SPanyFor SQL Server and Oracle Database directory configurations
allowedGroupsList of user groups allowed access to realmanyFor SQL Server directory configurations
oracleDataStoreSettings for Oracle Database profile directoryN / A 
sprocGetProfileName of Get User Profile SPanyFor Oracle Database directory configurations
azureDataStoreSettings for Azure AD profile directoryN / A 
usernameUsername of Azure AD administrator service accountanyFor Azure AD directory configurations
passwordPassword associated to Azure AD service account usernameanyFor Azure AD directory configurations
tenantDomainDomain name of Azure directoryanyFor Azure AD directory configurations
clientIdClient ID of Native Client Application from Azure directoryanyFor Azure AD directory configurations
appKey   
webServiceDataStoreSettings for Web Service (Multi-Data Store) profile directoryN / A 
usernameUsername provided by SecureAuth IdP for Web Service Data Store (recommended to change from default)anyFor Web Service (Multi-Data Store) directory configurations
passwordPassword associated to Web Service Data Store username (recommended to change from default)anyFor Web Service (Multi-Data Store) directory configurations
allowedUserGroupsList of user groups allowed access to realmanyFor Web Service (Multi-Data Store) directory configurations
failoverWhether SecureAuth IdP responds in event of failure
  • true
  • false
For Web Service (Multi-Data Store) directory configurations
mainUrlsConnected SecureAuth IdP realms in which IdP searches for user membership information
  • realm name (SecureAuth12) for realms on the same appliance
  • full URL (https://secureauth.company.com/secureauth20) for realms on different appliance
For Web Service (Multi-Data Store) directory configurations
useCyberArkVaultUse CyberArk Vault to provide service account / username information
  • null
  • true
For LDAP, SQL, and Oracle directory configurations
cyberArkVaultSettings for CyberArk Vault
  • null
  • N / A
If "useCyberArkVault": true, then no configuration is required for this field, but for subsequent fields
usernameService account username of directory accessed by AIM for credential informationanyIf using CyberArk Vault configurations
addressDomain of service account's directory access by AIM for credential informationanyIf using CyberArk Vault configurations
safeName of access control where credentials are storedanyIf using CyberArk Vault configurations
folderName of folder in which account residesanyIf using CyberArk Vault configurations
caobjectUnique identifier for accountanyIf using CyberArk Vault configurations
profileFieldsSettings for profile property / directory attribute mappingN / ARefer to LDAP Attributes / SecureAuth IdP Profile Properties Mapping for Profile Property descriptions and appropriate directory mapping
propertyNameSecureAuth IdP Profile Property name, used throughout IdP configurationsee list in parameters belowList of properties generated in realm creation (/realms endpoint)
sourceDirectory from which profile information is pulled, based on directories configured
  • DefaultProvider
  • DirectoryServer
  • SqlServer
  • WebService
  • Azure
  • Oracle
 
fieldDirectory attribute that contains required profile information, mapped to the IdP Propertyany, directory attribute formatIf source is LDAP directory type
dataFormatHow information is stored in directory
  • PlainText
  • StandardEncryption
  • AdvancedEncryption
  • StandardHash
  • PlainBinary
  • JSON
  • EncryptedJSON

AdvancedEncryption default for OATH Seed

PlainBinary default for DigitalFP, PNToken, AccessHistory, and OATHToken

PlainText default for remainder

isWritableWhether SecureAuth IdP can write to directory to update profile information
  • true
  • false
 

Add custom Profile Properties in the profileFields section

	"profileFields": [
		{
			"propertyName": "BehaveBio",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
        {
            "propertyName": "<NEW PROPERTY NAME>",
            "source": "<PROVIDER>",
            "field": "<DIRECTORY ATTRIBUTE>",
            "dataFormat": "<FORMAT>",
            "isWritable": <T OR F>
        }
	]
Parameters and Response Examples
ParametersSuccess Response
{
	"defaultProvider": "LDAPProfileProvider",
	"dataStoreType": "ADSamAccountName",
	"ldapDataStore": {
		"connectionMode": "Secure",
		"connectionString": "LDAP://127.0.0.1/DC=domain,DC=com",
		"searchFilter": "(&(samAccountName=%v)(objectclass=*))",
		"searchAttribute": "",
		"useCyberArkVault": false,
		"cyberArkVault": null,
		"userGroups": "",
		"connectionUsername": "service@domain.com",
		"connectionPassword": "***************",
		"includeNestedGroups": false
	},
	"sqlDataStore": {
		"sprocGetUserProfile": "",
		"sprocUpdateProfile": "",
		"allowedGroups": "",
		"connectionString": "<CONNECTION STRING>",
		"useCyberArkVault": null,
		"cyberArkVault": null
	},
	"oracleDataStore": {
		"connectionString": "<CONNECTION STRING>",
		"useCyberArkVault": null,
		"cyberArkVault": null,
		"sprocGetProfile": "GETUSERPROFILE",
		"sprocUpdateProfile": "UPDATEUSERPROFILE"
	},
	"azureDataStore": {
		"username": "",
		"password": "",
		"tenantDomain": "",
		"clientId": "",
		"appKey": ""
	},
	"webServiceDataStore": {
		"username": "FBAService",
		"password": "",
		"allowedUserGroups": "",
		"failover": false,
		"mainUrls": [
			"SecureAuth12"
			"https://secureauth.company.com/secureauth20"
		]
	},
	"profileFields": [
		{
			"propertyName": "FirstName",
			"source": "DefaultProvider",
			"field": "givenName",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "LastName",
			"source": "DefaultProvider",
			"field": "sn",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "AuxID1",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "AuxID2",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "AuxID3",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "AuxID4",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "AuxID5”,
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "AuxID6”,
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "AuxID7”,
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "AuxID8”,
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "AuxID9”,
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "AuxID10”,
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "Email1",
			"source": "DefaultProvider",
			"field": "mail",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "Email2",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "Email3",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "Email4",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "Phone1",
			"source": "DefaultProvider",
			"field": "telephoneNumber",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "Phone2",
			"source": "DefaultProvider",
			"field": "mobile",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "Phone3",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "Phone4",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "KbQuestions",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "KbAnswers",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "CertCount",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "CertResetDate",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "GroupList",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "pinHash",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "MobileResetDate",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "MobileCount",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "CertSerialNumber",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "ExtSyncPwdDate",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "CertExpiration",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "HardwareToken",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "iOSDevices",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "OATHSeed",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "AdvancedEncryption",
			"isWritable": false
		},
		{
			"propertyName": "DigitalFP",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainBinary",
			"isWritable": false
		},
		{
			"propertyName": "PNToken",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainBinary",
			"isWritable": false
		},
		{
			"propertyName": "OneTimeOATHList",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		},
		{
			"propertyName": "AccessHistory",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainBinary",
			"isWritable": false
		},
		{
			"propertyName": "OATHToken",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainBinary",
			"isWritable": false
		},
		{
			"propertyName": "BehaveBio",
			"source": "DefaultProvider",
			"field": "",
			"dataFormat": "PlainText",
			"isWritable": false
		}
	]
}
{
"status": "Success",
"message": []
}

Global Auxiliary Fields /data/globalaux PATCH Endpoint

Use this endpoint to configure the realm's Global Auxiliary values, which are standard values that are asserted from SecureAuth IdP to the SP for each end-user without requiring directory storage.

HTTP MethodEndpointExampleSecureAuth IdP version
PATCH
/data/globalaux
https://secureauth.company.com/api/v1/realms/26/data/globalaux
v9.1
PATCH
/data/globalaux
https://secureauth.company.com/api/v2/realms/26/data/globalaux
v9.2 or later
Definitions

globalAux1 - 5: Any global data that can be asserted and applies to all end-users

Parameters and Response Examples
ParameterSuccess Response
{
	"globalAux1": "ACME Corp.",
	"globalAux2": "1",
	"globalAux3": "false",
	"globalAux4": "",
	"globalAux5": ""
}
{
"status": "Success",
"message": []
}
Related Documentation
  • No labels