Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation Restructure #10025

Draft
wants to merge 11 commits into
base: main
Choose a base branch
from
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,21 @@ With pass-through billing, consumption-based charges are billed directly to the

A new container type will be created using **SharePoint Online Management Shell**:


1. Download and install the [latest version of SharePoint Online Management Shell](https://www.microsoft.com/download/details.aspx?id=35588)
1. Open SharePoint Online Management Shell from **Start** screen, type **sharepoint**, and then select **SharePoint Online Management Shell**.
1. Connect to SPO service using `Connect-SPOService` cmdlet by providing admin credentials associated with tenancy. For information on [how to use Connect-SPOService](/powershell/module/sharepoint-online/connect-sposervice), refer the linked documentation. Download and install the [latest version of SharePoint Online Management Shell](https://www.microsoft.com/download/details.aspx?id=35588)
1. Open SharePoint Online Management Shell from **Start** screen, type **sharepoint**, and then select **SharePoint Online Management Shell**.
1. Connect to SPO service using `Connect-SPOService` cmdlet by providing admin credentials associated with tenancy. For information on [how to use Connect-SPOService](/powershell/module/sharepoint-online/connect-sposervice), refer the linked documentation.

### Tenant requirements
- An active instance of SharePoint is required in your Microsoft 365 tenant.
- Users who will be authenticating into SharePoint Embedded Container Types and Containers must be in Entra ID (Members and Guests)
- NOTE: An Office license is not required to collaborate on Microsoft Office documents stored in a container.

### Roles and Permissions

- The admin who sets up the billing relationship for SharePoint Embedded needs to have owner or contributor permissions on Azure subscription.
- The user who sets up the billing relationship for SharePoint Embedded needs to have owner or contributor permissions on Azure subscription.
- Admin needs to have a SharePoint Embedded Administrator or Global Admin role to operate billing cmdlets.

### Azure Subscription
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,7 @@ ms.localizationpriority: high

SharePoint Embedded employs a pay-as-you-go (PAYG) billing model through an Azure subscription. Billing is determined by how much data in GB you store in SharePoint Embedded, transactions used to access and modify the container and container contents, and data that is egressed from SharePoint Embedded platform. Each of these factors contributes to the overall cost, ensuring that you only pay for the resources and services you use. You can view this usage and billing details in the [Azure Cost Management](https://ms.portal.azure.com/). Both Standard Billing container type and Pass-through Billing container type will use the same meters.

SharePoint Embedded has three billing meters as shown. Refer to the [product page](https://adoption.microsoft.com/en-us/sharepoint/embedded/) for pricing details

|                 SharePoint Embedded Service Meters                          |                     Meter Unit                      |
| :--------------------------------: | :----------: |
| Storage | $/GB |
| API Transactions | $/Transactions |
| Egress | $/GB |
SharePoint Embedded has three billing meters as shown. Refer to the [product page](https://adoption.microsoft.com/en-us/sharepoint/embedded/) for pricing details.

## Storage

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ ms.localizationpriority: high

## Overview

Organizations that create file management applications with the help of SharePoint Embedded are referred to as Developer Ecosystem and the persona responsible for the management of the applications is called the developer administrator. Developer administrators can perform various administrative actions on the SharePoint Embedded applications created and on the container types, the blueprint for the containers that hold the content of instances of the application. They can also create and manage trial container types to get started with the SharePoint Embedded experience, attach billing profiles to their application, etc. In this article, we describe the enterprise manageability features that are supported in the developer administrator role.
Organizations that use SharePoint Embedded for file management are included in the Developer Ecosystem, which is overseen by developer administrators. These administrators are responsible for managing applications and the container types that have containers, the foundation of an application that needs to store content. Additionally, they can connect billing profiles to their applications. This article describes the management features available to developer administrators.

## Developer Admin Role

Expand All @@ -17,7 +17,7 @@ Organizations that create file management applications with the help of SharePoi
>
> Global Administrators can continue to execute SharePoint Embedded container cmdlets.

A Microsoft 365 SharePoint Embedded Administrator serves as the developer admin. Global Administrators in Microsoft 365 can assign users the SharePoint Embedded Administrator. The Global Administrator role already has all the permissions of the SharePoint Embedded Administrator role. The SharePoint Embedded Role is available in Microsoft Entra and Microsoft 365 Admin Center. For information on [SharePoint Embedded Administrator](../adminrole.md) role.
A Microsoft 365 SharePoint Embedded Administrator serves as the developer admin. Global Administrators in Microsoft 365 can assign users the SharePoint Embedded Administrator role. The Global Administrator role already has all the permissions of the SharePoint Embedded Administrator role. The SharePoint Embedded Role is available in Microsoft Entra and Microsoft 365 Admin Center. For information on [SharePoint Embedded Administrator](../adminrole.md) role.

The following are some of the container-specific commands actions currently supported on PowerShell:

Expand All @@ -26,10 +26,11 @@ The following are some of the container-specific commands actions currently supp
- Creation of Standard container type with direct to customer billing
- Creation of Trial container type
- Container type management
- Viewing of container types in the developer tenant
- Editing properties of a container type in the developer tenant
- Configuration properties of a container type in the developer tenant
- Viewing of container types in the tenant
- Editing properties of a container type in the tenant
- Configuration properties of a container type in the tenant
- Manage billing of applications/ container types for standard billing
- Removing a container type in the tenant

### Billing responsibilities of the developer admin

Expand All @@ -54,7 +55,7 @@ To get started using PowerShell to manage SharePoint Embedded, you have to insta

### Creation of container types

The developer administrator can create a container type using PowerShell cmdlets. Each container type is associated to an application ID, a one to one mapping, and an Azure subscription ID. The developer administrator can also create Trial container types that have a validity of 30 days to test out SharePoint Embedded. The following commands can be used to create SharePoint Embedded container types on the developer admin’s tenant:
The developer administrator can create a container type using PowerShell cmdlets. Each container type is associated to an application ID, a one to one mapping, and an Azure subscription ID. The developer administrator can also create Trial container types that have a validity of 30 days to test out SharePoint Embedded. The following [commands](https://learn.microsoft.com/en-us/powershell/module/sharepoint-online/new-spocontainertype?view=sharepoint-ps) can be used to create SharePoint Embedded container types on the developer admin’s tenant:

Standard billing container type:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Use the Microsoft Search API in Microsoft Graph to search SharePoint Embedded co

## Example 1: Search containers by container type

This example queries all containers by the specified container type with the SharePoint Embedded application opted out from content discoverability on Microsoft 365. The response includes all container instances of the specified container type in the tenant.
This example queries all containers by the specified container type with the SharePoint Embedded application opted out from content discoverability on Microsoft 365. The response includes all container instances, `drive`, of the specified container type in the tenant.

### Request

Expand Down Expand Up @@ -507,9 +507,9 @@ Content-type: application/json
]
}
```
## Example 7: Search for content with specific content properties in response body
## Example 7: Search for content with specific content properties in response body and sort the results

This example queries container content by specific words and requires the response to include all specified attributes on the content.
This example queries container content by specific words and requires the response to include all specified attributes on the content. Properties that are [sortable](https://learn.microsoft.com/en-us/sharepoint/technical-reference/crawled-and-managed-properties-overview) can be used to sort the results.

### Request

Expand Down Expand Up @@ -545,7 +545,13 @@ Content-Type: application/json
"lastModifiedBy",
"fileSystemInfo",
"fileSystemInfo"
]
],
"sortProperties": [
{
"name": "Created",
"isDescending": false
}
]
}
]
}
Expand Down Expand Up @@ -629,7 +635,210 @@ Content-type: application/json
}
```

## Known Limitation
## Known Limitations

- Search requests run in the context of the signed-in user. Search results are only scoped to enforce any access control applied to the items by the user. For example, search results will include all container or container content matching the search criteria and accessible by the user regardless of whether the SharePoint Embedded application is authorized to access. You should specify the desired container type by including the ContainerTypeId as part of your **queryString** when searching for containers or container content to ensure search results are properly scoped.
- For your application to access the containers or container content in search results, it must have access permissions to the corresponding container types.


# Enumerate (filter) SharePoint Embedded content


Content can also be enumerated using URL parameters to return specific content in SharePoint Embedded containers. This does not use the search API to retrieve items. See the [enumerate query parameter](https://learn.microsoft.com/en-us/graph/filter-query-parameter?tabs=http) reference.

## Example 1: enumerate content by a specific column property and view the results

This example enumerates the specified container content by the column property that is on the item.

### Request

```HTTP
GET https://graph.microsoft.com/v1.0/drives/{{ContainerID}}/items?$filter=startswith(listitem/fields/{{ColumnProperty}}, '{{Value}}')&$expand=listitem($expand=fields)

```

### Response

```HTTP
HTTP/1.1 200 OK
Content-type: application/json

{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#drives('b%21CORq-a8orUGIrd3_z9t1_vjCBSeqM3JKhDglEU3DIDvEl-Hms0qoQ7QCWYNQfGOF')/items(listItem(fields()))",
"value": [
{
"@odata.etag": "\"{B8051D89-836E-4B8E-BD2B-7634BAC92825},21\"",
"@microsoft.graph.downloadUrl": "https://<tenant>.sharepoint.com/contentstorage/CSP_f96ae408-28af-41ad-88ad-ddffcfdb75fe/_layouts/15/download.aspx?UniqueId=b8051d89-836e-4b8e-bd2b-7634bac92825&Translate=false&tempauth=v1.eyJzaXRlaWQiOiJmOTZhZTQwOC0yOGFmLTQxYWQtODhhZC1kZGZmY2ZkYjc1ZmUiLCJhcHBfZGlzcGxheW5hbWUiOiJTUEUtQmFzZWJhbGwiLCJhcHBpZCI6ImZiN2NmNTIwLWNiMzMtNDViZi1hMjM4LWFlNTFkMzE2NjY1ZiIsImF1ZCI6IjAwMDAwMDAzLTAwMDAtMGZmMS1jZTAwLTAwMDAwMDAwMDAwMC9wdWNlbGlrZW50ZXJwcmlzZS5zaGFyZXBvaW50LmNvbUAxNTNhNmViZS1mZjYyLTRiY2UtYjFiYy1hMWVkYTNiYzY2NDUiLCJleHAiOiIxNzMxNjE3MDE3In0.CgoKBHNuaWQSAjY5EgsIzpKzp9W7wj0QBRoNMjAuMTkwLjEzNS40MioscW54cjFGalBneHh2N1lGTkp1dUpxTFZWdFFIS1hOQ2RlQ3EvUUk2aHhlcz0wuAE4AUIQoWPmC1YwAABF4iHcgCWrfkoQaGFzaGVkcHJvb2Z0b2tlbnIpMGguZnxtZW1iZXJzaGlwfDEwMDM3ZmZlOWE5NDg5ZGRAbGl2ZS5jb216ATKCARIJvm46FWL_zksRsbyh7aO8ZkWSAQVTdGV2ZZoBB1B1Y2VsaWuiASdzdGV2ZUBwdWNlbGlrZW50ZXJwcmlzZS5vbm1pY3Jvc29mdC5jb22qARAxMDAzN0ZGRTlBOTQ4OUREsgFyY29udGFpbmVyLnNlbGVjdGVkIGFsbGZpbGVzLnJlYWQgYWxsZmlsZXMud3JpdGUgY29udGFpbmVyLnNlbGVjdGVkIGFsbHNpdGVzLnJlYWQgYWxscHJvZmlsZXMucmVhZCBhbGxwcm9maWxlcy5yZWFkyAEB.tfaYgtjhQxMctJeHUWb9RU7CChHXqFHT0FaM9Dt7J9I&ApiVersion=2.1",
"createdDateTime": "2024-09-20T16:46:00Z",
"eTag": "\"{B8051D89-836E-4B8E-BD2B-7634BAC92825},21\"",
"id": "01UELPCREJDUC3Q3UDRZF32K3WGS5MSKBF",
"lastModifiedDateTime": "2024-11-01T08:14:28Z",
"name": "ClaimExample-1.docx",
"size": 2299607,
"webUrl": "https://<tenant>.sharepoint.com/contentstorage/CSP_f96ae408-28af-41ad-88ad-ddffcfdb75fe/_layouts/15/Doc.aspx?sourcedoc=%7BB8051D89-836E-4B8E-BD2B-7634BAC92825%7D&file=ClaimExample-1.docx&action=default&mobileredirect=true",
"cTag": "\"c:{B8051D89-836E-4B8E-BD2B-7634BAC92825},5\"",
"commentSettings": {
"commentingDisabled": {
"isDisabled": false
}
},
"createdBy": {
"application": {
"displayName": "SPEContainerType",
"id": "fb7cf520-cb33-45bf-a238-ae51d316665f"
},
"user": {
"displayName": "SharePoint App"
}
},
"lastModifiedBy": {
"application": {
"displayName": "SPEContainerType",
"id": "fb7cf520-cb33-45bf-a238-ae51d316665f"
},
"user": {
"displayName": "Steve Pucelik",
"email": "Steve@<tenant>.onmicrosoft.com"
}
},
"parentReference": {
"driveId": "b!CORq-a8orUGIrd3_z9t1_vjCBSeqM3JKhDglEU3DIDvEl-Hms0qoQ7QCWYNQfGOF",
"driveType": "other",
"id": "01UELPCRF6Y2GOVW7725BZO354PWSELRRZ",
"path": "/drives/b!CORq-a8orUGIrd3_z9t1_vjCBSeqM3JKhDglEU3DIDvEl-Hms0qoQ7QCWYNQfGOF/root:",
"sharepointIds": {
"listId": "e6e197c4-4ab3-43a8-b402-5983507c6385",
"listItemUniqueId": "c4782251-bdd3-4766-a747-b2a2f51c3a00",
"siteId": "f96ae408-28af-41ad-88ad-ddffcfdb75fe",
"siteUrl": "https://<teannt>.sharepoint.com/contentstorage/CSP_f96ae408-28af-41ad-88ad-ddffcfdb75fe",
"tenantId": "153a6ebe-ff62-4bce-b1bc-a1eda3bc6645",
"webId": "2705c2f8-33aa-4a72-8438-25114dc3203b"
}
},
"file": {
"mimeType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"hashes": {
"quickXorHash": "DMzi0kCsuukcHlMXiPX9tmTCXtA="
}
},
"fileSystemInfo": {
"createdDateTime": "2024-09-20T16:46:00Z",
"lastModifiedDateTime": "2024-11-01T08:14:28Z"
},
"shared": {
"scope": "unknown"
},
"[email protected]": "https://graph.microsoft.com/v1.0/$metadata#drives('b%21CORq-a8orUGIrd3_z9t1_vjCBSeqM3JKhDglEU3DIDvEl-Hms0qoQ7QCWYNQfGOF')/items('01UELPCREJDUC3Q3UDRZF32K3WGS5MSKBF')/listItem(fields())/$entity",
"listItem": {
"@odata.etag": "\"{B8051D89-836E-4B8E-BD2B-7634BAC92825},21\"",
"createdDateTime": "2024-09-20T16:46:00Z",
"eTag": "\"{B8051D89-836E-4B8E-BD2B-7634BAC92825},21\"",
"id": "23",
"lastModifiedDateTime": "2024-11-01T08:14:28Z",
"webUrl": "https://<tenant>.sharepoint.com/contentstorage/CSP_f96ae408-28af-41ad-88ad-ddffcfdb75fe/_layouts/15/Doc.aspx?sourcedoc=%7BB8051D89-836E-4B8E-BD2B-7634BAC92825%7D&file=ClaimExample-1.docx&action=default&mobileredirect=true",
"createdBy": {
"application": {
"displayName": "SPEContainerType",
"id": "fb7cf520-cb33-45bf-a238-ae51d316665f"
},
"user": {
"displayName": "SharePoint App"
}
},
"lastModifiedBy": {
"application": {
"displayName": "SPEContainerType",
"id": "fb7cf520-cb33-45bf-a238-ae51d316665f"
},
"user": {
"displayName": "Steve Pucelik",
"email": "Steve@M<tenant>.onmicrosoft.com"
}
},
"parentReference": {
"id": "0",
"path": "Document Library",
"siteId": "f96ae408-28af-41ad-88ad-ddffcfdb75fe"
},
"contentType": {
"id": "0x0101004368E78BC3115C4CAD94FEA35E0F9D90",
"name": "Document"
},
"[email protected]": "https://graph.microsoft.com/v1.0/$metadata#drives('b%21CORq-a8orUGIrd3_z9t1_vjCBSeqM3JKhDglEU3DIDvEl-Hms0qoQ7QCWYNQfGOF')/items('01UELPCREJDUC3Q3UDRZF32K3WGS5MSKBF')/listItem/fields/$entity",
"fields": {
"@odata.etag": "\"{B8051D89-836E-4B8E-BD2B-7634BAC92825},21\"",
"id": "23",
"FileLeafRef": "ClaimExample-1.docx",
"<ColumnProperty>": "<Value>",
"ContentType": "Document",
"Created": "2024-09-20T16:46:00Z",
"AuthorLookupId": "1073741822",
"Modified": "2024-11-01T08:14:28Z",
"EditorLookupId": "7",
"_CheckinComment": "",
"LinkFilenameNoMenu": "ClaimExample-1.docx",
"LinkFilename": "ClaimExample-1.docx",
"DocIcon": "docx",
"FileSizeDisplay": "2299607",
"ItemChildCount": "0",
"FolderChildCount": "0",
"_ComplianceFlags": "",
"_ComplianceTag": "",
"_ComplianceTagWrittenTime": "",
"_ComplianceTagUserId": "",
"_CommentCount": "",
"_LikeCount": "",
"_DisplayName": "Confidential \\ Internal only",
"AppAuthorLookupId": "1",
"AppEditorLookupId": "1",
"Edit": "0",
"_UIVersionString": "19.0",
"[email protected]": "#Collection(microsoft.graph.Json)",
"MediaServiceImageTags": []
}
}
}
]
}
```

## Example 2: Enumerate content by a specific column property and Order the results

This example enumerates the specified container content by the column property that is on the item and will order the results by the column specified.

### Request

```HTTP
GET https://graph.microsoft.com/v1.0/drives/{{ContainerID}}/items?$filter=listitem/fields/{{ColumnProperty}} eq '{{Value}}'&$select=id,name,lastModifiedDateTime,size&$expand=listitem($expand=fields)&$orderby=createdDateTime desc

Headers:

Content-Type: application/json
Prefer: HonorNonIndexedQueriesWarningMayFailRandomly
```


> [!NOTE]
>
> When a container has more than 5,000 items and you are using the enumerate method with the OrderBy clause, you must include the following in the header of your request.
>
> Content-Type: application/json
>
> Prefer: HonorNonIndexedQueriesWarningMayFailRandomly



## Example 3: Enumerate content by mulitple column properties and Order the results

This example enumerates the specified container content by the column property you specify and the name of the document (listitem/fields/FileLeafRef) that is on the item and will order the results by the column specified.

### Request

```HTTP
GET https://graph.microsoft.com/v1.0/drives/{{ContainerID}}/items?$filter=listitem/fields/{{ColumnProperty1}} eq '{{Value}}' AND listitem/fields/FileLeafRef eq '{{Value}}' &$select=id,name,lastModifiedDateTime,size&$expand=listitem($expand=fields)&$orderby=createdDateTime desc

Headers:

Content-Type: application/json
Prefer: HonorNonIndexedQueriesWarningMayFailRandomly
```
File renamed without changes.
Loading