contentful-management
Version:
Client for Contentful's Content Management API
1,156 lines • 85.2 kB
TypeScript
import type { Stream } from 'stream';
import type { AcceptsQueryOptions, BasicCursorPaginationOptions, CreatedAtIntervalParams, CursorBasedParams, QueryOptions } from './common-types';
import type { BasicQueryOptions, MakeRequest } from './common-types';
import type { CreateAppInstallationProps } from './entities/app-installation';
import type { CreateAppSignedRequestProps } from './entities/app-signed-request';
import type { CreateAppActionCallProps, AppActionCallRawResponseProps } from './entities/app-action-call';
import { type AssetFileProp, type AssetProps, type CreateAssetFromFilesOptions, type CreateAssetProps } from './entities/asset';
import type { CreateAssetKeyProps } from './entities/asset-key';
import type { BulkAction, BulkActionPayload, BulkActionPublishPayload, BulkActionUnpublishPayload, BulkActionValidatePayload } from './entities/bulk-action';
import type { ReleaseActionQueryOptions } from './entities/release-action';
import type { ReleasePayload, ReleaseQueryOptions, ReleaseValidatePayload } from './entities/release';
import { type ContentTypeProps, type CreateContentTypeProps } from './entities/content-type';
import { type CreateEntryProps, type EntryProps, type EntryReferenceOptionsProps, type EntryReferenceProps } from './entities/entry';
import type { CreateExtensionProps } from './entities/extension';
import type { CreateLocaleProps } from './entities/locale';
import type { TagVisibility } from './entities/tag';
import type { CreateAppAccessTokenProps } from './entities/app-access-token';
import type { ResourceQueryOptions } from './entities/resource';
import type { AiActionInvocationType } from './entities/ai-action-invocation';
import type { AgentGeneratePayload } from './entities/agent';
import type { AgentRunQueryOptions } from './entities/agent-run';
import type { GetSemanticDuplicatesProps } from './entities/semantic-duplicates';
import type { GetSemanticRecommendationsProps } from './entities/semantic-recommendations';
import type { GetSemanticReferenceSuggestionsProps } from './entities/semantic-reference-suggestions';
import type { GetSemanticSearchProps } from './entities/semantic-search';
/**
* @internal
*/
export type ContentfulEnvironmentAPI = ReturnType<typeof createEnvironmentApi>;
/**
* Creates API object with methods to access the Environment API
* @param {ContentfulEnvironmentAPI} makeRequest - function to make requests via an adapter
* @returns {ContentfulSpaceAPI}
* @internal
*/
export default function createEnvironmentApi(makeRequest: MakeRequest): {
/**
* Deletes the environment
* @returns Promise for the deletion. It contains no data, but the Promise error case should be handled.
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.delete())
* .then(() => console.log('Environment deleted.'))
* .catch(console.error)
* ```
*/
delete: () => Promise<void>;
/**
* Updates the environment
* @returns Promise for the updated environment.
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => {
* environment.name = 'New name'
* return environment.update()
* })
* .then((environment) => console.log(`Environment ${environment.sys.id} renamed.`)
* .catch(console.error)
* ```
*/
update: () => Promise<import("./export-types").Environment>;
/**
* Creates SDK Entry object (locally) from entry data
* @param entryData - Entry Data
* @returns Entry
* @example ```javascript
* environment.getEntry('entryId').then(entry => {
*
* // Build a plainObject in order to make it usable for React (saving in state or redux)
* const plainObject = entry.toPlainObject();
*
* // The entry is being updated in some way as plainObject:
* const updatedPlainObject = {
* ...plainObject,
* fields: {
* ...plainObject.fields,
* title: {
* 'en-US': 'updatedTitle'
* }
* }
* };
*
* // Rebuild an sdk object out of the updated plainObject:
* const entryWithMethodsAgain = environment.getEntryFromData(updatedPlainObject);
*
* // Update with help of the sdk method:
* entryWithMethodsAgain.update();
*
* });
* ```
**/
getEntryFromData(entryData: EntryProps): import("./export-types").Entry;
/**
* Creates SDK Asset object (locally) from entry data
* @param assetData - Asset ID
* @returns Asset
* @example ```javascript
* environment.getAsset('asset_id').then(asset => {
*
* // Build a plainObject in order to make it usable for React (saving in state or redux)
* const plainObject = asset.toPlainObject();
*
* // The asset is being updated in some way as plainObject:
* const updatedPlainObject = {
* ...plainObject,
* fields: {
* ...plainObject.fields,
* title: {
* 'en-US': 'updatedTitle'
* }
* }
* };
*
* // Rebuild an sdk object out of the updated plainObject:
* const assetWithMethodsAgain = environment.getAssetFromData(updatedPlainObject);
*
* // Update with help of the sdk method:
* assetWithMethodsAgain.update();
*
* });
* ```
*/
getAssetFromData(assetData: AssetProps): import("./export-types").Asset;
/**
*
* @description Get a BulkAction by ID.
* See: https://www.contentful.com/developers/docs/references/content-management-api/#/reference/bulk-actions/bulk-action
* @param bulkActionId - ID of the BulkAction to fetch
* @returns - Promise with the BulkAction
*
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment_id>'))
* .then((environment) => environment.getBulkAction('<bulk_action_id>'))
* .then((bulkAction) => console.log(bulkAction))
* ```
*/
getBulkAction<T extends BulkActionPayload = any>(bulkActionId: string): Promise<BulkAction<T>>;
/**
* @description Creates a BulkAction that will attempt to publish all items contained in the payload.
* See: https://www.contentful.com/developers/docs/references/content-management-api/#/reference/bulk-actions/publish-bulk-action
* @param {BulkActionPayload} payload - Object containing the items to be processed in the bulkAction
* @returns - Promise with the BulkAction
*
* @example
*
* ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* const payload = {
* entities: {
* sys: { type: 'Array' }
* items: [
* { sys: { type: 'Link', id: '<entry-id>', linkType: 'Entry', version: 2 } }
* ]
* }
* }
*
* // Using Thenables
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment_id>'))
* .then((environment) => environment.createPublishBulkAction(payload))
* .then((bulkAction) => console.log(bulkAction.waitProcessing()))
* .catch(console.error)
*
* // Using async/await
* try {
* const space = await client.getSpace('<space_id>')
* const environment = await space.getEnvironment('<environment_id>')
* const bulkActionInProgress = await environment.createPublishBulkAction(payload)
*
* // You can wait for a recently created BulkAction to be processed by using `bulkAction.waitProcessing()`
* const bulkActionCompleted = await bulkActionInProgress.waitProcessing()
* console.log(bulkActionCompleted)
* } catch (error) {
* console.log(error)
* }
* ```
*/
createPublishBulkAction(payload: BulkActionPublishPayload): Promise<BulkAction<BulkActionPublishPayload>>;
/**
* @description Creates a BulkAction that will attempt to validate all items contained in the payload.
* See: https://www.contentful.com/developers/docs/references/content-management-api/#/reference/bulk-actions/validate-bulk-action
* @param {BulkActionPayload} payload - Object containing the items to be processed in the bulkAction
* @returns - Promise with the BulkAction
*
* @example
*
* ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* const payload = {
* action: 'publish',
* entities: {
* sys: { type: 'Array' }
* items: [
* { sys: { type: 'Link', id: '<entry-id>', linkType: 'Entry' } }
* ]
* }
* }
*
* // Using Thenables
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment_id>'))
* .then((environment) => environment.createValidateBulkAction(payload))
* .then((bulkAction) => console.log(bulkAction.waitProcessing()))
* .catch(console.error)
*
* // Using async/await
* try {
* const space = await client.getSpace('<space_id>')
* const environment = await space.getEnvironment('<environment_id>')
* const bulkActionInProgress = await environment.createValidateBulkAction(payload)
*
* // You can wait for a recently created BulkAction to be processed by using `bulkAction.waitProcessing()`
* const bulkActionCompleted = await bulkActionInProgress.waitProcessing()
* console.log(bulkActionCompleted)
* } catch (error) {
* console.log(error)
* }
* ```
*/
createValidateBulkAction(payload: BulkActionValidatePayload): Promise<BulkAction<BulkActionValidatePayload>>;
/**
* @description Creates a BulkAction that will attempt to unpublish all items contained in the payload.
* See: https://www.contentful.com/developers/docs/references/content-management-api/#/reference/bulk-actions/unpublish-bulk-action
* @param {BulkActionPayload} payload - Object containing the items to be processed in the bulkAction
* @returns - Promise with the BulkAction
*
* @example
*
* ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* const payload = {
* entities: {
* sys: { type: 'Array' }
* items: [
* { sys: { type: 'Link', id: 'entry-id', linkType: 'Entry' } }
* ]
* }
* }
*
* // Using Thenables
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment_id>'))
* .then((environment) => environment.createUnpublishBulkAction(payload))
* .then((bulkAction) => console.log(bulkAction.waitProcessing()))
* .catch(console.error)
*
* // Using async/await
* try {
* const space = await clientgetSpace('<space_id>')
* const environment = await space.getEnvironment('<environment_id>')
* const bulkActionInProgress = await environment.createUnpublishBulkAction(payload)
*
* // You can wait for a recently created BulkAction to be processed by using `bulkAction.waitProcessing()`
* const bulkActionCompleted = await bulkActionInProgress.waitProcessing()
* console.log(bulkActionCompleted)
* } catch (error) {
* console.log(error)
* }
* ```
*/
createUnpublishBulkAction(payload: BulkActionUnpublishPayload): Promise<BulkAction<BulkActionUnpublishPayload>>;
/**
* Gets a Content Type
* @param contentTypeId - Content Type ID
* @returns Promise for a Content Type
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getContentType('<content_type_id>'))
* .then((contentType) => console.log(contentType))
* .catch(console.error)
* ```
*/
getContentType(contentTypeId: string): Promise<import("./export-types").ContentType>;
/**
* Gets a collection of Content Types
* @param query - Object with search parameters. Check the <a href="https://www.contentful.com/developers/docs/javascript/tutorials/using-js-cda-sdk/#retrieving-entries-with-search-parameters">JS SDK tutorial</a> and the <a href="https://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/search-parameters">REST API reference</a> for more details.
* @returns Promise for a collection of Content Types
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getContentTypes())
* .then((response) => console.log(response.items))
* .catch(console.error)
* ```
*/
getContentTypes(query?: QueryOptions): Promise<import("./common-types").Collection<import("./export-types").ContentType, ContentTypeProps>>;
/**
* Gets a collection of Content Types with cursor based pagination
* @param query - Object with cursor pagination parameters. Check the <a href="https://www.contentful.com/developers/docs/references/content-management-api/#/introduction/cursor-pagination">REST API reference</a> for more details.
* @returns Promise for a collection of Content Types
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getContentTypesWithCursor())
* .then((response) => console.log(response.items))
* .catch(console.error)
* ```
*/
getContentTypesWithCursor(query?: BasicCursorPaginationOptions): Promise<import("./common-types").CursorPaginatedCollection<import("./export-types").ContentType, ContentTypeProps>>;
/**
* Creates a Content Type
* @param data - Object representation of the Content Type to be created
* @returns Promise for the newly created Content Type
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.createContentType({
* name: 'Blog Post',
* fields: [
* {
* id: 'title',
* name: 'Title',
* required: true,
* localized: false,
* type: 'Text'
* }
* ]
* }))
* .then((contentType) => console.log(contentType))
* .catch(console.error)
* ```
*/
createContentType(data: CreateContentTypeProps): Promise<import("./export-types").ContentType>;
/**
* Creates a Content Type with a custom ID
* @param contentTypeId - Content Type ID
* @param data - Object representation of the Content Type to be created
* @returns Promise for the newly created Content Type
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.createContentTypeWithId('<content-type-id>', {
* name: 'Blog Post',
* fields: [
* {
* id: 'title',
* name: 'Title',
* required: true,
* localized: false,
* type: 'Text'
* }
* ]
* }))
* .then((contentType) => console.log(contentType))
* .catch(console.error)
* ```
*/
createContentTypeWithId(contentTypeId: string, data: CreateContentTypeProps): Promise<import("./export-types").ContentType>;
/**
* Gets an EditorInterface for a ContentType
* @param contentTypeId - Content Type ID
* @returns Promise for an EditorInterface
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getEditorInterfaceForContentType('<content_type_id>'))
* .then((EditorInterface) => console.log(EditorInterface))
* .catch(console.error)
* ```
*/
getEditorInterfaceForContentType(contentTypeId: string): Promise<import("./export-types").EditorInterface>;
/**
* Gets all EditorInterfaces
* @returns Promise for a collection of EditorInterface
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getEditorInterfaces())
* .then((response) => console.log(response.items))
* .catch(console.error)
* ```
*/
getEditorInterfaces(): Promise<import("./common-types").Collection<import("./export-types").EditorInterface, import("./export-types").EditorInterfaceProps>>;
/**
* Gets an Entry
* Warning: if you are using the select operator, when saving, any field that was not selected will be removed
* from your entry in the backend
* @param id - Entry ID
* @param query - Object with search parameters. In this method it's only useful for `locale`.
* @returns Promise for an Entry
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getEntry('<entry-id>'))
* .then((entry) => console.log(entry))
* .catch(console.error)
* ```
*/
getEntry(id: string, query?: QueryOptions): Promise<import("./export-types").Entry>;
/**
* Deletes an Entry of this environment
* @param id - Entry ID
* @returns Promise for the deletion. It contains no data, but the Promise error case should be handled.
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.deleteEntry("4bmLXiuviAZH3jkj5DLRWE"))
* .then(() => console.log('Entry deleted.'))
* .catch(console.error)
* ```
*/
deleteEntry(id: string): Promise<void>;
/**
* Gets a collection of Entries
* Warning: if you are using the select operator, when saving, any field that was not selected will be removed
* from your entry in the backend
* @param query - Object with search parameters. Check the <a href="https://www.contentful.com/developers/docs/javascript/tutorials/using-js-cda-sdk/#retrieving-entries-with-search-parameters">JS SDK tutorial</a> and the <a href="https://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/search-parameters">REST API reference</a> for more details.
* @returns Promise for a collection of Entries
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getEntries({'content_type': 'foo'})) // you can add more queries as 'key': 'value'
* .then((response) => console.log(response.items))
* .catch(console.error)
* ```
*/
getEntries(query?: QueryOptions): Promise<import("./common-types").Collection<import("./export-types").Entry, EntryProps<import("./common-types").KeyValueMap, unknown>>>;
/**
* Gets a collection of Entries with cursor based pagination
* Warning: if you are using the select operator, when saving, any field that was not selected will be removed
* from your entry in the backend
* @param query - Object with cursor pagination parameters. Check the <a href="https://www.contentful.com/developers/docs/references/content-management-api/#/introduction/cursor-pagination">REST API reference</a> for more details.
* @returns Promise for a collection of Entries
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getEntriesWithCursor({'content_type': 'foo'})) // you can add more queries as 'key': 'value'
* .then((response) => console.log(response.items))
* .catch(console.error)
* ```
*/
getEntriesWithCursor(query?: BasicCursorPaginationOptions): Promise<import("./common-types").CursorPaginatedCollection<import("./export-types").Entry, EntryProps<import("./common-types").KeyValueMap, unknown>>>;
/**
* Gets a collection of published Entries
* @param query - Object with search parameters. Check the <a href="https://www.contentful.com/developers/docs/javascript/tutorials/using-js-cda-sdk/#retrieving-entries-with-search-parameters">JS SDK tutorial</a> and the <a href="https://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/search-parameters">REST API reference</a> for more details.
* @returns Promise for a collection of published Entries
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getPublishedEntries({'content_type': 'foo'})) // you can add more queries as 'key': 'value'
* .then((response) => console.log(response.items))
* .catch(console.error)
* ```
*/
getPublishedEntries(query?: QueryOptions): Promise<import("./common-types").Collection<import("./export-types").Entry, EntryProps<import("./common-types").KeyValueMap, unknown>>>;
/**
* Gets a collection of published Entries with cursor based pagination
* @param query - Object with cursor pagination parameters. Check the <a href="https://www.contentful.com/developers/docs/references/content-management-api/#/introduction/cursor-pagination">REST API reference</a> for more details.
* @returns Promise for a collection of published Entries
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getPublishedEntriesWithCursor())
* .then((response) => console.log(response.items))
* .catch(console.error)
* ```
*/
getPublishedEntriesWithCursor(query?: BasicCursorPaginationOptions): Promise<import("./common-types").CursorPaginatedCollection<import("./export-types").Entry, EntryProps<import("./common-types").KeyValueMap, unknown>>>;
/**
* Creates a Entry
* @param contentTypeId - The Content Type ID of the newly created Entry
* @param data - Object representation of the Entry to be created
* @returns Promise for the newly created Entry
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.createEntry('<content_type_id>', {
* fields: {
* title: {
* 'en-US': 'Entry title'
* }
* }
* }))
* .then((entry) => console.log(entry))
* .catch(console.error)
* ```
*/
createEntry(contentTypeId: string, data: Omit<EntryProps, "sys">): Promise<import("./export-types").Entry>;
/**
* Creates a Entry with a custom ID
* @param contentTypeId - The Content Type of the newly created Entry
* @param id - Entry ID
* @param data - Object representation of the Entry to be created
* @returns Promise for the newly created Entry
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* // Create entry
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.createEntryWithId('<content_type_id>', '<entry_id>', {
* fields: {
* title: {
* 'en-US': 'Entry title'
* }
* }
* }))
* .then((entry) => console.log(entry))
* .catch(console.error)
* ```
*/
createEntryWithId(contentTypeId: string, id: string, data: CreateEntryProps): Promise<import("./export-types").Entry>;
/**
* Get entry references
* @param entryId - Entry ID
* @param {Object} options.include - Level of the entry descendants from 1 up to 10 maximum
* @returns Promise of Entry references
* @example ```javascript
* const contentful = require('contentful-management');
*
* const client = contentful.createClient({
* accessToken: '<contentful_management_api_key>
* })
*
* // Get entry references
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment_id>'))
* .then((environment) => environment.getEntryReferences('<entry_id>', {include: number}))
* .then((entry) => console.log(entry.includes))
* // or
* .then((environment) => environment.getEntry('<entry_id>')).then((entry) => entry.references({include: number}))
* .catch(console.error)
* ```
*/
getEntryReferences(entryId: string, options?: EntryReferenceOptionsProps): Promise<EntryReferenceProps>;
/**
* Gets an Asset
* Warning: if you are using the select operator, when saving, any field that was not selected will be removed
* from your entry in the backend
* @param id - Asset ID
* @param query - Object with search parameters. In this method it's only useful for `locale`.
* @returns Promise for an Asset
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getAsset('<asset_id>'))
* .then((asset) => console.log(asset))
* .catch(console.error)
* ```
*/
getAsset(id: string, query?: QueryOptions): Promise<import("./export-types").Asset>;
/**
* Gets a collection of Assets
* Warning: if you are using the select operator, when saving, any field that was not selected will be removed
* from your entry in the backend
* @param query - Object with search parameters. Check the <a href="https://www.contentful.com/developers/docs/javascript/tutorials/using-js-cda-sdk/#retrieving-entries-with-search-parameters">JS SDK tutorial</a> and the <a href="https://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/search-parameters">REST API reference</a> for more details.
* @returns Promise for a collection of Assets
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getAssets())
* .then((response) => console.log(response.items))
* .catch(console.error)
* ```
*/
getAssets(query?: QueryOptions): Promise<import("./common-types").Collection<import("./export-types").Asset, AssetProps<{}>>>;
/**
* Gets a collection of Assets with cursor based pagination
* Warning: if you are using the select operator, when saving, any field that was not selected will be removed
* from your entry in the backend
* @param query - Object with cursor pagination parameters. Check the <a href="https://www.contentful.com/developers/docs/references/content-management-api/#/introduction/cursor-pagination">REST API reference</a> for more details.
* @returns Promise for a collection of Assets
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getAssetsWithCursor())
* .then((response) => console.log(response.items))
* .catch(console.error)
* ```
*/
getAssetsWithCursor(query?: BasicCursorPaginationOptions): Promise<import("./common-types").CursorPaginatedCollection<import("./export-types").Asset, AssetProps<{}>>>;
/**
* Gets a collection of published Assets
* @param query - Object with search parameters. Check the <a href="https://www.contentful.com/developers/docs/javascript/tutorials/using-js-cda-sdk/#retrieving-entries-with-search-parameters">JS SDK tutorial</a> and the <a href="https://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/search-parameters">REST API reference</a> for more details.
* @returns Promise for a collection of published Assets
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getPublishedAssets())
* .then((response) => console.log(response.items))
* .catch(console.error)
* ```
*/
getPublishedAssets(query?: QueryOptions): Promise<import("./common-types").Collection<import("./export-types").Asset, AssetProps<{}>>>;
/**
* Gets a collection of published Assets with cursor based pagination
* @param query - Object with cursor pagination parameters. Check the <a href="https://www.contentful.com/developers/docs/references/content-management-api/#/introduction/cursor-pagination">REST API reference</a> for more details.
* @returns Promise for a collection of published Assets
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getPublishedAssetsWithCursor())
* .then((response) => console.log(response.items))
* .catch(console.error)
* ```
*/
getPublishedAssetsWithCursor(query?: BasicCursorPaginationOptions): Promise<import("./common-types").CursorPaginatedCollection<import("./export-types").Asset, AssetProps<{}>>>;
/**
* Creates a Asset. After creation, call asset.processForLocale or asset.processForAllLocales to start asset processing.
* @param data - Object representation of the Asset to be created. Note that the field object should have an upload property on asset creation, which will be removed and replaced with an url property when processing is finished.
* @returns Promise for the newly created Asset
* @example ```javascript
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* // Create asset
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.createAsset({
* fields: {
* title: {
* 'en-US': 'Playsam Streamliner'
* },
* file: {
* 'en-US': {
* contentType: 'image/jpeg',
* fileName: 'example.jpeg',
* upload: 'https://example.com/example.jpg'
* }
* }
* }
* }))
* .then((asset) => asset.processForLocale("en-US")) // OR asset.processForAllLocales()
* .then((asset) => console.log(asset))
* .catch(console.error)
* ```
*/
createAsset(data: CreateAssetProps): Promise<import("./export-types").Asset>;
/**
* Creates a Asset with a custom ID. After creation, call asset.processForLocale or asset.processForAllLocales to start asset processing.
* @param id - Asset ID
* @param data - Object representation of the Asset to be created. Note that the field object should have an upload property on asset creation, which will be removed and replaced with an url property when processing is finished.
* @returns Promise for the newly created Asset
* @example ```javascript
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* // Create asset
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.createAssetWithId('<asset_id>', {
* title: {
* 'en-US': 'Playsam Streamliner'
* },
* file: {
* 'en-US': {
* contentType: 'image/jpeg',
* fileName: 'example.jpeg',
* upload: 'https://example.com/example.jpg'
* }
* }
* }))
* .then((asset) => asset.process())
* .then((asset) => console.log(asset))
* .catch(console.error)
* ```
*/
createAssetWithId(id: string, data: CreateAssetProps): Promise<import("./export-types").Asset>;
/**
* Creates a Asset based on files. After creation, call asset.processForLocale or asset.processForAllLocales to start asset processing.
* @param data - Object representation of the Asset to be created. Note that the field object should have an uploadFrom property on asset creation, which will be removed and replaced with an url property when processing is finished.
* @param data.fields.file.[LOCALE].file - Can be a string, an ArrayBuffer or a Stream.
* @returns Promise for the newly created Asset
* @example ```javascript
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.createAssetFromFiles({
* fields: {
* file: {
* 'en-US': {
* contentType: 'image/jpeg',
* fileName: 'filename_english.jpg',
* file: createReadStream('path/to/filename_english.jpg')
* },
* 'de-DE': {
* contentType: 'image/svg+xml',
* fileName: 'filename_german.svg',
* file: '<svg><path fill="red" d="M50 50h150v50H50z"/></svg>'
* }
* }
* }
* }))
* .then((asset) => console.log(asset))
* .catch(console.error)
* ```
*/
createAssetFromFiles(data: Omit<AssetFileProp, "sys">, options?: CreateAssetFromFilesOptions): Promise<import("./export-types").Asset>;
/**
* Creates an asset key for signing asset URLs (Embargoed Assets)
* @param data Object with request payload
* @param data.expiresAt number a UNIX timestamp in the future (but not more than 48 hours from time of calling)
* @returns Promise for the newly created AssetKey
* @example ```javascript
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* // Create assetKey
* now = () => Math.floor(Date.now() / 1000)
* const withExpiryIn1Hour = () => now() + 1 * 60 * 60
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.createAssetKey({ expiresAt: withExpiryIn1Hour() }))
* .then((policy, secret) => console.log({ policy, secret }))
* .catch(console.error)
* ```
*/
createAssetKey(payload: CreateAssetKeyProps): Promise<import("./export-types").AssetKey>;
/**
* Gets an Upload
* @param id - Upload ID
* @returns Promise for an Upload
* @example ```javascript
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
* const uploadStream = createReadStream('path/to/filename_english.jpg')
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getUpload('<upload-id>')
* .then((upload) => console.log(upload))
* .catch(console.error)
*/
getUpload(id: string): Promise<{
delete: () => Promise<void>;
} & import("./export-types").UploadProps & {
toPlainObject(): import("./export-types").UploadProps;
}>;
/**
* Creates a Upload.
* @param data - Object with file information.
* @param data.file - Actual file content. Can be a string, an ArrayBuffer or a Stream.
* @returns Upload object containing information about the uploaded file.
* @example ```javascript
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
* const uploadStream = createReadStream('path/to/filename_english.jpg')
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.createUpload({file: uploadStream})
* .then((upload) => console.log(upload))
* .catch(console.error)
* ```
*/
createUpload: (data: {
file: string | ArrayBuffer | Stream;
}) => Promise<{
delete: () => Promise<void>;
} & import("./export-types").UploadProps & {
toPlainObject(): import("./export-types").UploadProps;
}>;
/**
* Gets a Locale
* @param localeId - Locale ID
* @returns Promise for an Locale
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getLocale('<locale_id>'))
* .then((locale) => console.log(locale))
* .catch(console.error)
* ```
*/
getLocale(localeId: string): Promise<import("./export-types").Locale>;
/**
* Gets a collection of Locales
* @returns Promise for a collection of Locales
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getLocales())
* .then((response) => console.log(response.items))
* .catch(console.error)
* ```
*/
getLocales(query?: BasicQueryOptions): Promise<import("./common-types").Collection<import("./export-types").Locale, import("./export-types").LocaleProps>>;
/**
* Creates a Locale
* @param data - Object representation of the Locale to be created
* @returns Promise for the newly created Locale
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* // Create locale
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.createLocale({
* name: 'German (Austria)',
* code: 'de-AT',
* fallbackCode: 'de-DE',
* optional: true
* }))
* .then((locale) => console.log(locale))
* .catch(console.error)
* ```
*/
createLocale(data: CreateLocaleProps): Promise<import("./export-types").Locale>;
/**
* Gets an UI Extension
* @param id - Extension ID
* @returns Promise for an UI Extension
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getUiExtension('<extension-id>'))
* .then((extension) => console.log(extension))
* .catch(console.error)
* ```
*/
getUiExtension(id: string): Promise<import("./export-types").UIExtension>;
/**
* Gets a collection of UI Extension
* @returns Promise for a collection of UI Extensions
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getUiExtensions()
* .then((response) => console.log(response.items))
* .catch(console.error)
* ```
*/
getUiExtensions(): Promise<import("./common-types").Collection<import("./export-types").UIExtension, import("./export-types").UIExtensionProps>>;
/**
* Creates a UI Extension
* @param data - Object representation of the UI Extension to be created
* @returns Promise for the newly created UI Extension
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.createUiExtension({
* extension: {
* name: 'My awesome extension',
* src: 'https://example.com/my',
* fieldTypes: [
* {
* type: 'Symbol'
* },
* {
* type: 'Text'
* }
* ],
* sidebar: false
* }
* }))
* .then((extension) => console.log(extension))
* .catch(console.error)
* ```
*/
createUiExtension(data: CreateExtensionProps): Promise<import("./export-types").UIExtension>;
/**
* Creates a UI Extension with a custom ID
* @param id - Extension ID
* @param data - Object representation of the UI Extension to be created
* @returns Promise for the newly created UI Extension
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.createUiExtensionWithId('<extension_id>', {
* extension: {
* name: 'My awesome extension',
* src: 'https://example.com/my',
* fieldTypes: [
* {
* type: 'Symbol'
* },
* {
* type: 'Text'
* }
* ],
* sidebar: false
* }
* }))
* .then((extension) => console.log(extension))
* .catch(console.error)
* ```
*/
createUiExtensionWithId(id: string, data: CreateExtensionProps): Promise<import("./export-types").UIExtension>;
/**
* Creates an App Installation
* @param appDefinitionId - AppDefinition ID
* @param data - AppInstallation data
* @param options.acceptAllTerms - Flag for accepting Apps' Marketplace EULA, Terms, and Privacy policy (need to pass `{acceptAllTerms: true}` to install a marketplace app)
* @returns Promise for an App Installation
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.createAppInstallation('<app_definition_id>', {
* parameters: {
* someParameter: someValue
* }
* })
* .then((appInstallation) => console.log(appInstallation))
* .catch(console.error)
* ```
*/
createAppInstallation(appDefinitionId: string, data: CreateAppInstallationProps, { acceptAllTerms }?: {
acceptAllTerms?: boolean;
}): Promise<import("./export-types").AppInstallation>;
/**
* Gets an App Installation
* @param id - AppDefinition ID
* @returns Promise for an App Installation
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getAppInstallation('<app-definition-id>'))
* .then((appInstallation) => console.log(appInstallation))
* .catch(console.error)
* ```
*/
getAppInstallation(id: string): Promise<import("./export-types").AppInstallation>;
/**
* Gets a collection of App Installation
* @returns Promise for a collection of App Installations
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => space.getEnvironment('<environment-id>'))
* .then((environment) => environment.getAppInstallations()
* .then((response) => console.log(response.items))
* .catch(console.error)
* ```
*/
getAppInstallations(): Promise<import("./common-types").Collection<import("./export-types").AppInstallation, import("./export-types").AppInstallationProps>>;
/**
* Creates an app action call
* @param appDefinitionId - AppDefinition ID
* @param appActionId - action ID
* @param data - App Action Call data
* @returns Promise for an App Action Call
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_a