Site template JSON schema
The site template is a list of actions. For more complex actions, such as creating a list, there are also subactions. Each action is specified by a "verb" value. Verb actions are run in the order they appear in the JSON script. Only the verb actions listed here can be used; otherwise, an "unable to handle action" error will be thrown when trying to upload a site script. More actions will be added over time.
The overall JSON structure is specified as follows:
{
"$schema": "schema.json",
"actions": [
...
<one or more verb actions>
...
]
}
Tip
You can view - and reference - the latest schema here: https://developer.microsoft.com/json-schemas/sp/site-design-script-actions.schema.json
Note
Actions can be run more than once on a site. Rerunning actions on the same site with the same parameters will result in an update to the existing schema and not duplication of schema.
addContentTypesFromHub
Use the addContentTypesFromHub verb to sync content types from a content type hub to the site.
Note
Once addContentTypesFromHub is applied on a site, the addContentType subaction on a list will be able to add it to the list by name.
JSON value
ids
: An array of the content type IDs that need to be synced.
Example
{
"verb": "addContentTypesFromHub",
"ids": ["0x01007CE30DD1206047728BAFD1C39A850120"]
}
Create a new SharePoint list
Use the createSPList verb to create a new SharePoint list.
Note
Once createSPList is applied on a site, running the createSPList with the same list name will act as an update to the existing list.
JSON values
listName
: The name of the list.templateType
: Which template to apply to the list. Typically, you would use value 100. The full list of template type values is documented in SPListTemplateType enumeration - but the ones we currently support include:List Template Name Enum Generic List 100 Document Library 101 Survey 102 Links 103 Announcements 104 Contacts 105 Events 106 Tasks 107 Discussion Board 108 PictureLibrary 109 Site Pages 119 Issue Tracking 1100 If you use 101 or 119 and reference the default names ("Documents" or "Site Pages"), you can modify the library created with the template. See example below.
subactions
: An array of actions that run in the order listed to create your list.
Example
{
"verb": "createSPList",
"listName": "Customer Tracking",
"templateType": 100,
"subactions": [
{
"verb": "setDescription",
"description": "List of Customers and Orders"
}
]
},
{
"verb": "createSPList",
"listName": "Documents",
"templateType": 101,
"subactions": [
{
"verb": "setDescription",
"description": "This is a modified default document library"
}
]
}
The subactions array provides additional actions to specify how to construct the list. Subactions are also specified using a verb
value.
setDescription
Sets the description of the list.
JSON value
description
: The description of the new list.
Example
{
"verb": "setDescription",
"description": "List of Customers and Orders"
}
addSPField
Adds a new field.
JSON values
fieldType
: The field type can be set toText
,Note
,Number
,Boolean
,User
, orDateTime
. For other data types, see the addSPFieldXml action.displayName
: The display name of the field.id
: An optional attribute. If provided, specifies the id of the field. It needs to be a unique, randomly generated GUID. Providing a value for this is recommended to ensure the field isn't added multiple times if the script is rerun.internalName
: An optional attribute. If provided, specifies the internal name of the field. If not provided, the internal name is based on the display name.isRequired
: True if this field is required to contain information; otherwise, False.addToDefaultView
: True if the field will be added to the default view; otherwise, False.enforceUnique
: An optional attribute that defaults to False. If True, all values for this field must be unique.
Example
{
"verb": "addSPField",
"fieldType": "Text",
"displayName": "Customer Name",
"isRequired": false,
"id": "c532fcb9-cdb3-45c6-8247-c784dcd58e1a",
"addToDefaultView": true
}
deleteSPField
Deletes a default field that was provided by the selected template type.
JSON value
displayName
: The display name to identify the field to delete.
Example
{
"verb": "deleteSPField",
"displayName": "Modified"
}
addSPFieldXml
Enables defining fields and their elements using Collaborative Application Markup Language (CAML). For reference, see Field element (Field). Providing the ID attribute in the field schemaXml is important in order to prevent the field from being created multiple times if the script is run more than once.
Currently these field constructs can't be designated as site columns nor added to content types. To create site columns with Field XML, use the createSiteColumnXml action.
JSON value
schemaXml
: The CAML block to define the field.addToDefaultView
: True if the field will be added to the default view; otherwise, False.
Example
{
"verb": "addSPFieldXml",
"schemaXml": "<Field ID=\"{596cbd92-36e3-40cc-a910-0f53468ce5e4}\" Type=\"Choice\" DisplayName=\"Project Category\" Required=\"FALSE\" Format=\"Dropdown\" StaticName=\"ProjectCategory\" Name=\"ProjectCategory\"><Default>Operations</Default><CHOICES><CHOICE>Operations</CHOICE><CHOICE>IT</CHOICE><CHOICE>Legal</CHOICE><CHOICE>Engineering</CHOICE></CHOICES></Field>"
}
addSPLookupFieldXml
Enables defining lookup fields and their dependent lists element using Collaborative Application Markup Language (CAML). For reference, see Field element (Field). Providing the ID attribute in the field schemaXml is important in order to prevent the field from being created multiple times if the script is run more than once.
JSON value
schemaXml
: The CAML block to define the field.targetListName
: The name that identifies the list this lookup field is referencing. Provide either this or targetListUrl.targetListUrl
: A web-relative URL that identifies the list this lookup field is referencing. Provide either this or targetListName.addToDefaultView
: True if the field will be added to the default view; otherwise, False.
Example
{
"verb": "addSPLookupFieldXml",
"schemaXml": "<Field Type=\"Lookup\" DisplayName=\"Contoso Project Category\" Required=\"FALSE\" EnforceUniqueValues=\"FALSE\" ShowField=\"Title\" UnlimitedLengthInDocumentLibrary=\"FALSE\" RelationshipDeleteBehavior=\"None\" ID=\"{101f1f89-d667-4c7f-9ebc-76cb5831d0a2}\" StaticName=\"ContosoProjectCategory\" Name=\"ContosoProjectCategory\" />",
"targetListName": "Contoso Project Master"
}
addSiteColumn
Subaction to add a previously defined site column directly to a list (existing or created through the site script).
JSON value
internalName
: The internal name of the site column to add.addToDefaultView
: Optional attribute that defaults to False. If True, the newly added field will also be added to the default view.
Example
{
"verb": "addSiteColumn",
"internalName": "siteColumnUser",
"addToDefaultView": true
}
addSPView
Defines and adds a view to the list. Use this action to specify the desired columns and how you want the list items displayed (using a CAML query). Action properties allow you to specify row limits, and whether the view is paged and recurses over items in nested folders. You can also designate your constructed view as the default.
JSON value
name
: The name of the view.viewFields
: An array of the internal names of the fields in your view.query
: A CAML query string that contains thewhere
clause for the view's query. See CAML schemas.rowLimit
: The row limit of the view.isPaged
: Specifies whether the view is paged.makeDefault
: If True, the view will be made the default for the list; otherwise, False.scope
: An optional setting to specify the scope of the view. For more information, see SPViewScope enumeration.formatterJSON
: An optional setting to specify the JSON formatting for the view.
Example
{
"verb": "addSPView",
"name": "Contoso Projects by Category",
"viewFields":
[
"ID",
"Title",
"siteColumnUser",
"ProjectCategory"
],
"query": "<OrderBy><FieldRef Name=\"ProjectCategory\" /><FieldRef Name=\"siteColumnUser\" Ascending=\"FALSE\" /></OrderBy>",
"rowLimit": 100,
"isPaged": true,
"makeDefault": true
}
removeSPView
Removes a view from a list. This action can also be used to remove a view applied by the site template.
JSON value
name
: The name of the view to remove.
Example
{
"verb": "removeSPView",
"name": "All Items"
}
addContentType
Adds a content type to the list. Currently these are limited to the default content types included in the site template or ones defined in a script by using the createContentType action.
Note
Currently we do not support adding enterprise content types.
JSON value
name
: The name of the content type to add.
Example
{
"verb": "addContentType",
"name": "name"
}
removeContentType
Removes a content type that was provided by the selected template type.
JSON value
name
: The name of the content type to remove.
Example
{
"verb": "removeContentType",
"name": "name"
}
setSPFieldCustomFormatter
Sets column formatting for a field. For more information, see Use column formatting to customize SharePoint.
JSON values
fieldDisplayName
: The display name of the field to operate on.formatterJSON
: A JSON object to use as the field CustomFormatter.
Example
In this example, we are formatting a number column as a data bar.
{
"verb": "setSPFieldCustomFormatter",
"fieldDisplayName": "Effort (days)",
"formatterJSON":
{
"debugMode": true,
"elmType": "div",
"txtContent": "@currentField",
"attributes": {
"class": "sp-field-dataBars"
},
"style": {
"width": {
"operator": "?",
"operands": [
{
"operator": ">",
"operands": ["@currentField", "20"]
},
"100%",
{
"operator": "+",
"operands": [
{
"operator": "toString()",
"operands": [
{
"operator": "*",
"operands": ["@currentField",5]
}
]
},
"%"
]
}
]
}
}
}
}
associateFieldCustomizer
Registers field extension for a list field. For more information on these client-side extensions, see Build field customizer tutorial.
JSON values
internalName
: The internal name of the field to operate on.clientSiteComponentId
: The identifier (GUID) of the extension in the App Catalog. This property value can be found in the manifest.json file or in the elements.xml file.clientSiteComponentProperties
: An optional parameter, which can be used to provide properties for the field customizer extension instance.
Example
{
"verb": "createSPList",
"listName": "Custom List with Slider Extension",
"templateType": 100,
"subactions": [
{
"verb": "setDescription",
"description": "Custom list to illustrate SharePoint site scripting"
},
{
"verb": "addSPField",
"fieldType": "Text",
"displayName": "Text Field",
"isRequired": false,
"addToDefaultView": true
},
{
"verb": "addSPField",
"fieldType": "Number",
"displayName": "Number Field",
"internalName": "ElectricSlide",
"addToDefaultView": true,
"isRequired": true
},
{
"verb": "associateFieldCustomizer",
"internalName": "ElectricSlide",
"clientSideComponentId": "35944670-3111-4482-b152-9e9d1sean9f7",
"clientSideComponentProperties": "{\"sampleText\":\"Yes - added by a site template, what?\"}"
}
]
}
associateListViewCommandSet
Associates a ListViewCommandSet to the list
JSON values
title
: The title of the extension.location
: A required parameter to specify where the command is displayed. Options are: ClientSideExtension.ListViewCommandSet.ContextMenu or ClientSideExtension.ListViewCommandSet.CommandBar.clientSideComponentId
: The identifier (GUID) of the extension in the App Catalog. This property value can be found in the manifest.json file or in the elements.xml file.clientSideComponentProperties
: An optional parameter, which can be used to provide properties for the extension instance.
Example
{
"verb": "createSPList",
"listName": "CustomList",
"templateType": 100,
"subactions": [
{
"verb": "setDescription",
"description": "Custom list to illustrate SharePoint site scripting"
},
{
"verb": "addSPField",
"fieldType": "Text",
"displayName": "Text Field",
"isRequired": false,
"addToDefaultView": true
},
{
"verb": "addSPField",
"fieldType": "Number",
"displayName": "Number Field",
"internalName": "ElectricSlide",
"addToDefaultView": true,
"isRequired": true
},
{
"verb": "associateListViewCommandSet",
"title": "HelloWorld",
"location": "ClientSideExtension.ListViewCommandSet.CommandBar",
"clientSideComponentId": "13234283-d6c2-408f-a9ef-31a920c8ae78",
"clientSideComponentProperties": "{\"sampleText\":\"added by a site template\"}"
}
]
}
setTitle
Renames the list. To create a new list with a specific name, instead of using setTitle use the listName
parameter in the CreateSPList
action.
Note
Using setTitle
will rename the list, preventing the list from updating if the site template is reapplied.
JSON value
title
: The title of the new list.
Example
{
"verb": "setTitle",
"title": "Customers and Orders"
}
Define a new site column
Use the createSiteColumn
verb to define a new site column that can then be associated to a list directly or by using the addContentType action.
JSON value
fieldType
: The type of column to add. Supported values - like SPField - are Text, Note, Number, Boolean, User, and DateTime. For other data types, refer to the addSPFieldXml script action.internalName
: The internal name of the site column.displayName
: The display name of the site column.isRequired
: True if this field is required to contain information; otherwise, False.id
: An optional attribute. If provided, specifies the id of the field. It needs to be a unique, randomly generated GUID. Providing a value for this is recommended to ensure the field isn't added multiple times if the script is rerun.group
: An optional attribute to designate the column group.enforceUnique
: An optional attribute that defaults to False. If True, all values for this field must be unique.
Example
{
"verb": "createSiteColumn",
"fieldType": "User",
"internalName": "siteColumn4User",
"displayName": "Project Owner",
"isRequired": false,
"id": "181c4370-cdae-471b-9499-730046e55b75"
}
Use the createSiteColumnXml
verb to define a new site column for those complex data types not supported by createSiteColumn. These columns can then be associated to a list directly or by using the addContentType action. Providing the ID attribute in the field schemaXml is important in order to prevent the field from being created multiple times if the script is run more than once.
JSON value
schemaXml
: The CAML block to define the field.pushChanges
: Indicates whether this change should be pushed to lists that already reference this field. Defaults to True.
Example
{
"verb": "createSiteColumnXml",
"schemaXml": "<Field ID=\"{82581bd1-356f-4206-8ff7-a3b6ad1f5553}\" Type=\"Choice\" DisplayName=\"Project Status\" Required=\"FALSE\" Format=\"Dropdown\" StaticName=\"ProjectStatus\" Name=\"ProjectStatus\"><Default>In Progress</Default><CHOICES><CHOICE>In Progress</CHOICE><CHOICE>In Review</CHOICE><CHOICE>Done</CHOICE><CHOICE>Has Issues</CHOICE></CHOICES></Field>"
}
Define a new content type
Use createContentType to define a new content type that can then be associated to a list by using the addContentType action.
JSON value
Note
When referencing the content type ID, only one of the three references are required - ID, parentName, or parentId.
name
: The name of the content type to create.description
: The optional description of the content type.parentName
: Name of the parent content type.parentId
: ID of the parent content type.id
: ID of the content type.hidden
: Specifies whether the content type is visible or hidden.group
: Group of the content type.subactions
: Specifies subactions to run on the content type. These are used to designate the site columns to add.
Example
{
"verb": "createContentType",
"name": "Contoso Projects",
"description": "custom list content type",
"parentName": "Item",
"hidden": false,
"group": "Contoso",
"subactions":
[
{
"verb": "addSiteColumn",
"internalName": "siteColumn1Text"
},
{
"verb": "addSiteColumn",
"internalName": "siteColumn2Number"
},
{
"verb": "addSiteColumn",
"internalName": "siteColumn3Note"
}
]
}
addSiteColumn
Subaction to add a previously defined site column directly to a content type (existing or created through the site script).
JSON value
internalName
: The internal name of the site column to add.
Example
{
"verb": "addSiteColumn",
"internalName": "siteColumnUser"
}
removeSiteColumn
Subaction to remove a site column from a list or content type.
JSON value
internalName
: The internal name of the site column to remove.
Example
{
"verb": "removeSiteColumn",
"internalName": "siteColumnUser"
}
Add a navigation link
Use the addNavLink
verb to add a new navigation link to the site QuickLaunch or Hub navigation.
JSON values
url
: The URL of the link to add.displayName
: The display name of the link.navComponent
: The component where to add the link, QuickLaunch, Hub, or Footer. The default is QuickLaunch.isWebRelative
: True if the link is web relative; otherwise, False. The default is False.parentDisplayName
: An optional parameter. If provided, it makes this navigation link a child (sub link) of the navigation link with this displayName. If both this and parentUrl are provided, it searches for a link that matches both to be the parent.parentUrl
: An optional parameter. If provided, it makes this navigation link a child (sub link) of the navigation link with this URL. If both this and parentDisplayName are provided, it searches for a link that matches both to be the parent.isParentUrlWebRelative
: An optional parameter. True if the link is web relative; otherwise, False. The default value is False.
Example
Note
If you add a link to a nested site item such as a list, be sure to add the path reference from the root.
{
"verb": "addNavLink",
"url": "/Customer Event Collateral",
"displayName": "Event Collateral",
"navComponent":"Hub",
"isWebRelative": true
},
{
"verb": "addNavLink",
"url": "/Lists/Project Activities",
"displayName": "Project Activities",
"isWebRelative": true
},
{
"verb": "addNavLink",
"url": "https://learn.microsoft.com/sharepoint/dev/declarative-customization/site-design-overview",
"displayName": "SharePoint Site Design Overview",
"parentDisplayName": "Documents"
},
{
"verb": "addNavLink",
"url": "https://learn.microsoft.com/sharepoint/dev/declarative-customization/site-design-json-schema#add-a-navigation-link",
"displayName": "About Site Footer",
"navComponent":"Footer"
},
{
"verb": "addNavLink",
"url": "",
"displayName": "Linkless Heading",
"isWebRelative": false
}
Remove a navigation link
Use the removeNavLink
verb to remove a navigation link from the site.
JSON values
url
: The URL of the link to remove.displayName
: The display name of the link.navComponent
: The component where to remove the link from, QuickLaunch, Hub, or Footer. The default is QuickLaunch.isWebRelative
: True if the link is web relative; otherwise, False.
Example
Note
This action can be used to remove site links added by the collaboration and communication site templates (for example, "home", "documents", "pages", and "conversations").
{
"verb": "removeNavLink",
"displayName": "Home",
"isWebRelative": true
},
{
"verb": "removeNavLink",
"displayName": "Pages",
"isWebRelative": true
},
{
"verb": "removeNavLink",
"displayName": "Conversations",
"isWebRelative": true
},
{
"verb": "removeNavLink",
"url": "/_layouts/15/groupstatus.aspx?Target=TEAM",
"displayName": "Teams",
"isWebRelative": true
}
Handle special characters
The sites created in other languages than English may contain special characters. Use UTF-8 encoding to read the JSON content containing special characters.
Get-Content '<Folder_location_to_site_script>\site-script.json' -Raw -Encoding UTF8
Apply a theme
Use the applyTheme
verb to add a custom theme to the site. For more information about how to construct and upload these themes, see SharePoint site theming. This site action only works for applying custom themes; to apply one of our in-product SharePoint themes, create a copy as a custom one and reference that one.
Note
This action is automatically blocked for channel sites.
JSON value
themeName
: The name of the theme to apply.
Example
{
"verb": "applyTheme",
"themeName": "Blue Yonder"
}
Set branding properties
Use the setSiteBranding
verb to specify the navigation layout, the header layout, and header background.
Note
Setting the navigation layout only works on the communication site template and for the hub navigation. This action is automatically blocked for channel sites.
JSON value
navigationLayout
: Specify the navigation layout as Cascade or MegamenuheaderLayout
: Specify the header layout as Standard or CompactheaderBackground
: Specify the header background as None, Neutral, Soft, or StrongshowFooter
: Specify whether site footer should show or not
Example
{
"verb": "setSiteBranding",
"navigationLayout": "Megamenu",
"headerLayout": "Compact",
"headerBackground": "Strong",
"showFooter": true
}
Set a site logo
Use the setSiteLogo
verb to specify a logo for your site.
Note
This action only works on the communication site template (68).
JSON value
url
: The URL of the logo image to use.
Example
{
"verb": "setSiteLogo",
"url": "/Customer Event Collateral/logo.jpg"
}
Join a hub site
Note
This action is automatically blocked for channel sites.
Use the joinHubSite
verb to join the site to a designated hub site.
JSON value
hubSiteId
: The ID of the hub site to join.name
: An optional string specifying the name of the hub site.
Example
Note
To get the hubSiteId
, sign in to a site by using the Connect-PnPOnline cmdlet, and then run:
$hubSiteName = "My Hub Site"
Get-PnPHubSite | Where-Object { $_.Title -eq $hubSiteName }
This returns information about the Hub Site named $hubSiteName. The hubSiteId is returned as the SiteId.
{
"verb": "joinHubSite",
"hubSiteId": "e337cc17-b355-45d2-8dd4-e056f1bcf6f6"
}
Install an add-in or solution
Use the installSolution
action to install a deployed add-in or SharePoint Framework solution from the tenant App Catalog.
Example
Note
To get the solution ID, sign in to a site by using the Connect-PnPOnline cmdlet, and then run Get-PnPApp. This returns a list of your deployed solutions. For multi-geo tenants, use the Product ID after setting up the solution in each geo location. Obtain the Product ID by uplaoding the solution to the app catalog or in the solution's definition.
{
"verb": "installSolution",
"id": "d40e4edc-a6da-4cd8-b82d-bba970976803"
}
Register an extension
Use the associateExtension
action to register a deployed SharePoint Framework extension from the tenant App Catalog.
Note
For more details on how to create and configure a SharePoint Framework extension, check out: Overview of SharePoint Framework Extensions.
JSON values
title
: The title of the extension in the App Catalog.location
: Used to specify the extension type. If it's used to create commands, then where the command would be displayed; otherwise this should be set to ClientSideExtension.ApplicationCustomizer.clientSideComponentId
: The identifier (GUID) of the extension in the App Catalog. This property value can be found in the manifest.json file or in the elements.xml file.clientSideComponentProperties
: An optional parameter, which can be used to provide properties for the extension instance.registrationId
: An optional parameter, which indicates the type of the list the extension is associated to (if it's a list extension).registrationType
: An optional parameter, which should be specified if the extension is associated with a list.scope
: Indicates whether the extension is associated with aWeb
or aSite
.
Example
{
"verb": "associateExtension",
"title": "SPFXApplicationCustomizer Example",
"location": "ClientSideExtension.ApplicationCustomizer",
"clientSideComponentId": "40d64749-a6e5-4691-b440-1e32fb6sean5",
"scope": "Web"
}
Activate a Feature
Use the activateSPFeature
action to activate a SharePoint feature.
JSON values
featureId
: The ID of the feature to activate (GUID).scope
: Indicates whether the feature is associated with aweb
or asite
.
Example
To enable the web scoped feature that allows for Events Lists to be created (feature ID 00bfea71-ec85-4903-972d-ebe475780106):
{
"verb": "activateSPFeature",
"featureId": "00bfea71-ec85-4903-972d-ebe475780106",
"scope": "web"
}
Trigger a flow
Use the triggerFlow
verb to kick off a custom flow.
Tip
The article Calling Power Automate from a site script provides an end-to-end example.
JSON values
url
: A trigger URL of the flow.name
: The name of the flow.parameters
: An optional set of parameters to pass into the flow.
Example
{
"verb": "triggerFlow",
"url": "<A trigger URL of the Flow.>",
"name": "Record and tweet site creation event",
"parameters": {
"event": "Microsoft Event",
"product": "SharePoint"
}
}
Configure regional settings
Note
This action is automatically blocked for channel sites.
Use the setRegionalSettings
action to configure the regional settings of the site (/_layouts/15/regionalsetng.aspx).
JSON values
timeZone
: A number specifying the time zone. For a list of permissible values, see SPRegsionalSettings.TimeZoneslocale
: A number specifying the culture LCID. For a list of permissible values, see Microsoft Locale ID ValuessortOrder
: A number specifying the sort order. For a list of permissible values, see SPRegionalSettings.CollationhourFormat
: Specifies whether the site should use 12-hour or 24-hour time format.
Example
{
"verb": "setRegionalSettings",
"timeZone": 2, /* Greenwich Mean Time */
"locale": 1050, /* Croatia */
"sortOrder": 6, /* Croatian */
"hourFormat": "24"
}
Add users (principals) to SharePoint Groups
Note
This action is automatically blocked for channel sites.
Use the addPrincipalToSPGroup
action to manage addition of users and groups to select default SharePoint groups. For more information, see Understanding SharePoint Groups. This action can be used for licensed users, security groups, and Microsoft 365 groups.
JSON values
principal
: A required parameter to specify the name of the principal (user or group) to add to the SharePoint group.group
: A required parameter to specify the SharePoint group to add the principal to.
Example
Note
This action currently only supports the Visitors (permission level: read), Members (permission level: contribute or edit, depending on the site template), and Owners (permission level: full control) groups. Principals must be added individually.
{
"verb": "addPrincipalToSPGroup",
"principal": "sean@contosotravel.onmicrosoft.com", /* user */
"group": "Owners"
},
{
"verb": "addPrincipalToSPGroup",
"principal": "travelops", /* sg */
"group": "Owners"
},
{
"verb": "addPrincipalToSPGroup",
"principal": "itexecutives", /* mail-enabled sg */
"group": "Members"
},
{
"verb": "addPrincipalToSPGroup",
"principal": "Adventure@contosotravel.onmicrosoft.com", /* o365 group */
"group": "Visitors"
}
Manage guest access
Note
This action is automatically blocked for channel sites.
Use the setSiteExternalSharingCapability
action to manage guest access. For more information, see Manage external sharing for your SharePoint Online environment.
JSON values
capability
: A required parameter to specify the sharing option for the site collection. The four options are:Disabled
,ExistingExternalUserSharingOnly
,ExternalUserSharingOnly
, andExternalUserAndGuestSharing
.
Example
{
"verb": "setSiteExternalSharingCapability",
"capability": "Disabled"
}