contentful-management
Version:
Client for Contentful's Content Management API
389 lines (388 loc) • 14.3 kB
TypeScript
import type { Collection, MakeRequest, PaginationQueryParams, QueryOptions, QueryParams, GetAppDefinitionParams, CursorPaginatedCollection, GetEnvironmentTemplateParams, BasicCursorPaginationOptions } from './common-types';
import type { Organization, OrganizationProps } from './entities/organization';
import type { CreatePersonalAccessTokenProps } from './entities/personal-access-token';
import type { Space, SpaceProps } from './entities/space';
import type { AppDefinition } from './entities/app-definition';
import type { UsageQuery } from './entities/usage';
import type { UserProps } from './entities/user';
import type { CreateEnvironmentTemplateProps, EnvironmentTemplate, EnvironmentTemplateProps } from './entities/environment-template';
import type { RawAxiosRequestConfig } from 'axios';
export type ClientAPI = ReturnType<typeof createClientApi>;
type CreateSpaceProps = Omit<SpaceProps, 'sys'> & {
defaultLocale?: string;
};
/**
* @private
*/
export default function createClientApi(makeRequest: MakeRequest): {
/**
* Gets all environment templates for a given organization with the lasted version
* @param organizationId - Organization ID
* @return Promise for a collection of EnvironmentTemplates
* ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getEnvironmentTemplates('<organization_id>')
* .then((response) => console.log(response.items))
* .catch(console.error)
* ```
*/
getEnvironmentTemplates: (organizationId: string, query?: BasicCursorPaginationOptions & {
select?: string;
}) => Promise<CursorPaginatedCollection<EnvironmentTemplate, EnvironmentTemplateProps>>;
/**
* Gets the lasted version environment template if params.version is not specified
* @param params.organizationId - Organization ID
* @param params.environmentTemplateId - Environment template ID
* @param [params.version] - Template version number to return a specific version of the environment template
* @return Promise for a EnvironmentTemplate
* ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getEnvironmentTemplate({
* organizationId: '<organization_id>',
* environmentTemplateId: '<environment_template_id>',
* version: version>
* })
* .then((space) => console.log(space))
* .catch(console.error)
* ```
*/
getEnvironmentTemplate: ({ organizationId, environmentTemplateId, version, query, }: GetEnvironmentTemplateParams & {
version?: number;
query?: {
select?: string;
};
}) => Promise<EnvironmentTemplate>;
/**
* Creates an environment template
* @param organizationId - Organization ID
* @param environmentTemplateData - Object representation of the environment template to be created
* @return Promise for the newly created EnvironmentTemplate
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.createEnvironmentTemplate('<organization_id>', {<environment_template_date>})
* .then((environmentTemplate) => console.log(environmentTemplate))
* .catch(console.error)
* ```
*/
createEnvironmentTemplate: (organizationId: string, environmentTemplateData: CreateEnvironmentTemplateProps) => Promise<EnvironmentTemplate>;
/**
* Gets all spaces
* @return Promise for a collection of Spaces
* ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpaces()
* .then((response) => console.log(response.items))
* .catch(console.error)
* ```
*/
getSpaces: (query?: QueryOptions) => Promise<Collection<Space, SpaceProps>>;
/**
* Gets a space
* @param spaceId - Space ID
* @return Promise for a Space
* ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpace('<space_id>')
* .then((space) => console.log(space))
* .catch(console.error)
* ```
*/
getSpace: (spaceId: string) => Promise<Space>;
/**
* Creates a space
* @param spaceData - Object representation of the Space to be created
* @param organizationId - Organization ID, if the associated token can manage more than one organization.
* @return Promise for the newly created Space
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.createSpace({
* name: 'Name of new space'
* })
* .then((space) => console.log(space))
* .catch(console.error)
* ```
*/
createSpace: (spaceData: CreateSpaceProps, organizationId: string) => Promise<Space>;
/**
* Gets an organization
* @param id - Organization ID
* @return Promise for a Organization
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getOrganization('<org_id>')
* .then((org) => console.log(org))
* .catch(console.error)
* ```
*/
getOrganization: (id: string) => Promise<Organization>;
/**
* Gets a collection of Organizations
* @return Promise for a collection of Organizations
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getOrganizations()
* .then(result => console.log(result.items))
* .catch(console.error)
* ```
*/
getOrganizations: (query?: PaginationQueryParams["query"]) => Promise<Collection<Organization, OrganizationProps>>;
/**
* Gets the authenticated user
* @return Promise for a User
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getCurrentUser()
* .then(user => console.log(user.firstName))
* .catch(console.error)
* ```
*/
getCurrentUser: <T = UserProps>(params?: QueryParams) => Promise<T>;
/**
* Gets App Definition
* @return Promise for App Definition
* @param organizationId - Id of the organization where the app is installed
* @param appDefinitionId - Id of the app that will be returned
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getAppDefinition(<'org_id'>, <'app_id'>)
* .then(appDefinition => console.log(appDefinition.name))
* .catch(console.error)
* ```
*/
getAppDefinition: (params: GetAppDefinitionParams) => Promise<AppDefinition>;
/**
* Creates a personal access token
* @param data - personal access token config
* @return Promise for a Token
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.createPersonalAccessToken(
* {
* "name": "My Token",
* "scope": [
* "content_management_manage"
* ]
* }
* )
* .then(personalAccessToken => console.log(personalAccessToken.token))
* .catch(console.error)
* ```
*/
createPersonalAccessToken: (data: CreatePersonalAccessTokenProps) => Promise<import("./entities/personal-access-token").PersonalAccessToken>;
/**
* @deprecated - use getAccessToken instead
*
* Gets a personal access token
* @param data - personal access token config
* @return Promise for a Token
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getPersonalAccessToken(tokenId)
* .then(token => console.log(token.token))
* .catch(console.error)
* ```
*/
getPersonalAccessToken: (tokenId: string) => Promise<import("./entities/personal-access-token").PersonalAccessToken>;
/**
* @deprecated - use getAccessTokens instead
*
* Gets all personal access tokens
* @return Promise for a Token
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getPersonalAccessTokens()
* .then(response => console.log(reponse.items))
* .catch(console.error)
* ```
*/
getPersonalAccessTokens: () => Promise<Collection<import("./entities/personal-access-token").PersonalAccessToken, import("./entities/personal-access-token").PersonalAccessTokenProps>>;
/**
* Gets a users access token
* @param data - users access token config
* @return Promise for a Token
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getAccessToken(tokenId)
* .then(token => console.log(token.token))
* .catch(console.error)
* ```
*/
getAccessToken: (tokenId: string) => Promise<import("./export-types").AccessToken>;
/**
* Gets all user access tokens
* @return Promise for a Token
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getAccessTokens()
* .then(response => console.log(reponse.items))
* .catch(console.error)
* ```
*/
getAccessTokens: () => Promise<Collection<import("./export-types").AccessToken, import("./export-types").AccessTokenProp>>;
/**
* Retrieves a list of redacted versions of access tokens for an organization, accessible to owners or administrators of an organization.
*
* @return Promise for a Token
* @example ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getOrganizationAccessTokens(organizationId)
* .then(response => console.log(reponse.items))
* .catch(console.error)
* ```
*/
getOrganizationAccessTokens: (organizationId: string, query?: QueryOptions) => Promise<Collection<import("./export-types").AccessToken, import("./export-types").AccessTokenProp>>;
/**
* Get organization usage grouped by {@link UsageMetricEnum metric}
*
* @param organizationId - Id of an organization
* @param query - Query parameters
* @return Promise of a collection of usages
* @example ```javascript
*
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getOrganizationUsage('<organizationId>', {
* 'metric[in]': 'cma,gql',
* 'dateRange.startAt': '2019-10-22',
* 'dateRange.endAt': '2019-11-10'
* }
* })
* .then(result => console.log(result.items))
* .catch(console.error)
* ```
*/
getOrganizationUsage: (organizationId: string, query?: QueryOptions) => Promise<Collection<import("./entities/usage").Usage, import("./entities/usage").UsageProps>>;
/**
* Get organization usage grouped by space and metric
*
* @param organizationId - Id of an organization
* @param query - Query parameters
* @return Promise of a collection of usages
* ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.getSpaceUsage('<organizationId>', {
* skip: 0,
* limit: 10,
* 'metric[in]': 'cda,cpa,gql',
* 'dateRange.startAt': '2019-10-22',
* 'dateRange.endAt': '2020-11-30'
* }
* })
* .then(result => console.log(result.items))
* .catch(console.error)
* ```
*/
getSpaceUsage: (organizationId: string, query?: UsageQuery) => Promise<Collection<import("./entities/usage").Usage, import("./entities/usage").UsageProps>>;
/**
* Make a custom request to the Contentful management API's /spaces endpoint
* @param opts - axios request options (https://github.com/mzabriskie/axios)
* @return Promise for the response data
* ```javascript
* const contentful = require('contentful-management')
*
* const client = contentful.createClient({
* accessToken: '<content_management_api_key>'
* })
*
* client.rawRequest({
* method: 'GET',
* url: '/custom/path'
* })
* .then((responseData) => console.log(responseData))
* .catch(console.error)
* ```
*/
rawRequest: ({ url, ...config }: RawAxiosRequestConfig & {
url: string;
}) => Promise<any>;
};
export {};