> Documentation index: https://www.gooddata.ai/docs/gooddata-ui/llms.txt lists every page of these docs as Markdown.

# IWorkspacePublisherService

- Package: [@gooddata/sdk-backend-spi](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/index.md)
- Kind: interface
- Stability: alpha
- Source: https://github.com/gooddata/gooddata-ui-sdk/blob/rel/11.64/libs/sdk-backend-spi/src/workspace/publisher/index.ts

> **Alpha API.** Initial API, highly likely to change outside SemVer. Don't build on it in production. See [API maturity](https://www.gooddata.ai/docs/gooddata-ui/latest/integrations/platform/api-maturity/index.md).
> 

Service for managing page templates, document templates and documents.

**Signature:**

```typescript
export interface IWorkspacePublisherService 
```

## Remarks

Page templates returned by this service include the default page templates shipped with the product ([DefaultPublisherPageTemplates](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.defaultpublisherpagetemplates/index.md)). Default page templates carry `isDefault: true`, are never persisted on the backend, and reject update and delete.

## Methods

| Method | Description |
| --- | --- |
| [createDocument(publisherDocument)](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/sdk-backend-spi.iworkspacepublisherservice/index.md#iworkspacepublisherservicecreatedocument) | **_(ALPHA)_** Create a new document. |
| [createDocumentTemplate(template)](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/sdk-backend-spi.iworkspacepublisherservice/index.md#iworkspacepublisherservicecreatedocumenttemplate) | **_(ALPHA)_** Create a new document template. |
| [createPageTemplate(page)](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/sdk-backend-spi.iworkspacepublisherservice/index.md#iworkspacepublisherservicecreatepagetemplate) | **_(ALPHA)_** Create a new page template. |
| [deleteDocument(ref)](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/sdk-backend-spi.iworkspacepublisherservice/index.md#iworkspacepublisherservicedeletedocument) | **_(ALPHA)_** Delete an existing document. |
| [deleteDocumentTemplate(ref)](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/sdk-backend-spi.iworkspacepublisherservice/index.md#iworkspacepublisherservicedeletedocumenttemplate) | **_(ALPHA)_** Delete an existing document template. |
| [deletePageTemplate(ref)](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/sdk-backend-spi.iworkspacepublisherservice/index.md#iworkspacepublisherservicedeletepagetemplate) | **_(ALPHA)_** Delete an existing page template. Rejects default and locked page templates. |
| [exportDocumentToPdf(ref, options)](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/sdk-backend-spi.iworkspacepublisherservice/index.md#iworkspacepublisherserviceexportdocumenttopdf) | **_(ALPHA)_** Export a document to PDF. |
| [getDocument(ref)](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/sdk-backend-spi.iworkspacepublisherservice/index.md#iworkspacepublisherservicegetdocument) | **_(ALPHA)_** Get a single document by its reference. |
| [getDocuments()](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/sdk-backend-spi.iworkspacepublisherservice/index.md#iworkspacepublisherservicegetdocuments) | **_(ALPHA)_** Get the list of documents available in the workspace. |
| [getDocumentTemplate(ref)](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/sdk-backend-spi.iworkspacepublisherservice/index.md#iworkspacepublisherservicegetdocumenttemplate) | **_(ALPHA)_** Get a single document template by its reference. |
| [getDocumentTemplates()](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/sdk-backend-spi.iworkspacepublisherservice/index.md#iworkspacepublisherservicegetdocumenttemplates) | **_(ALPHA)_** Get the list of document templates available in the workspace. |
| [getPageTemplate(ref)](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/sdk-backend-spi.iworkspacepublisherservice/index.md#iworkspacepublisherservicegetpagetemplate) | **_(ALPHA)_** Get a single page template by its reference. |
| [getPageTemplates()](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/sdk-backend-spi.iworkspacepublisherservice/index.md#iworkspacepublisherservicegetpagetemplates) | **_(ALPHA)_** Get the list of page templates available in the workspace, default page templates first. |
| [hasDocuments()](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/sdk-backend-spi.iworkspacepublisherservice/index.md#iworkspacepublisherservicehasdocuments) | **_(ALPHA)_** Tells whether the workspace has any document, without loading them. |
| [updateDocument(publisherDocument)](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/sdk-backend-spi.iworkspacepublisherservice/index.md#iworkspacepublisherserviceupdatedocument) | **_(ALPHA)_** Update an existing document. Rejects locked documents. |
| [updateDocumentTemplate(template)](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/sdk-backend-spi.iworkspacepublisherservice/index.md#iworkspacepublisherserviceupdatedocumenttemplate) | **_(ALPHA)_** Update an existing document template. Rejects locked templates. |
| [updatePageTemplate(page)](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/sdk-backend-spi.iworkspacepublisherservice/index.md#iworkspacepublisherserviceupdatepagetemplate) | **_(ALPHA)_** Update an existing page template. Rejects default and locked page templates. |

## Method details

### IWorkspacePublisherService.createDocument()

> **Alpha API.** Initial API, highly likely to change outside SemVer. Don't build on it in production. See [API maturity](https://www.gooddata.ai/docs/gooddata-ui/latest/integrations/platform/api-maturity/index.md).
> 

Create a new document.

**Signature:**

```typescript
createDocument(publisherDocument: IPublisherDocumentDefinitionV1): Promise<IPublisherDocumentV1>;
```

#### Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| publisherDocument | [IPublisherDocumentDefinitionV1](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.ipublisherdocumentdefinitionv1/index.md) |  |

**Returns:**

Promise&lt;[IPublisherDocumentV1](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.ipublisherdocumentv1/index.md)&gt;

### IWorkspacePublisherService.createDocumentTemplate()

> **Alpha API.** Initial API, highly likely to change outside SemVer. Don't build on it in production. See [API maturity](https://www.gooddata.ai/docs/gooddata-ui/latest/integrations/platform/api-maturity/index.md).
> 

Create a new document template.

**Signature:**

```typescript
createDocumentTemplate(template: IPublisherDocumentTemplateDefinitionV1): Promise<IPublisherDocumentTemplateV1>;
```

#### Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| template | [IPublisherDocumentTemplateDefinitionV1](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.ipublisherdocumenttemplatedefinitionv1/index.md) |  |

**Returns:**

Promise&lt;[IPublisherDocumentTemplateV1](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.ipublisherdocumenttemplatev1/index.md)&gt;

### IWorkspacePublisherService.createPageTemplate()

> **Alpha API.** Initial API, highly likely to change outside SemVer. Don't build on it in production. See [API maturity](https://www.gooddata.ai/docs/gooddata-ui/latest/integrations/platform/api-maturity/index.md).
> 

Create a new page template.

**Signature:**

```typescript
createPageTemplate(page: IPublisherPageTemplateDefinitionV1): Promise<IPublisherPageTemplateV1>;
```

#### Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| page | [IPublisherPageTemplateDefinitionV1](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.ipublisherpagetemplatedefinitionv1/index.md) |  |

**Returns:**

Promise&lt;[IPublisherPageTemplateV1](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.ipublisherpagetemplatev1/index.md)&gt;

### IWorkspacePublisherService.deleteDocument()

> **Alpha API.** Initial API, highly likely to change outside SemVer. Don't build on it in production. See [API maturity](https://www.gooddata.ai/docs/gooddata-ui/latest/integrations/platform/api-maturity/index.md).
> 

Delete an existing document.

**Signature:**

```typescript
deleteDocument(ref: ObjRef): Promise<void>;
```

#### Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| ref | [ObjRef](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.objref/index.md) |  |

**Returns:**

Promise&lt;void&gt;

### IWorkspacePublisherService.deleteDocumentTemplate()

> **Alpha API.** Initial API, highly likely to change outside SemVer. Don't build on it in production. See [API maturity](https://www.gooddata.ai/docs/gooddata-ui/latest/integrations/platform/api-maturity/index.md).
> 

Delete an existing document template.

**Signature:**

```typescript
deleteDocumentTemplate(ref: ObjRef): Promise<void>;
```

#### Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| ref | [ObjRef](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.objref/index.md) |  |

**Returns:**

Promise&lt;void&gt;

### IWorkspacePublisherService.deletePageTemplate()

> **Alpha API.** Initial API, highly likely to change outside SemVer. Don't build on it in production. See [API maturity](https://www.gooddata.ai/docs/gooddata-ui/latest/integrations/platform/api-maturity/index.md).
> 

Delete an existing page template. Rejects default and locked page templates.

**Signature:**

```typescript
deletePageTemplate(ref: ObjRef): Promise<void>;
```

#### Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| ref | [ObjRef](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.objref/index.md) |  |

**Returns:**

Promise&lt;void&gt;

### IWorkspacePublisherService.exportDocumentToPdf()

> **Alpha API.** Initial API, highly likely to change outside SemVer. Don't build on it in production. See [API maturity](https://www.gooddata.ai/docs/gooddata-ui/latest/integrations/platform/api-maturity/index.md).
> 

Export a document to PDF.

**Signature:**

```typescript
exportDocumentToPdf(ref: ObjRef, options?: IPublisherDocumentExportPdfOptions): Promise<IExportResult>;
```

#### Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| ref | [ObjRef](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.objref/index.md) |  |
| options | [IPublisherDocumentExportPdfOptions](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/sdk-backend-spi.ipublisherdocumentexportpdfoptions/index.md) | _(Optional)_ |

**Returns:**

Promise&lt;[IExportResult](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-backend-spi/sdk-backend-spi.iexportresult/index.md)&gt;

#### Remarks

The backend renders the document as it is saved, so unsaved changes are not part of the export.

### IWorkspacePublisherService.getDocument()

> **Alpha API.** Initial API, highly likely to change outside SemVer. Don't build on it in production. See [API maturity](https://www.gooddata.ai/docs/gooddata-ui/latest/integrations/platform/api-maturity/index.md).
> 

Get a single document by its reference.

**Signature:**

```typescript
getDocument(ref: ObjRef): Promise<IPublisherDocumentV1>;
```

#### Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| ref | [ObjRef](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.objref/index.md) |  |

**Returns:**

Promise&lt;[IPublisherDocumentV1](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.ipublisherdocumentv1/index.md)&gt;

### IWorkspacePublisherService.getDocuments()

> **Alpha API.** Initial API, highly likely to change outside SemVer. Don't build on it in production. See [API maturity](https://www.gooddata.ai/docs/gooddata-ui/latest/integrations/platform/api-maturity/index.md).
> 

Get the list of documents available in the workspace.

**Signature:**

```typescript
getDocuments(): Promise<IPublisherDocumentV1[]>;
```
**Returns:**

Promise&lt;[IPublisherDocumentV1](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.ipublisherdocumentv1/index.md)[]&gt;

### IWorkspacePublisherService.getDocumentTemplate()

> **Alpha API.** Initial API, highly likely to change outside SemVer. Don't build on it in production. See [API maturity](https://www.gooddata.ai/docs/gooddata-ui/latest/integrations/platform/api-maturity/index.md).
> 

Get a single document template by its reference.

**Signature:**

```typescript
getDocumentTemplate(ref: ObjRef): Promise<IPublisherDocumentTemplateV1>;
```

#### Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| ref | [ObjRef](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.objref/index.md) |  |

**Returns:**

Promise&lt;[IPublisherDocumentTemplateV1](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.ipublisherdocumenttemplatev1/index.md)&gt;

### IWorkspacePublisherService.getDocumentTemplates()

> **Alpha API.** Initial API, highly likely to change outside SemVer. Don't build on it in production. See [API maturity](https://www.gooddata.ai/docs/gooddata-ui/latest/integrations/platform/api-maturity/index.md).
> 

Get the list of document templates available in the workspace.

**Signature:**

```typescript
getDocumentTemplates(): Promise<IPublisherDocumentTemplateV1[]>;
```
**Returns:**

Promise&lt;[IPublisherDocumentTemplateV1](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.ipublisherdocumenttemplatev1/index.md)[]&gt;

### IWorkspacePublisherService.getPageTemplate()

> **Alpha API.** Initial API, highly likely to change outside SemVer. Don't build on it in production. See [API maturity](https://www.gooddata.ai/docs/gooddata-ui/latest/integrations/platform/api-maturity/index.md).
> 

Get a single page template by its reference.

**Signature:**

```typescript
getPageTemplate(ref: ObjRef): Promise<IPublisherPageTemplateV1>;
```

#### Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| ref | [ObjRef](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.objref/index.md) |  |

**Returns:**

Promise&lt;[IPublisherPageTemplateV1](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.ipublisherpagetemplatev1/index.md)&gt;

### IWorkspacePublisherService.getPageTemplates()

> **Alpha API.** Initial API, highly likely to change outside SemVer. Don't build on it in production. See [API maturity](https://www.gooddata.ai/docs/gooddata-ui/latest/integrations/platform/api-maturity/index.md).
> 

Get the list of page templates available in the workspace, default page templates first.

**Signature:**

```typescript
getPageTemplates(): Promise<IPublisherPageTemplateV1[]>;
```
**Returns:**

Promise&lt;[IPublisherPageTemplateV1](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.ipublisherpagetemplatev1/index.md)[]&gt;

### IWorkspacePublisherService.hasDocuments()

> **Alpha API.** Initial API, highly likely to change outside SemVer. Don't build on it in production. See [API maturity](https://www.gooddata.ai/docs/gooddata-ui/latest/integrations/platform/api-maturity/index.md).
> 

Tells whether the workspace has any document, without loading them.

**Signature:**

```typescript
hasDocuments(): Promise<boolean>;
```
**Returns:**

Promise&lt;boolean&gt;

### IWorkspacePublisherService.updateDocument()

> **Alpha API.** Initial API, highly likely to change outside SemVer. Don't build on it in production. See [API maturity](https://www.gooddata.ai/docs/gooddata-ui/latest/integrations/platform/api-maturity/index.md).
> 

Update an existing document. Rejects locked documents.

**Signature:**

```typescript
updateDocument(publisherDocument: IPublisherDocumentV1): Promise<IPublisherDocumentV1>;
```

#### Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| publisherDocument | [IPublisherDocumentV1](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.ipublisherdocumentv1/index.md) |  |

**Returns:**

Promise&lt;[IPublisherDocumentV1](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.ipublisherdocumentv1/index.md)&gt;

### IWorkspacePublisherService.updateDocumentTemplate()

> **Alpha API.** Initial API, highly likely to change outside SemVer. Don't build on it in production. See [API maturity](https://www.gooddata.ai/docs/gooddata-ui/latest/integrations/platform/api-maturity/index.md).
> 

Update an existing document template. Rejects locked templates.

**Signature:**

```typescript
updateDocumentTemplate(template: IPublisherDocumentTemplateV1): Promise<IPublisherDocumentTemplateV1>;
```

#### Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| template | [IPublisherDocumentTemplateV1](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.ipublisherdocumenttemplatev1/index.md) |  |

**Returns:**

Promise&lt;[IPublisherDocumentTemplateV1](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.ipublisherdocumenttemplatev1/index.md)&gt;

### IWorkspacePublisherService.updatePageTemplate()

> **Alpha API.** Initial API, highly likely to change outside SemVer. Don't build on it in production. See [API maturity](https://www.gooddata.ai/docs/gooddata-ui/latest/integrations/platform/api-maturity/index.md).
> 

Update an existing page template. Rejects default and locked page templates.

**Signature:**

```typescript
updatePageTemplate(page: IPublisherPageTemplateV1): Promise<IPublisherPageTemplateV1>;
```

#### Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| page | [IPublisherPageTemplateV1](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.ipublisherpagetemplatev1/index.md) |  |

**Returns:**

Promise&lt;[IPublisherPageTemplateV1](https://www.gooddata.ai/docs/gooddata-ui/latest/api-reference/sdk-model/sdk-model.ipublisherpagetemplatev1/index.md)&gt;
