[Index]
This relation implements the workflows to manage Microsoft Tenant connection parameters and enabled services.
Model ref.: relation/MicrosoftTenant
The full URL would include the host-proxy name: https://[host-proxy].
Variables are enclosed in square brackets.
{
"$schema": "http://json-schema.org/draft-03/schema",
"type": "object",
"properties": {
"name": {
"title": "Name",
"description": "Microsoft Tenant user defined name can have a max length of 255 charactors within the following regex pattern - ^[a-zA-Z0-9-_ ]+$",
"type": "string",
"maxLength": 255,
"required": true,
"pattern": "^[a-zA-Z0-9-_. ]+$"
},
"description": {
"title": "Description",
"description": "Microsoft Tenant user defined description can have a max length of 255 charactors.",
"type": "string",
"maxLength": 255
},
"cloud_env_type": {
"title": "Cloud Environment Type",
"description": "Cloud environment type",
"type": "string",
"default": "Commercial",
"maxLength": 1024
},
"show_advanced_settings": {
"title": "Show Advanced Settings and Internet Proxy Settings",
"description": "Show Advanced Settings",
"type": "boolean",
"default": false
},
"uc_automation": {
"title": "UC Automation",
"description": "UC Automation feature toggle",
"type": "boolean",
"default": false
},
"uc_assurance": {
"title": "UC Monitoring",
"description": "UC Assurance/Monitoring feature toggle",
"type": "boolean",
"default": false
},
"uc_analytics": {
"title": "UC Analytics",
"description": "UC Analytics feature toggle",
"type": "boolean",
"default": false
},
"security": {
"title": "Security",
"description": "Security feature toggle",
"type": "boolean",
"default": false
},
"email": {
"title": "Email",
"description": "Email feature toggle",
"type": "boolean",
"default": false
},
"license_management": {
"title": "License Management",
"description": "License Management feature toggle",
"type": "boolean",
"default": false
},
"meeting_rooms": {
"title": "Meeting Rooms",
"description": "Meeting Rooms feature toggle",
"type": "boolean",
"default": false
},
"microsoft_application_authentication": {
"title": "Microsoft Application Authentication",
"type": "object",
"properties": {
"use_central_app_reg": {
"title": "Use VOSS Central App Registration",
"description": "In shared central app registration, VOSS builds and maintains the app registration in their Microsoft Entra ID tenant, and performs organizational and application validation with Microsoft",
"type": "boolean",
"default": "true"
},
"client_id": {
"title": "Application ID",
"description": "The Client ID or Application ID located in the Azure AD app registration portal.",
"type": "string",
"required": true,
"readonly": false,
"displayable": false,
"is_password": false,
"maxLength": 1024
},
"tenant_id": {
"title": "Tenant ID",
"description": "The Tenant ID or Directory ID located in the Azure AD app registration portal.",
"type": "string",
"required": true,
"readonly": false,
"displayable": false,
"is_password": false,
"maxLength": 1024
},
"certificate_thumbprint": {
"title": "Certificate Thumbprint",
"description": "Certificate Thumbprint for a certificate which has been previously uploaded in the Azure AD app registration portal. Required for Exchange.",
"type": "string",
"maxLength": 1024
},
"client_secret": {
"title": "Secret",
"description": "A Client secret previously created in the Azure AD app registration portal. Not used for Exchange.",
"type": "string",
"required": false,
"readonly": false,
"is_password": true,
"store_encrypted": true,
"maxLength": 1024
},
"client_secret_note": {
"title": "Note",
"description": "A Client secret previously created in the Azure AD app registration portal. Not used for Exchange.",
"type": "string",
"required": false,
"readonly": false,
"maxLength": 1024
},
"certificate_pkid": {
"title": "Certificate",
"description": "A locally stored certificate the public portion of which has been previously uploaded in the Azure AD app registration portal.",
"type": "string",
"maxLength": 1024
},
"authorize_microsoft_link": {
"title": "Authorize Microsoft Tenant",
"description": "This is the link to initiate the Microsoft grant process to obtain access to the Tenant.",
"type": "string",
"format": "link",
"maxLength": 1024
}
}
},
"datasync_settings": {
"title": "Data Sync Settings",
"type": "object",
"properties": {
"sync_type": {
"title": "Sync Type",
"description": "Select the type of data sync to be performed. Create default data syncs will create the default data syncs that is shipped with the product. Create a new MIF will create a new Model Instance Filter for a specific model. Use Datasync Builder will use the custom datasync template to create the data syncs.",
"type": "string",
"default": "sync_all_users",
"choices": [
{
"value": "sync_all_users",
"title": "Create default data syncs"
},
{
"value": "create_mif",
"title": "Create default data syncs with custom MS365 MIF"
},
{
"value": "use_datasync_builder",
"title": "Use Datasync Builder"
}
],
"maxLength": 1024
},
"datasync_profile": {
"title": "Datasync Profile",
"description": "Select the datasync profile to be used. The datasync profile is a predefined set of data sync templates. The datasyncs in the profile are used to create the data syncs.",
"type": "string",
"maxLength": 1024
},
"datasyncs": {
"title": "Datasync Templates",
"description": "Select the datasync templates to be used. The datasync template list will be used to create the data syncs.",
"type": "array",
"items": {
"type": "object",
"properties": {
"datasync_template_name": {
"title": "Datasync Template",
"description": "Specify the predifined datasync template",
"type": "string",
"maxLength": 1024
},
"first_date": {
"title": "First Execution Date (YYYY-MM-DD. Local date)",
"description": "Execution Date",
"type": "string",
"required": false,
"readonly": false,
"pattern": "^\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12]\\d|3[01])$",
"maxLength": 1024
},
"first_time": {
"title": "First Execution Time (HH:MM:SS. Local time)",
"description": "Execution Time",
"type": "string",
"required": false,
"readonly": false,
"pattern": "^([0-1]\\d|2[0-3]):(0[0-9]|[1-5]\\d):(0[0-9]|[1-5]\\d)$",
"maxLength": 1024
},
"display_date_fields": {
"title": "Display date fields",
"type": "boolean"
}
}
}
},
"mif_filters": {
"title": "User Filters",
"description": "User Filters are treated as OR conditions when syncing users",
"type": "array",
"items": {
"type": "object",
"properties": {
"use_custom_filter": {
"title": "Custom Filter",
"description": "Specify Custom filter parameters or use predifined filters",
"type": "boolean",
"default": "false"
},
"filter_name": {
"title": "Filter Name",
"type": "string",
"maxLength": 1024
},
"attr_filters": {
"title": "Attribute Filters",
"type": "array",
"items": {
"type": "object",
"properties": {
"attr_name": {
"title": "Attribute Name",
"description": "The model attribute name for which the filter applies.",
"type": "string",
"maxLength": 1024
},
"condition": {
"title": "Condition",
"description": "The nature of comparison to be made for the filter. Condition can be 'Equals', 'Not Equals', 'Greater Than', 'Less Than', 'In', 'Not In' or 'Like'",
"type": "string",
"choices": [
{
"value": "equals",
"title": "Equals"
},
{
"value": "notequals",
"title": "Not Equals"
},
{
"value": "greaterthan",
"title": "Greater Than"
},
{
"value": "lessthan",
"title": "Less Than"
},
{
"value": "in",
"title": "In"
},
{
"value": "notin",
"title": "Not In"
},
{
"value": "like",
"title": "Like"
}
],
"maxLength": 1024
},
"value": {
"title": "Value",
"description": "A single value to which the condition is applied. Value is used when the condition is one of 'Equals', 'Not Equals', 'Greater Than', or 'Less Than'",
"type": "string",
"maxLength": 1024
},
"value_list": {
"title": "Values",
"description": "A list of multiple values to which the condition is applied. Values are used when the condition is either 'In' or 'Not In'",
"type": "array",
"items": {
"type": "string",
"maxLength": 1024
}
}
}
}
},
"summary_value": {
"type": "string",
"maxLength": 1024
}
}
}
}
}
},
"security_configuration": {
"title": "Security Configuration",
"type": "object",
"properties": {
"security_admin_domain": {
"title": "Domain",
"description": "Microsoft Defender admin domain used to authenticate.",
"type": "string",
"maxLength": 1024
}
}
},
"email_configuration": {
"title": "Email Configuration",
"type": "object",
"properties": {
"exchange_admin_domain": {
"title": "Domain",
"description": "Microsoft Exchange admin domain used to authenticate.",
"type": "string",
"maxLength": 1024
}
}
},
"advanced_settings": {
"title": "Advanced Settings",
"type": "object",
"properties": {
"max_rendered_template_size": {
"title": "Maximum Rendered Template Size",
"description": "The maximum allowed size of any rendered template for all models for all managed drivers. Size in bytes, so 900000000 is 900MB. Only set this value if the amount of data returned when using the default value is causing an error. The default value used if this is not set will be 900MB.",
"type": "string",
"maxLength": 1024
},
"CsOnlineUser_page_size": {
"title": "MS Teams CsOnlineUser page size",
"description": "The page size for the msteamsonline/CsOnlineUser device model. Only set this value if the amount of data returned when using the default value is causing an error. The default value used if this is not set will be 120000.",
"type": "string",
"maxLength": 1024
},
"Number_page_size": {
"title": "MS Teams Number page size",
"description": "The page size for the msteamsonline/Number device model. The default value is 1000 when left empty. Only set this value lower if the amount of data returned, when using the default maximum value of 1000, is causing an error.",
"type": "string",
"maxLength": 1024
},
"msol_user_api_page_size": {
"title": "MS 365 MsolUser page size",
"description": "Controls the number of records retrieved at a time from the device/msgraph/MSOLUser related API. Leaving it blank uses a default of 999 for optimal performance. Only modify this value if you encounter sync errors (e.g., 'Template output exceeded memory limit'), where you can specify a smaller value to resolve the issue. Note that reducing the value may affect sync performance, so use the largest value that doesn't cause errors.",
"type": "string",
"maxLength": 1024
},
"groups_api_page_size": {
"title": "MS 365 Group page size",
"description": "Governs the number of records fetched at once from the device/msgraph/Group related APIs. When left empty, it defaults to 999 for efficient performance. Adjust this value only if you encounter synchronization errors, like ('Template output exceeded memory limit.'). You can specify a smaller value to resolve errors, but be aware that reducing the value may impact sync performance, so use the largest suitable page size.",
"type": "string",
"maxLength": 1024
},
"auto_filter_teams_users": {
"title": "Auto filter Teams users",
"description": "Add a default filter to all CsOnlineUser syncs to only return records which match MsolUsers in the cache",
"type": "boolean",
"default": false
}
}
},
"outbound_internet_proxy_settings": {
"title": "Outbound Internet Proxy Settings",
"type": "object",
"properties": {
"outbound_proxy_address": {
"title": "Proxy address",
"description": "Proxy address (RFC 3986 compliant)",
"type": "string",
"maxLength": 255
},
"outbound_proxy_username": {
"title": "Proxy username",
"description": "Proxy username",
"type": "string",
"maxLength": 255
},
"outbound_proxy_password": {
"title": "Proxy password",
"description": "Proxy password",
"type": "string",
"maxLength": 255,
"is_password": true,
"store_encrypted": true
}
}
},
"shadow": {
"title": "Shadow",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"title": "Name",
"type": "string",
"maxLength": 1024,
"required": true,
"readonly": false,
"is_password": false,
"displayable": false
}
}
},
"maxItems": 1
}
},
"schema_version": "1.3"
}
| Task | Call | URL | Parameters | Response |
|---|---|---|---|---|
| Get the GUI Add form. | GET | /api/relation/MicrosoftTenant/add/ |
|
The GUI Add form of relation/MicrosoftTenant as JSON |
The API call to the /add/ URL can only be made from a hierarchy that allows the model type to be added. The actions in the response shows the url for the POST API call to create an instance.
| Task | Call | URL | Parameters | Payload |
|---|---|---|---|---|
| Create | POST | /api/relation/MicrosoftTenant | hierarchy=[hierarchy] |
|
tool/Transaction/[trans pkid]to inspect the created resource and its instance pkid.
| Task | Call | URL | Parameters | Payload |
|---|---|---|---|---|
| Bulk delete [pkid1],[pkid2]... | DELETE | /api/relation/MicrosoftTenant/ | hierarchy=[hierarchy] | {"hrefs":["/api/relation/MicrosoftTenant/[pkid1]", "/api/relation/MicrosoftTenant/[pkid2]", ...]} |
GET http://[host-proxy]/api/relation/MicrosoftTenant/?hierarchy=[hierarchy]&format=json
| Task | Call | URL | Parameters | Payload |
|---|---|---|---|---|
| Get a selected [export_format] of the schema and instances [pkid1], [pkid2],... of relation/MicrosoftTenant; optionally with tag_version at [version] and Configuration Template as [configtemplate]. | POST | /api/relation/MicrosoftTenant/export/ |
|
{ "hrefs":["/api/relation/MicrosoftTenant/[pkid1]", "/api/relation/MicrosoftTenant/[pkid2]",...]}} |
For export_format=json, the response is a time stamped zip file of data in JSON as in the system database. Item properties such as strings that are empty or Boolean values that are not set, are not included. The filename in the response is of the format as the example:
Content-Disposition: attachment; filename=export_2013-05-17_14:20:19.186444.json.zip
Content-Language:en
Content-Type:application/x-zip
For export_format=raw_xlsx, the response is a MS Excel spreadsheet with columns corresponding to the JSON format export and a response filename format:
Content-Disposition: attachment; filename=<resource_type>_<resource_name>_exportedsheet_CCYY-MM-DD_HH-MM-SS.xlsx
Content-Language:en
Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
For export_format=xlsx, the response is a MS Excel spreadsheet, arranged by any Field Display Policies that apply. The columns correspond with those of a Bulk Load Template export sheet. The response filename format is:
Content-Disposition: attachment; filename=<resource_type>_<resource_name>_exportedsheet_formatted_CCYY-MM-DD_HH-MM-SS.xlsx
Content-Language:en
Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
The XLSX format can be used to bulk load instances of relation/MicrosoftTenant and the JSON format can be used to import instances of relation/MicrosoftTenant.
GET http://[host-proxy]/api/relation/MicrosoftTenant/?hierarchy=[hierarchy]
| Task | Call | URL | Parameters | Response |
|---|---|---|---|---|
| Get a compressed format of the Bulk Load spreadsheet template for relation/MicrosoftTenant | POST | /api/relation/MicrosoftTenant/export_bulkload_template/ |
|
The response is an attachment of the format: filetype_bulkloadsheet.xlsx.gz |
| Task | Call | URL | Parameters | Response |
|---|---|---|---|---|
| Configuration Template | GET | /api/relation/MicrosoftTenant/configuration_template/ | hierarchy=[hierarchy] |
|
POST http://[host-proxy]/api/data/ConfigurationTemplate/?hierarchy=[hierarchy]
| Task | Call | URL | Parameters | Response |
|---|---|---|---|---|
| Field Display Policy | GET | /api/relation/MicrosoftTenant/field_display_policy/ | hierarchy=[hierarchy] |
|
POST http://[host-proxy]/api/data/FieldDisplayPolicy/?hierarchy=[hierarchy]
| Task | Call | URL | Parameters | Response |
|---|---|---|---|---|
| List | GET | /api/relation/MicrosoftTenant/ |
|
The relation/MicrosoftTenant schema and all instances as JSON. |
(The list will return 0 to 3 relation/MicrosoftTenant instances)
{
"pagination": {
"skip": 0,
"limit": 3,
"maximum_limit": 2000,
"total": 0,
"total_limit": null,
"order_by": "name",
"direction": "asc",
"current": "/api/relation/MicrosoftTenant/?skip=0&limit=3&order_by=name&direction=asc&traversal=down"
},
"operations": [
"add",
"get",
"list",
"update",
"remove",
"export",
"configuration_template",
"field_display_policy",
"bulk_update",
"help",
"export_bulkload_template"
],
"meta": {
"model_type": "relation/MicrosoftTenant",
"summary_attrs": [
{
"name": "name",
"title": "Name"
},
{
"name": "description",
"title": "Description"
},
{
"name": "uc_automation",
"title": "UC Automation"
},
{
"name": "uc_assurance",
"title": "UC Monitoring"
},
{
"name": "uc_analytics",
"title": "UC Analytics"
},
{
"name": "security",
"title": "Security"
},
{
"name": "email",
"title": "Email"
},
{
"name": "license_management",
"title": "License Management"
},
{
"name": "meeting_rooms",
"title": "Meeting Rooms"
},
{
"name": "microsoft_application_authentication.tenant_id",
"title": "Tenant ID",
"allow_ordering": false,
"allow_filtering": true
},
{
"name": "advanced_settings.msol_user_api_page_size",
"title": "MS 365 MsolUser page size",
"allow_ordering": false,
"allow_filtering": true
},
{
"name": "advanced_settings.groups_api_page_size",
"title": "MS 365 Group page size",
"allow_ordering": false,
"allow_filtering": true
},
{
"name": "advanced_settings.auto_filter_teams_users",
"title": "Auto filter Teams users",
"allow_ordering": false,
"allow_filtering": true
},
{
"name": "cloud_env_type",
"title": "Cloud Environment Type"
},
{
"name": "hierarchy_friendly_name",
"title": "Located At",
"allow_filtering": true
}
],
"tagged_versions": [],
"tags": [],
"title": "",
"business_key": {},
"api_version": "21.2",
"cached": true,
"references": {
"children": [],
"parent": [
{
"href": "/api/data/HierarchyNode/6t0ggef2c0deab00hb595101",
"pkid": "6t0ggef2c0deab00hb595101"
}
],
"device": [
{
"href": "",
"pkid": ""
}
],
"foreign_key": [],
"self": [
{
"href": "/api/relation/MicrosoftTenant/None/",
"pkid": null
}
]
},
"model_specific_actions": [
"add",
"field_display_policy",
"list",
"update",
"remove",
"export",
"configuration_template",
"help",
"get",
"export_bulkload_template"
],
"schema_version": "1.3",
"actions": [
{
"add": {
"method": "GET",
"class": "add",
"href": "/api/relation/MicrosoftTenant/add/?hierarchy=[hierarchy]",
"support_async": false,
"title": "Add"
}
},
{
"remove": {
"method": "DELETE",
"class": "delete",
"href": "/api/relation/MicrosoftTenant/?hierarchy=[hierarchy]",
"support_async": true,
"title": "Delete"
}
},
{
"export": {
"method": "POST",
"class": "export",
"href": "/api/relation/MicrosoftTenant/export/?hierarchy=[hierarchy]",
"support_async": false,
"title": "Export",
"view": "/api/view/ExportData/add/?auth_token=[authtoken],
"submit": "payload"
}
},
{
"export_bulkload_template": {
"method": "POST",
"class": "bulkload_template",
"href": "/api/relation/MicrosoftTenant/export_bulkload_template/?hierarchy=[hierarchy]",
"support_async": false,
"title": "Export Bulk Load Template"
}
},
{
"configuration_template": {
"method": "GET",
"class": "config",
"href": "/api/relation/MicrosoftTenant/configuration_template/?hierarchy=[hierarchy]",
"support_async": false,
"title": "Configuration Template"
}
},
{
"field_display_policy": {
"method": "GET",
"class": "display_policy",
"href": "/api/relation/MicrosoftTenant/field_display_policy/?hierarchy=[hierarchy]",
"support_async": false,
"title": "Field Display Policy"
}
},
{
"list": {
"method": "GET",
"class": "list",
"href": "/api/relation/MicrosoftTenant/?hierarchy=[hierarchy]",
"support_async": false,
"title": "List"
}
},
{
"help": {
"method": "GET",
"class": "help",
"href": "/api/relation/MicrosoftTenant/help?hierarchy=[hierarchy]",
"support_async": false,
"title": "Help"
}
}
]
},
"resources": []
}
| Task | Call | URL | Parameters | Response |
|---|---|---|---|---|
| Get the on-line Help for relation/MicrosoftTenant. | GET | /api/relation/MicrosoftTenant/help | hierarchy=[hierarchy] | On-line help of Model ref.: relation/MicrosoftTenant as HTML |
| Task | Call | URL | Parameters | Payload |
|---|---|---|---|---|
| Modify | PUT | /api/relation/MicrosoftTenant/[pkid] | hierarchy=[hierarchy] | (For payload specification) |
For Bulk modification, refer to the Bulk Modify section.
| Task | Call | URL | Parameters | Response |
|---|---|---|---|---|
| Delete | DELETE | /api/relation/MicrosoftTenant/[pkid] | hierarchy=[hierarchy] |
| Task | Call | URL | Parameters | Response |
|---|---|---|---|---|
| Get a selected [export_format] of the schema and a single instance with [pkid] of relation/MicrosoftTenant; optionally with tag_version at [version] and Configuration Template as [configtemplate]. | GET | /api/relation/MicrosoftTenant/[pkid]/export |
|
The response is an attachment. Refer to the list below. |
For export_format=raw_xlsx, the response is a "raw" MS Excel spreadsheet with columns corresponding to the JSON format export and a response format:
Content-Disposition: attachment; filename=<resource_type>_<resource_name>_exportedsheet_CCYY-MM-DD_HH-MM-SS.xlsx
Content-Language:en
Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
For export_format=xlsx, the response is a MS Excel spreadsheet, formatted to show all columns and a response format:
Content-Disposition: attachment; filename=<resource_type>_<resource_name>_exportedsheet_formatted_CCYY-MM-DD_HH-MM-SS.xlsx
Content-Language:en
Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
For export_format=json, the response is a time stamped zip file of data in JSON and a response format:
Content-Disposition: attachment; filename=export_2013-05-17_14:20:19.186444.json.zip
Content-Language:en
Content-Type:application/x-zip
The XLSX format can be used to bulk load instances of relation/MicrosoftTenant and the JSON format can be used to import instances of relation/MicrosoftTenant.
For Bulk Export, refer to the Bulk Export section.
| Task | Call | URL | Parameters | Response |
|---|---|---|---|---|
| Get | GET | /api/relation/MicrosoftTenant/[pkid] | hierarchy=[hierarchy] | The relation/MicrosoftTenant instance with [pkid]. |
| Task | Call | URL | Parameters | Response |
|---|---|---|---|---|
| Help | GET | /api/relation/MicrosoftTenant/[pkid]/help | hierarchy=[hierarchy] | The on-line Help for relation/MicrosoftTenant. |
| Task | Call | URL | Parameters | Payload |
|---|---|---|---|---|
| Sync All | POST | /api/relation/MicrosoftTenant/[pkid]/+SyncAll | hierarchy=[hierarchy] | If payload required: |
| Task | Call | URL | Parameters | Payload |
|---|---|---|---|---|
| Sync New Users | POST | /api/relation/MicrosoftTenant/[pkid]/+SyncNewUsers | hierarchy=[hierarchy] | If payload required: |
| Task | Call | URL | Parameters | Payload |
|---|---|---|---|---|
| Test Connection | POST | /api/relation/MicrosoftTenant/[pkid]/+TestConnection | hierarchy=[hierarchy] | If payload required: |